Multilevel Deduplication Engine (MDE)
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
mde_common.hpp File Reference

Any common components go into this file. More...

#include <cstddef>
#include <iostream>
#include <memory>
#include <ostream>
#include <sstream>
#include <stdexcept>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <functional>
#include <string>
Include dependency graph for mde_common.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mde::DefaultPrinter< T >
 
struct  mde::AbsentValueAccessError
 Thrown if an Optional is accessed when the value is absent. More...
 
class  mde::OptionalRef< T >
 Describes an optional reference of some type T. The value may either be present or absent. More...
 
class  mde::Optional< T >
 Describes an optional of some type T. The value may either be present or absent. More...
 

Namespaces

namespace  mde
 

Macros

#define MDE_VERSION_MAJOR   "0"
 
#define MDE_VERSION_MINOR   "6"
 
#define MDE_VERSION_PATCH   "0"
 
#define MDE_VERSION_STRING   (MDE_VERSION_MAJOR "." MDE_VERSION_MINOR "." MDE_VERSION_PATCH)
 
#define MDE_SORTED_VECTOR_BINARY_SEARCH_THRESHOLD   12
 
#define MDE_DEFAULT_BLOCK_SHIFT   5
 
#define MDE_DEFAULT_BLOCK_SIZE   (1 << MDE_DEFAULT_BLOCK_SHIFT)
 
#define MDE_DEFAULT_BLOCK_MASK   (MDE_DEFAULT_BLOCK_SIZE - 1)
 
#define MDE_DISABLE_INTERNAL_INTEGRITY_CHECK   true
 
#define ____MDE__STR(x)   #x
 
#define __MDE_STR(x)   ____MDE__STR(x)
 
#define MDE_DEBUG(x)   { x };
 

Typedefs

using mde::Size = std::size_t
 
using mde::String = std::string
 
using mde::IndexValue = Size
 
template<typename T >
using mde::UniquePointer = std::unique_ptr< T >
 
template<typename T >
using mde::Vector = std::vector< T >
 
template<typename K , typename V >
using mde::HashMap = std::unordered_map< K, V >
 
template<typename K , typename V >
using mde::OrderedMap = std::map< K, V >
 
template<typename T >
using mde::HashSet = std::unordered_set< T >
 
template<typename T >
using mde::OrderedSet = std::set< T >
 
template<typename T >
using mde::DefaultLess = std::less< T >
 
template<typename T >
using mde::DefaultHash = std::hash< T >
 
template<typename T >
using mde::DefaultEqual = std::equal_to< T >
 

Enumerations

enum  mde::SubsetRelation { mde::UNKNOWN = 0 , mde::SUBSET = 1 , mde::SUPERSET = 2 }
 Used to store a subset relation between two set indices. Because the index pair must be in sorted order to prevent duplicates, it necessitates this enum. More...
 

Functions

template<typename T , typename Hash = DefaultHash<T>>
Size mde::compose_hash (const Size prev, T next)
 Composes a preexisting hash with another variable. Useful for Hashing containers. Adapted from boost::hash_combine.
 

Detailed Description

Any common components go into this file.

Definition in file mde_common.hpp.

Macro Definition Documentation

◆ ____MDE__STR

#define ____MDE__STR (   x)    #x

Definition at line 52 of file mde_common.hpp.

◆ __MDE_STR

#define __MDE_STR (   x)    ____MDE__STR(x)

Definition at line 53 of file mde_common.hpp.

◆ MDE_DEBUG

#define MDE_DEBUG (   x)    { x };

Definition at line 56 of file mde_common.hpp.

◆ MDE_DEFAULT_BLOCK_MASK

#define MDE_DEFAULT_BLOCK_MASK   (MDE_DEFAULT_BLOCK_SIZE - 1)

Definition at line 47 of file mde_common.hpp.

◆ MDE_DEFAULT_BLOCK_SHIFT

#define MDE_DEFAULT_BLOCK_SHIFT   5

Definition at line 45 of file mde_common.hpp.

◆ MDE_DEFAULT_BLOCK_SIZE

#define MDE_DEFAULT_BLOCK_SIZE   (1 << MDE_DEFAULT_BLOCK_SHIFT)

Definition at line 46 of file mde_common.hpp.

◆ MDE_DISABLE_INTERNAL_INTEGRITY_CHECK

#define MDE_DISABLE_INTERNAL_INTEGRITY_CHECK   true

Definition at line 48 of file mde_common.hpp.

◆ MDE_SORTED_VECTOR_BINARY_SEARCH_THRESHOLD

#define MDE_SORTED_VECTOR_BINARY_SEARCH_THRESHOLD   12

Definition at line 44 of file mde_common.hpp.

◆ MDE_VERSION_MAJOR

#define MDE_VERSION_MAJOR   "0"

Definition at line 39 of file mde_common.hpp.

◆ MDE_VERSION_MINOR

#define MDE_VERSION_MINOR   "6"

Definition at line 40 of file mde_common.hpp.

◆ MDE_VERSION_PATCH

#define MDE_VERSION_PATCH   "0"

Definition at line 41 of file mde_common.hpp.

◆ MDE_VERSION_STRING

#define MDE_VERSION_STRING   (MDE_VERSION_MAJOR "." MDE_VERSION_MINOR "." MDE_VERSION_PATCH)

Definition at line 42 of file mde_common.hpp.