GlobalObjects
Loading...
Searching...
No Matches
GloIndexPool.h File Reference

Header for IndexPool
Header für IndexPool
TransactionIndexPool
RealIndexPool
IndexPool::DeletedObjIdTuple
IndexPool::ObjIdPosTuple
IndexPool::ObjStrIdTuple
IndexPool::TableObjIdIndex
IndexPool::TableObjIdIndexIterator
IndexPool::ObjectStrIndex
IndexPool::SchemaIndex
More...

#include "GloTypes.h"
#include "GloWatchNotifyManager.h"
#include "GloObjID.h"
#include "GloClassInfoAttribute.h"
#include "GloClassInfoIndex.h"
#include "EuCriticalSection.h"
#include <ctime>
#include <list>
#include <map>
#include <basetsd.h>

Go to the source code of this file.

Classes

class  glo::IndexPool::DeletedObjIdTuple
 Class to manage deleted objects in the IndexPool::SchemaIndex. More...
 
struct  glo::IndexPool::IndexComparisionFilter
 Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by an ObjectStrIndex.
With this structure, a filter can be defined using "<", "<=", ">", ">=", "==" and "!=". For example, if m_sIndexFilterValue has the value "123" and m_eComparisionOperator has the value GREATER_EQUAL, only all objects with an index greater than or equal to "123" will be filtered out. More...
 
struct  glo::IndexPool::IndexFilter
 Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by an ObjectStrIndex.
This filter has an index filter expression in m_sIndexFilterValue. More...
 
class  glo::IndexPool
 IndexPool is the base class for the RealIndexPool and the TransactionIndexPool for the individual transactions. More...
 
struct  glo::IndexPool::IndexRangeFilter
 Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by an ObjectStrIndex.
With this structure a filter can be defined by means of a range specification. For example, if m_sIndexFilterValue has the value "123" and m_sIndexFilterEndValue has the value "155", all Objects with an index lower than "123" and higher than "155" will be filtered out. Thus, only all objects with an index greater than/equal to "123" and less than/equal to "155" will be delivered in case of a query. More...
 
class  glo::IndexPool::ObjectStrIndex
 Manages the individual string indices of a class. If this is a unique index, the ObjStrIdTuple are in a map, otherwise in a MultiMap. Then indexes in a MultiMap can be inserted as reserved, this is taken into account when inserting further. More...
 
class  glo::IndexPool::ObjectStrIndexIterator
 Has a pointer to an ObjectStrIndex and allows iteration through this index. Is instantiated e.g. for AllSets so that they can iterate independently through StringIndexes. More...
 
class  glo::IndexPool::ObjIdPosTuple
 Class to manage objects in the IndexPool::TableObjIdIndex. More...
 
class  glo::IndexPool::ObjStrIdTuple
 Class to manage objects in the IndexPool::ObjectStrIndex. More...
 
class  glo::RealIndexPool
 The real index as opposed to the TransactionIndexPool, which is created for each transaction More...
 
class  glo::IndexPool::SchemaIndex
 Is the index manager class for a schema resp. a database. More...
 
class  glo::IndexPool::TableObjIdIndex
 Manages the object IDs (used and released) with their position in the respective tables. More...
 
class  glo::IndexPool::TableObjIdIndexIterator
 Has a pointer to a TableObjIdIndex and allows to iterate through this index. Is instantiated e.g. for AllSets so that they can iterate through indexes independently. More...
 
class  glo::TransactionIndexPool
 This index is generated in each transaction and changes such as saving, deleting or inserting an object are only entered here until the transaction is committed or aborted. More...
 

Namespaces

namespace  glo
 

Detailed Description

Header for IndexPool

Header für IndexPool
TransactionIndexPool
RealIndexPool
IndexPool::DeletedObjIdTuple
IndexPool::ObjIdPosTuple
IndexPool::ObjStrIdTuple
IndexPool::TableObjIdIndex
IndexPool::TableObjIdIndexIterator
IndexPool::ObjectStrIndex
IndexPool::SchemaIndex

Author
Helmut Jakoby

Terms of License

This file is part of the GlobalObjects module.

GlobalObjects is free software:

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GNU Affero General Public License Usage
You can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Please review the following information to ensure the GNU Affero General Public License requirements will be met: https://www.gnu.org/licenses/agpl-3.0.en.html .