Multilevel Deduplication Engine (MDE)
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions
mde Namespace Reference

Namespaces

namespace  slz
 

Classes

struct  __CalcTime
 The object used to enable the duration capturing mechanism. More...
 
struct  AbsentValueAccessError
 Thrown if an Optional is accessed when the value is absent. More...
 
struct  AssertError
 Struct that is thrown on an assertion failure. More...
 
struct  Deduplicator
 An straightforward deduplicator for scalar values. It does not implement any special operations besides deduplication. Unlike MDE, this does NOT enforce constness on the data items registered. However, a mutable access must always be marked. More...
 
struct  DefaultPrinter
 
class  MapAdapter
 
struct  MDEConfig
 
class  MDENode
 The main MDENode structure. This class can be used as-is with a type or derived for additional functionality as needed. More...
 
struct  NestingBase
 Describes the standard nesting structure. Act as "non-leaf" nodes in a tree of nested MDEs. More...
 
struct  NestingNone
 The nesting type for non-nested data structures. Act as "leaf" nodes in a tree of nested MDEs. More...
 
struct  OperationNode
 This struct contains the information about the operands of an operation (union, intersection, etc.) More...
 
struct  OperationPerf
 Operation performance Statistics. More...
 
class  Optional
 Describes an optional of some type T. The value may either be present or absent. More...
 
class  OptionalRef
 Describes an optional reference of some type T. The value may either be present or absent. More...
 
struct  PerformanceStatistics
 Utility class for enabling code-based profiling. More...
 
struct  SetEqual
 Generic Equality comparator for set types. More...
 
struct  SetHash
 Hasher for set types. More...
 
struct  SetLess
 Generic Less-than comparator for set types. More...
 
struct  Unreachable
 Thrown if code region is unreachable. More...
 

Typedefs

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

Enumerations

enum  SubsetRelation { UNKNOWN = 0 , SUBSET = 1 , 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

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

Typedef Documentation

◆ DefaultEqual

template<typename T >
using mde::DefaultEqual = typedef std::equal_to<T>

Definition at line 102 of file mde_common.hpp.

◆ DefaultHash

template<typename T >
using mde::DefaultHash = typedef std::hash<T>

Definition at line 99 of file mde_common.hpp.

◆ DefaultLess

template<typename T >
using mde::DefaultLess = typedef std::less<T>

Definition at line 96 of file mde_common.hpp.

◆ HashMap

template<typename K , typename V >
using mde::HashMap = typedef std::unordered_map<K, V>

Definition at line 84 of file mde_common.hpp.

◆ HashSet

template<typename T >
using mde::HashSet = typedef std::unordered_set<T>

Definition at line 90 of file mde_common.hpp.

◆ IndexValue

Definition at line 75 of file mde_common.hpp.

◆ InternalMap

Definition at line 850 of file mde.hpp.

◆ OperationMap

Defines the map of operations in MDE. Template parameter can be used to set an operation of any arity.

Definition at line 859 of file mde.hpp.

◆ OrderedMap

template<typename K , typename V >
using mde::OrderedMap = typedef std::map<K, V>

Definition at line 87 of file mde_common.hpp.

◆ OrderedSet

template<typename T >
using mde::OrderedSet = typedef std::set<T>

Definition at line 93 of file mde_common.hpp.

◆ Size

using mde::Size = typedef std::size_t

Definition at line 61 of file mde_common.hpp.

◆ String

using mde::String = typedef std::string

Definition at line 63 of file mde_common.hpp.

◆ UniquePointer

template<typename T >
using mde::UniquePointer = typedef std::unique_ptr<T>

Definition at line 78 of file mde_common.hpp.

◆ Vector

template<typename T >
using mde::Vector = typedef std::vector<T>

Definition at line 81 of file mde_common.hpp.

Enumeration Type Documentation

◆ SubsetRelation

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.

Enumerator
UNKNOWN 
SUBSET 
SUPERSET 

Definition at line 198 of file mde_common.hpp.

Function Documentation

◆ compose_hash()

template<typename T , typename Hash = DefaultHash<T>>
Size mde::compose_hash ( const Size  prev,
next 
)
inline

Composes a preexisting hash with another variable. Useful for Hashing containers. Adapted from boost::hash_combine.

Parameters
[in]prevThe current hash
[in]nextThe value to compose with the current hash
Template Parameters
TValue type
HashHash for the value type
Returns
The composed hash

Definition at line 222 of file mde_common.hpp.

◆ operator<<()

std::ostream & mde::operator<< ( std::ostream &  os,
const OperationNode op 
)
inline

Definition at line 41 of file mde.hpp.