Lumiera
0.pre.03
»edit your freedom«
|
Storage and implementation backing the PlacementIndex.
Definition at line 114 of file placement-index.cpp.
Public Types | |
using | IDIter = lib::IterSource< PID >::iterator |
Public Member Functions | |
IDIter | _contents_4check (ID id) |
IDIter | _eachEntry_4check () |
IDIter | _eachScope_4check () |
PlacementMO * | _element_4check (ID id) |
PlacementMO * | _root_4check () |
PlacementMO * | _scope_4check (ID id) |
ID | addEntry (PlacementMO const &newObj, ID scopeID) |
Store a copy of the given Placement as new instance within the index, together with the Scope this Placement belongs to. More... | |
void | clear () |
bool | contains (ID id) const |
size_t | element_cnt () const |
PlacementMO & | fetch (ID id) const |
PlacementMO & | fetchScope (ID id) const |
PlacementMO & | getRootElement () |
PlacementIndex::iterator | queryScopeContents (ID id) const |
void | removeAll (ID scopeID) |
bool | removeEntry (ID id) |
size_t | scope_cnt () const |
< More... | |
void | setupRoot (PlacementMO const &rootDef) |
insert a specially configured root entry into the yet empty table. More... | |
size_t | size () const |
< More... | |
Classes | |
struct | PlacementEntry |
Private Types | |
typedef function< PlacementMO &(pair< PID, PID > const &)> | ElementResolver |
typedef unordered_map< PID, PlacementEntry > | IDTable |
typedef PlacementMO::ID | PID |
typedef shared_ptr< PlacementMO > | PPlacement |
typedef pair< ScopeIter, ScopeIter > | ScopeContents |
typedef std::unordered_multimap< PID, PID > | ScopeTable |
typedef IDTable::const_iterator | Slot |
Private Member Functions | |
PlacementEntry const & | base_entry (ID key) const |
void | remove_all_from_scope (ID scopeID) |
PlacementEntry | remove_base_entry (ID key) |
void | remove_from_scope (ID scopeID, ID entryID) |
PlacementMO & | resolveScopeIndexElement (pair< PID, PID > const &entry) const |
Helper for building a scope exploring iterator for PlacementIndex: our "reverse index" (scopeTab_ ) tracks the contents of each scope as pairs (scopeID,elementID). More... | |
ElementResolver | scopeIndexElementsResolver () const |
< More... | |
Private Attributes | |
TypedAllocationManager | allocator_ |
ElementResolver | elementResolver_ |
IDTable | placementTab_ |
PPlacement | root_ |
ScopeTable | scopeTab_ |
struct steam::mobject::session::PlacementIndex::Table::PlacementEntry |
Class Members | ||
---|---|---|
PPlacement | element | |
PPlacement | scope |
|
inline |
|
inline |
<
Definition at line 161 of file placement-index.cpp.
References steam::mobject::session::query::anonymous_namespace{fake-configrules.cpp}::entry().
|
inline |
insert a specially configured root entry into the yet empty table.
Root is it's own scope
Definition at line 228 of file placement-index.cpp.
|
inline |
Store a copy of the given Placement as new instance within the index, together with the Scope this Placement belongs to.
Definition at line 263 of file placement-index.cpp.
References steam::mobject::session::test::anonymous_namespace{defs-manager-impl-test.cpp}::newID().
|
inlineprivate |
Helper for building a scope exploring iterator for PlacementIndex: our "reverse index" (scopeTab_
) tracks the contents of each scope as pairs (scopeID,elementID).
After fetching the range of matching entries, whenever the client dereferences the iterator, we have to pick up the second ID and resolve it through the main index table (placementTab_).
Definition at line 399 of file placement-index.cpp.
|
inlineprivate |