mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes
m::ConditionSet Struct Reference

#include <Condition.hpp>

Collaboration diagram for m::ConditionSet:
[legend]

Public Member Functions

 ConditionSet ()=default
 
 ConditionSet (const ConditionSet &other)
 
 ConditionSet (ConditionSet &&)=default
 
ConditionSetoperator= (ConditionSet &&)=default
 
template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
void add_condition (Cond &&cond)
 
template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
void add_or_replace_condition (Cond &&cond)
 
template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
Cond & get_condition ()
 
template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
const Cond & get_condition () const
 
bool empty () const
 
bool implied_by (const ConditionSet &other) const
 
void project_and_rename (const std::vector< std::pair< Schema::Identifier, Schema::Identifier > > &old2new)
 
bool operator== (const ConditionSet &other) const
 
bool operator!= (const ConditionSet &other) const
 

Static Public Member Functions

static ConditionSet Make_Unsatisfiable ()
 

Private Attributes

std::unordered_map< std::type_index, std::unique_ptr< Condition > > type2cond_
 

‍assigns a unique identifier to each type of Condition


 

Detailed Description

Definition at line 271 of file Condition.hpp.

Constructor & Destructor Documentation

◆ ConditionSet() [1/3]

m::ConditionSet::ConditionSet ( )
default

◆ ConditionSet() [2/3]

m::ConditionSet::ConditionSet ( const ConditionSet other)
inlineexplicit

Definition at line 279 of file Condition.hpp.

References type2cond_.

◆ ConditionSet() [3/3]

m::ConditionSet::ConditionSet ( ConditionSet &&  )
default

Member Function Documentation

◆ add_condition()

template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
void m::ConditionSet::add_condition ( Cond &&  cond)
inline

◆ add_or_replace_condition()

template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
void m::ConditionSet::add_or_replace_condition ( Cond &&  cond)
inline

◆ empty()

bool m::ConditionSet::empty ( ) const
inline

Definition at line 314 of file Condition.hpp.

References type2cond_.

◆ get_condition() [1/2]

template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
Cond & m::ConditionSet::get_condition ( )
inline

Definition at line 305 of file Condition.hpp.

References M_insist, and type2cond_.

Referenced by m::wasm::OrderedGrouping::adapt_post_condition().

◆ get_condition() [2/2]

template<typename Cond >
requires std::is_base_of_v<Condition, Cond>
const Cond & m::ConditionSet::get_condition ( ) const
inline

Definition at line 312 of file Condition.hpp.

◆ implied_by()

bool ConditionSet::implied_by ( const ConditionSet other) const

Definition at line 7 of file Condition.cpp.

References type2cond_.

◆ Make_Unsatisfiable()

static ConditionSet m::ConditionSet::Make_Unsatisfiable ( )
inlinestatic

◆ operator!=()

bool m::ConditionSet::operator!= ( const ConditionSet other) const
inline

Definition at line 321 of file Condition.hpp.

References operator==().

◆ operator=()

ConditionSet & m::ConditionSet::operator= ( ConditionSet &&  )
default

◆ operator==()

bool ConditionSet::operator== ( const ConditionSet other) const

Definition at line 25 of file Condition.cpp.

References type2cond_.

Referenced by operator!=().

◆ project_and_rename()

void ConditionSet::project_and_rename ( const std::vector< std::pair< Schema::Identifier, Schema::Identifier > > &  old2new)

Definition at line 19 of file Condition.cpp.

References type2cond_.

Referenced by m::wasm::Projection::adapt_post_condition().

Field Documentation

◆ type2cond_

std::unordered_map<std::type_index, std::unique_ptr<Condition> > m::ConditionSet::type2cond_
private

‍assigns a unique identifier to each type of Condition

Definition at line 275 of file Condition.hpp.

Referenced by add_condition(), add_or_replace_condition(), ConditionSet(), empty(), get_condition(), implied_by(), operator==(), and project_and_rename().


The documentation for this struct was generated from the following files: