GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloTableReaderInterface.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOTABLEREADERINTERFACE_H
2#define INC_GLOTABLEREADERINTERFACE_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include <map>
38#include <list>
39#include <stack>
40#include "GloTypes.h"
41#include "GloTableInterface.h"
42#include "GloIndexPool.h"
43//-----------------------------------------------------------------------------
44namespace glo
45{
46 //---------------------------------------------------------------------------
47 /* Forwards */
48 struct ReaderInfo;
49 class BaseRecordAttribute;
50 //---------------------------------------------------------------------------
51 #ifdef _MSC_VER
52 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
53 #pragma warning( disable : 4251 )
54 #endif
55 //---------------------------------------------------------------------------
77 {
78 private:
79 //-----------------------------------------------------------------------
80 // >>>>>>>>>>>>>>> AllSetObjectStrIndexIteratorItem >>>>>>>>>>>>>>>>>>>>>>>
81 //-----------------------------------------------------------------------
99 {
100 public:
101 //============== Attribute
102 //---------------------------------------------------------------------
113 //---------------------------------------------------------------------
123 std::string m_sIndexName;
124 //---------------------------------------------------------------------
125
126 private:
127 //============= De- und Konstruktoren
128 //---------------------------------------------------------------------
139 //---------------------------------------------------------------------
150 //---------------------------------------------------------------------
151
152 public:
153 //============= De- und Konstruktoren
154 //---------------------------------------------------------------------
175 const std::string & m_sIndexName );
176 //---------------------------------------------------------------------
187 //---------------------------------------------------------------------
188
189 //============== Methoden
190 //---------------------------------------------------------------------
205 std::size_t getObjectStrIndexSize() const;
206 //---------------------------------------------------------------------
222 int setCurrentObject( const ObjID & rObjID );
223 //---------------------------------------------------------------------
240 int setPosition( std::size_t nPosition );
241 //---------------------------------------------------------------------
258 bool inObjectStrIndex( const ObjID & rObjID );
259 //---------------------------------------------------------------------
260
261 private:
262 //============== Operatoren
263 //---------------------------------------------------------------------
274 //---------------------------------------------------------------------
275 };
276 //-----------------------------------------------------------------------
277 // <<<<<<<<<<<<<<< AllSetObjectStrIndexIteratorItem <<<<<<<<<<<<<<<<<<<<<<<
278 //-----------------------------------------------------------------------
279
280 private:
281 //============== Attribute
282 //-----------------------------------------------------------------------
293 std::map< ObjID, Record *, std::less<ObjID> > m_RecursionRecordMap;
294 //-----------------------------------------------------------------------
314 std::map< NUM_PTR, IndexPool::TableObjIdIndexIterator *, std::less<NUM_PTR> > * m_pAllSetTableObjIdIndexIteratorMap;
315 //-----------------------------------------------------------------------
335 std::map< NUM_PTR, AllSetObjectStrIndexIteratorItem *, std::less<NUM_PTR> > * m_pAllSetObjectStrIndexIteratorMap;
336 //-----------------------------------------------------------------------
354 //-----------------------------------------------------------------------
355
356 protected:
357 //============== Konstruktoren
358 //-----------------------------------------------------------------------
369 //-----------------------------------------------------------------------
370
371 public:
372 //============== De- und Konstruktoren
373 //-----------------------------------------------------------------------
390 RealIndexPool * pRealIndexPool );
391 //-----------------------------------------------------------------------
403 //-----------------------------------------------------------------------
404
405 private:
406 //============== Konstruktoren
407 //-----------------------------------------------------------------------
418 //-----------------------------------------------------------------------
419
420 public:
421 //============== Methoden
422 //-----------------------------------------------------------------------
437 virtual int openTable( const std::string & sTableName );
438 //-----------------------------------------------------------------------
451 //-----------------------------------------------------------------------
476 int setTransactionIndexPool( TransactionIndexPool * pTransactionIndexPool );
477 //-----------------------------------------------------------------------
498 //-----------------------------------------------------------------------
519 //-----------------------------------------------------------------------
549 int openAllSet( NUM_PTR ipClientAllSetAddress,
550 unsigned long ulClassID,
551 bool bWithSubClasses );
552 //-----------------------------------------------------------------------
579 int openAllSet( NUM_PTR ipClientAllSetAddress,
580 unsigned long ulClassID,
581 const std::string & rsIndexName );
582 //-----------------------------------------------------------------------
602 int isAllSetOpen( NUM_PTR ipClientAllSetAddress ) const;
603 //-----------------------------------------------------------------------
617 int closeAllSet( NUM_PTR ipClientAllSetAddress );
618 //-----------------------------------------------------------------------
657 NUM_PTR ipClientAllSetAddress,
658 EnSeekMode eMode ) const;
659 //-----------------------------------------------------------------------
689 int getIndexedObjIdListFromAllSet( std::list<ObjID> & rRetValList,
690 NUM_PTR ipClientAllSetAddress,
691 const std::string & rsIndexSearchValue,
692 EnQueryType eQuerryType ) const;
693 //-----------------------------------------------------------------------
722 int getIndexedObjIdListFromAllSet( std::list<ObjID> & rRetValList,
723 NUM_PTR ipClientAllSetAddress,
724 const std::string & rsIndexSearchValue,
725 EnComparisionOp eComparisionOp ) const;
726 //-----------------------------------------------------------------------
756 int getIndexedObjIdListFromAllSet( std::list<ObjID> & rRetValList,
757 NUM_PTR ipClientAllSetAddress,
758 const std::string & rsRangeStartIndex,
759 const std::string & rsRangeEndIndex ) const;
760 //-----------------------------------------------------------------------
779 int setFilterInAllSet( NUM_PTR ipClientAllSetAddress,
780 const std::string & rsIndexFilterValue ) const;
781 //-----------------------------------------------------------------------
807 int setFilterInAllSet( NUM_PTR ipClientAllSetAddress,
808 const std::string & rsIndexFilterValue,
809 EnComparisionOp eComparisionOp ) const;
810 //-----------------------------------------------------------------------
836 int setFilterInAllSet( NUM_PTR ipClientAllSetAddress,
837 const std::string & rsRangeStartIndex,
838 const std::string & rsRangeEndIndex ) const;
839 //-----------------------------------------------------------------------
853 int removeFilterInAllSet( NUM_PTR ipClientAllSetAddress ) const;
854 //-----------------------------------------------------------------------
874 int getSizeFromAllSet( std::size_t & rnSize, NUM_PTR ipClientAllSetAddress ) const;
875 //-----------------------------------------------------------------------
897 int setCurrentObjectInAllSet( const ObjID & rObjID,
898 NUM_PTR ipClientAllSetAddress ) const;
899 //-----------------------------------------------------------------------
919 int setPositionInAllSet( std::size_t nPosition,
920 NUM_PTR ipClientAllSetAddress ) const;
921 //-----------------------------------------------------------------------
947 int objIDInAllSet( const ObjID & rObjID,
948 NUM_PTR ipClientAllSetAddress ) const;
949 //-----------------------------------------------------------------------
967 int getAllObjIDs( std::list<ObjID> & rRetValList );
968 //-----------------------------------------------------------------------
988 int getObjIDs( std::list<ObjID> & rRetValList, unsigned long ulClassID );
989 //-----------------------------------------------------------------------
1009 int getObjIDs( std::map< ObjID, ObjID, std::less<ObjID> > & rRetValMap,
1010 unsigned long ulClassID );
1011 //-----------------------------------------------------------------------
1039 int getRecord( Record *& prRetVal,
1040 const ObjID & rObjID,
1041 ReaderInfo * pReaderInfo );
1042 //-----------------------------------------------------------------------
1067 int getObjectData( Record *& prRetVal,
1068 const ObjID & rObjID,
1069 ReaderInfo * pReaderInfo );
1070 //-----------------------------------------------------------------------
1071
1072 protected:
1073 //============== Methoden
1074 //-----------------------------------------------------------------------
1108 int getObjectData( Record *& prRetVal,
1109 const ObjID & rObjID,
1110 ReaderInfo * pReaderInfo,
1111 bool bInRecursion );
1112 //-----------------------------------------------------------------------
1153 NUM_PTR ipClientAllSetAddress,
1154 unsigned long ulClassID,
1155 bool bWithSubClasses = true );
1156 //-----------------------------------------------------------------------
1192 NUM_PTR ipClientAllSetAddress,
1193 unsigned long ulClassID,
1194 const std::string & rsIndexName );
1195 //-----------------------------------------------------------------------
1216 int getObjIDs( std::list<ObjID> * pRetValList,
1217 std::map< ObjID, ObjID, std::less<ObjID> > * pRetValMap,
1218 unsigned long ulClassID );
1219 //-----------------------------------------------------------------------
1248 int getRecord( Record *& prRetVal,
1249 const std::string & sTableName,
1250 const ObjID & rObjID,
1251 unsigned long ulClassID,
1252 bool bOnlyClassIDTable = false );
1253 //-----------------------------------------------------------------------
1286 const ClassInfoAttribute & rClassInfoAttribute,
1287 const ObjID & rObjID,
1288 const std::string & sPath );
1289 //-----------------------------------------------------------------------
1329 int generateRecord( Record *& prRetVal,
1330 const std::string & sFieldNameRow,
1331 const std::string & sDataRow,
1332 std::streampos StreamPosRow,
1333 const std::string & rsTable,
1334 bool bOnlyClassIDTable = false );
1335 //-----------------------------------------------------------------------
1365 const ObjID & rObjID,
1366 unsigned long ulClassID,
1367 bool bOnlyClassIDTable = false );
1368 //-----------------------------------------------------------------------
1393 int getObjectDataFromDataRow( std::shared_ptr<Record> & sprRetVal,
1394 const ObjID & rObjID,
1395 unsigned long ulClassID,
1396 bool bOnlyClassIDTable = false );
1397 //-----------------------------------------------------------------------
1398
1399
1400 private:
1401 //============== Methoden
1402 //-----------------------------------------------------------------------
1418 void deleteAllSetTableObjIdIndexIteratorMap( std::map< NUM_PTR, IndexPool::TableObjIdIndexIterator *, std::less<NUM_PTR> > * pMapToDelete );
1419 //-----------------------------------------------------------------------
1435 void deleteAllSetObjectStrIndexIteratorMap( std::map< NUM_PTR, AllSetObjectStrIndexIteratorItem *, std::less<NUM_PTR> > * pMapToDelete );
1436 //-----------------------------------------------------------------------
1437
1438 //============== Operatoren
1439 //-----------------------------------------------------------------------
1449 TableInterface & operator= ( const TableInterface & );
1450 //-----------------------------------------------------------------------
1451 };
1452 //---------------------------------------------------------------------------
1453 #ifdef _MSC_VER
1454 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
1455 #pragma warning( default : 4251 )
1456 #endif
1457 //---------------------------------------------------------------------------
1458} // namespace glo
1459#endif
long long NUM_PTR
Definition EuDef_NULL_PTR.h:93
Header für IndexPool Header für IndexPool TransactionIndexPool RealIndexPool IndexPool::Dele...
Header für TableInterface und TableInterface::TableInterfaceTable
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
#define __glo_export_dll
Definition GloTypes.h:63
Basisklasse für die einzelnen Attribute eines Record.
Definition GloBaseRecordAttribute.h:109
In Objekten dieser Klasse sind die Information für GlobalObjects, wie ein persistentes Klassenattribu...
Definition GloClassInfoAttribute.h:76
Hat einen Zeiger auf einen ObjectStrIndex und ermöglicht das iterieren durch diesen Index....
Definition GloIndexPool.h:2497
Hat einen Zeiger auf einen TableObjIdIndex und ermöglicht das iterieren durch diesen Index....
Definition GloIndexPool.h:1315
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:77
Der reale Index im Gegensatz zum TransactionIndexPool, welcher für jede Transaktion erstellt wird.
Definition GloIndexPool.h:5151
Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen...
Definition GloRecord.h:101
Diese Klasse ist die Schnittstelle zu einem GlobalObjects-Schema. Sie beinhaltet alle Klasseninformat...
Definition GloSchemaInterface.h:84
Ein Objekt dieser Klasse bzw. der Unterklasse greift auf Tabellen zu und liest bzw....
Definition GloTableInterface.h:87
In der m_pAllSetObjectStrIndexIteratorMap werden Objekte dieses Typs verwaltet, um in der Methode Tab...
Definition GloTableReaderInterface.h:99
AllSetObjectStrIndexIteratorItem(IndexPool::ObjectStrIndexIterator *pObjectStrIndexIterator, const std::string &m_sIndexName)
std::string m_sIndexName
Definition GloTableReaderInterface.h:123
AllSetObjectStrIndexIteratorItem(const AllSetObjectStrIndexIteratorItem &)
IndexPool::ObjectStrIndexIterator * m_pObjectStrIndexIterator
Definition GloTableReaderInterface.h:112
Ein Objekt dieser Klasse greift auf Tabellen zu und liest Datensätze (Record) und Binärdateien (eut::...
Definition GloTableReaderInterface.h:77
int setFilterInAllSet(NUM_PTR ipClientAllSetAddress, const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex) const
std::map< NUM_PTR, IndexPool::TableObjIdIndexIterator *, std::less< NUM_PTR > > * m_pAllSetTableObjIdIndexIteratorMap
Definition GloTableReaderInterface.h:314
int getObjIDs(std::map< ObjID, ObjID, std::less< ObjID > > &rRetValMap, unsigned long ulClassID)
int getObjectData(Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo, bool bInRecursion)
TableReaderInterface(const SchemaInterface &rScheme, RealIndexPool *pRealIndexPool)
int getSizeFromAllSet(std::size_t &rnSize, NUM_PTR ipClientAllSetAddress) const
int generateRecord(Record *&prRetVal, const std::string &sFieldNameRow, const std::string &sDataRow, std::streampos StreamPosRow, const std::string &rsTable, bool bOnlyClassIDTable=false)
IndexPool::ObjectStrIndexIterator * openAllSet(int &riErr, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, const std::string &rsIndexName)
int openAllSet(NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, bool bWithSubClasses)
int setFilterInAllSet(NUM_PTR ipClientAllSetAddress, const std::string &rsIndexFilterValue) const
int removeFilterInAllSet(NUM_PTR ipClientAllSetAddress) const
int getObjIdFromAllSet(ObjID &rObjID, NUM_PTR ipClientAllSetAddress, EnSeekMode eMode) const
int getIndexedObjIdListFromAllSet(std::list< ObjID > &rRetValList, NUM_PTR ipClientAllSetAddress, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
int setFilterInAllSet(NUM_PTR ipClientAllSetAddress, const std::string &rsIndexFilterValue, EnComparisionOp eComparisionOp) const
TransactionIndexPool * getTransactionIndexPool() const
int isAllSetOpen(NUM_PTR ipClientAllSetAddress) const
int setCurrentObjectInAllSet(const ObjID &rObjID, NUM_PTR ipClientAllSetAddress) const
std::map< NUM_PTR, AllSetObjectStrIndexIteratorItem *, std::less< NUM_PTR > > * m_pAllSetObjectStrIndexIteratorMap
Definition GloTableReaderInterface.h:335
TransactionIndexPool * m_pTransactionIndexPool
Definition GloTableReaderInterface.h:353
std::map< ObjID, Record *, std::less< ObjID > > m_RecursionRecordMap
Definition GloTableReaderInterface.h:293
void deleteAllSetTableObjIdIndexIteratorMap(std::map< NUM_PTR, IndexPool::TableObjIdIndexIterator *, std::less< NUM_PTR > > *pMapToDelete)
int closeAllSet(NUM_PTR ipClientAllSetAddress)
int getObjectDataFromDataRow(Record *&prRetVal, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
int getObjIDs(std::list< ObjID > *pRetValList, std::map< ObjID, ObjID, std::less< ObjID > > *pRetValMap, unsigned long ulClassID)
int openAllSet(NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, const std::string &rsIndexName)
RealIndexPool * getRealIndexPool() const
int getIndexedObjIdListFromAllSet(std::list< ObjID > &rRetValList, NUM_PTR ipClientAllSetAddress, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
int objIDInAllSet(const ObjID &rObjID, NUM_PTR ipClientAllSetAddress) const
int getAllObjIDs(std::list< ObjID > &rRetValList)
int setPositionInAllSet(std::size_t nPosition, NUM_PTR ipClientAllSetAddress) const
int getObjectDataFromDataRow(std::shared_ptr< Record > &sprRetVal, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
void deleteAllSetObjectStrIndexIteratorMap(std::map< NUM_PTR, AllSetObjectStrIndexIteratorItem *, std::less< NUM_PTR > > *pMapToDelete)
virtual int openTable(const std::string &sTableName)
int getRecord(Record *&prRetVal, const std::string &sTableName, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
int getObjectData(Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo)
int setTransactionIndexPool(TransactionIndexPool *pTransactionIndexPool)
int getIndexedObjIdListFromAllSet(std::list< ObjID > &rRetValList, NUM_PTR ipClientAllSetAddress, const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex) const
TableReaderInterface(const TableReaderInterface &)
int getRecordAttribute(BaseRecordAttribute *&prRetVal, const ClassInfoAttribute &rClassInfoAttribute, const ObjID &rObjID, const std::string &sPath)
int getObjIDs(std::list< ObjID > &rRetValList, unsigned long ulClassID)
IndexPool::TableObjIdIndexIterator * openAllSet(int &riErr, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, bool bWithSubClasses=true)
int getRecord(Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo)
Dieser Index wird in jeder Transaktion generiert und die Änderungen wie speichern,...
Definition GloIndexPool.h:5924
Definition GloAbstractBaseLot.h:42
EnComparisionOp
Definition GloTypes.h:1583
EnSeekMode
Definition GloTypes.h:166
EnQueryType
Definition GloTypes.h:1179
Objekte dieser Struktur transportieren Daten zu Objekten des Typs TableReaderInterface.
Definition GloReaderWriterInfo.h:112