GlobalObjects
Loading...
Searching...
No Matches
GloIndexPool.h
Go to the documentation of this file.
1#ifndef INC_GLOINDEXPOOL_H
2#define INC_GLOINDEXPOOL_H
3//-----------------------------------------------------------------------------
50//-----------------------------------------------------------------------------
51#include "GloTypes.h"
53#include "GloObjID.h"
55#include "GloClassInfoIndex.h"
56#if defined (__PTHREADS)
57 #include <EuPCriticalSection.h>
58#else
59 #include "EuCriticalSection.h"
60#endif
61#include <ctime>
62#include <list>
63#include <map>
64
65#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
66 #include <basetsd.h>
67#elif defined(__GNUC__)
68 #define INT_PTR intptr_t
69#endif
70//-----------------------------------------------------------------------------
71namespace glo
72{
73 //---------------------------------------------------------------------------
74 /* Forwards */
75 class SchemaInterface;
76 class ClassInfoIndex;
77 class WatchNotifyManager;
78 //---------------------------------------------------------------------------
79 #ifdef _MSC_VER
80 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
81 #pragma warning( disable : 4251 )
82 #endif
83 //---------------------------------------------------------------------------
196 {
197 public:
198 //-----------------------------------------------------------------------
199 // >>>>>>>>>>>>>>>>>>>>>> DeletedObjIdTuple >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
200 //-----------------------------------------------------------------------
228 {
229 public:
230 //============== Attribute
231 //---------------------------------------------------------------------
242 //---------------------------------------------------------------------
268 //---------------------------------------------------------------------
269
270 //============= De- und Konstruktoren
271 //---------------------------------------------------------------------
282 //---------------------------------------------------------------------
296 DeletedObjIdTuple( const ObjID & rObjID, int iDelCounter );
297 //---------------------------------------------------------------------
310 //---------------------------------------------------------------------
321 //---------------------------------------------------------------------
322
323 //============== Methoden
324 //---------------------------------------------------------------------
336 std::string toString() const;
337 //---------------------------------------------------------------------
338
339 //============== Operatoren
340 //---------------------------------------------------------------------
353 bool operator== ( const DeletedObjIdTuple & rT ) const;
354 bool operator!= ( const DeletedObjIdTuple & rT ) const;
355 bool operator> ( const DeletedObjIdTuple & rT ) const;
356 bool operator>= ( const DeletedObjIdTuple & rT ) const;
357 bool operator< ( const DeletedObjIdTuple & rT ) const;
358 bool operator<= ( const DeletedObjIdTuple & rT ) const;
360 //---------------------------------------------------------------------
373 bool operator== ( int iDelCounter ) const;
374 bool operator!= ( int iDelCounter ) const;
375 bool operator> ( int iDelCounter ) const;
376 bool operator>= ( int iDelCounter ) const;
377 bool operator< ( int iDelCounter ) const;
378 bool operator<= ( int iDelCounter ) const;
380 //---------------------------------------------------------------------
393 //---------------------------------------------------------------------
394 };
395 //-----------------------------------------------------------------------
396 // <<<<<<<<<<<<<<<<<<<<<< DeletedObjIdTuple <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
397 //-----------------------------------------------------------------------
398
399 //-----------------------------------------------------------------------
400 // >>>>>>>>>>>>>>>>>>>>>>>> ObjIdPosTuple >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
401 //-----------------------------------------------------------------------
421 {
422 public:
423 //============== Attribute
424 //---------------------------------------------------------------------
435 //---------------------------------------------------------------------
445 std::streampos m_FilePosition;
446 //---------------------------------------------------------------------
447
448 //============= De- und Konstruktoren
449 //---------------------------------------------------------------------
460 //---------------------------------------------------------------------
475 ObjIdPosTuple( const ObjID & rObjID, std::streampos FilePosition );
476 //---------------------------------------------------------------------
489 //---------------------------------------------------------------------
499 virtual ~ObjIdPosTuple();
500 //---------------------------------------------------------------------
501
502 //============== Methoden
503 //---------------------------------------------------------------------
515 std::string toString() const;
516 //---------------------------------------------------------------------
517
518 //============== Operatoren
519 //---------------------------------------------------------------------
532 bool operator== ( const ObjIdPosTuple & rT ) const;
533 bool operator!= ( const ObjIdPosTuple & rT ) const;
534 bool operator> ( const ObjIdPosTuple & rT ) const;
535 bool operator>= ( const ObjIdPosTuple & rT ) const;
536 bool operator< ( const ObjIdPosTuple & rT ) const;
537 bool operator<= ( const ObjIdPosTuple & rT ) const;
539 //---------------------------------------------------------------------
552 bool operator== ( std::streampos Pos ) const;
553 bool operator!= ( std::streampos Pos ) const;
554 bool operator> ( std::streampos Pos ) const;
555 bool operator>= ( std::streampos Pos ) const;
556 bool operator< ( std::streampos Pos ) const;
557 bool operator<= ( std::streampos Pos ) const;
559 //---------------------------------------------------------------------
571 IndexPool::ObjIdPosTuple & operator= ( const ObjIdPosTuple & rT );
572 //---------------------------------------------------------------------
573 };
574 //-----------------------------------------------------------------------
575 // <<<<<<<<<<<<<<<<<<<<<<< ObjIdPosTuple <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
576 //-----------------------------------------------------------------------
577
578 //-----------------------------------------------------------------------
579 // >>>>>>>>>>>>>>>>>>>>>>> ObjStrIdTuple >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
580 //-----------------------------------------------------------------------
611 {
612 private:
613 //============== Attribute
614 //---------------------------------------------------------------------
632 std::string m_sIndex;
633 //---------------------------------------------------------------------
644 //---------------------------------------------------------------------
657 //---------------------------------------------------------------------
670 //---------------------------------------------------------------------
683 //---------------------------------------------------------------------
684
685 public:
686 //============= De- und Konstruktoren
687 //---------------------------------------------------------------------
698 //---------------------------------------------------------------------
733 ObjStrIdTuple( const std::string & rsIndex,
734 const ObjID & rObjID,
735 NUM_PTR ipReservingComunicatorTrx = 0,
736 NUM_PTR ipReservingComunicator = 0,
737 NUM_PTR ipReservingComunicatorThreadID = 0 );
738 //---------------------------------------------------------------------
751 //---------------------------------------------------------------------
761 virtual ~ObjStrIdTuple();
762 //---------------------------------------------------------------------
763
764 //============== Methoden
765 //---------------------------------------------------------------------
802 void setValues( const std::string & rsIndex,
803 const ObjID & rObjID,
804 NUM_PTR ipReservingComunicatorTrx = 0,
805 NUM_PTR ipReservingComunicator = 0,
806 NUM_PTR ipReservingComunicatorThreadID = 0 );
807 //---------------------------------------------------------------------
819 void setIndex( const std::string & rsIndex );
820 //---------------------------------------------------------------------
832 void setObjID( const ObjID & rObjID );
833 //---------------------------------------------------------------------
866 void setReservingComunicatorTrx( NUM_PTR ipReservingComunicatorTrx,
867 NUM_PTR ipReservingComunicator,
868 NUM_PTR ipReservingComunicatorThreadID );
869 //---------------------------------------------------------------------
881 std::string getIndex() const;
882 //---------------------------------------------------------------------
895 //---------------------------------------------------------------------
911 //---------------------------------------------------------------------
927 NUM_PTR getReservingComunicator() const;
928 //---------------------------------------------------------------------
945 //---------------------------------------------------------------------
959 std::string toString() const;
960 //---------------------------------------------------------------------
961
962 //============== Operatoren
963 //---------------------------------------------------------------------
978 bool operator== ( const ObjStrIdTuple & rT ) const;
979 bool operator!= ( const ObjStrIdTuple & rT ) const;
980 bool operator> ( const ObjStrIdTuple & rT ) const;
981 bool operator>= ( const ObjStrIdTuple & rT ) const;
982 bool operator< ( const ObjStrIdTuple & rT ) const;
983 bool operator<= ( const ObjStrIdTuple & rT ) const;
985 //---------------------------------------------------------------------
997 IndexPool::ObjStrIdTuple & operator= ( const ObjStrIdTuple & rT );
998 //---------------------------------------------------------------------
999 };
1000 //-----------------------------------------------------------------------
1001 // <<<<<<<<<<<<<<<<<<<<<<<< ObjStrIdTuple <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1002 //-----------------------------------------------------------------------
1003
1004 //-----------------------------------------------------------------------
1005 // >>>>>>>>>>>>>>>>>>>>>>> TableObjIdIndex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1006 //-----------------------------------------------------------------------
1026 {
1027 private:
1028 //============== Attribute
1029 //---------------------------------------------------------------------
1041 std::string m_strPathName;
1042 //---------------------------------------------------------------------
1054 unsigned long m_ulClassID;
1055 //---------------------------------------------------------------------
1066 std::map< ObjID, ObjIdPosTuple *, std::less< ObjID > > m_ObjIDIndexMap;
1067 //---------------------------------------------------------------------
1079 std::map< std::streampos, std::streampos , std::less< std::streampos > > m_FreeObjIDPosMap;
1080 //---------------------------------------------------------------------
1081
1082 //============= De- und Konstruktoren
1083 //---------------------------------------------------------------------
1094 //---------------------------------------------------------------------
1095
1096 public:
1097 //============= De- und Konstruktoren
1098 //---------------------------------------------------------------------
1114 TableObjIdIndex( const std::string & rsPathName, unsigned long ulClassID );
1115 //---------------------------------------------------------------------
1128 //---------------------------------------------------------------------
1139 //---------------------------------------------------------------------
1140
1141 //============== Methoden
1142 //---------------------------------------------------------------------
1155 const std::string & getPathName() const;
1156 //---------------------------------------------------------------------
1169 unsigned long getClassID() const;
1170 //---------------------------------------------------------------------
1184 const std::map< ObjID, IndexPool::ObjIdPosTuple *, std::less< ObjID > > & getObjIDIndexMapRef() const;
1185 //---------------------------------------------------------------------
1199 const std::map< std::streampos, std::streampos , std::less< std::streampos > > & getFreeObjIDPosMapRef() const;
1200 //---------------------------------------------------------------------
1214 bool isObjIdFree( const ObjID & rObjID ) const;
1215 //---------------------------------------------------------------------
1235 int insertObjIdPosTuple( const ObjIdPosTuple & rIndexTuple );
1236 //---------------------------------------------------------------------
1254 int removeObjId( const ObjID & rObjID );
1255 //---------------------------------------------------------------------
1283 const ObjID & rObjID ) const;
1284 //---------------------------------------------------------------------
1300 int insertFreeObjIDPos( std::streampos Pos );
1301 //---------------------------------------------------------------------
1318 int getFreeObjIDPos( std::streampos & rPos ) const;
1319 //---------------------------------------------------------------------
1335 int removeFreeObjIDPos( std::streampos Pos );
1336 //---------------------------------------------------------------------
1349 //---------------------------------------------------------------------
1363 //---------------------------------------------------------------------
1364
1365 protected:
1366 //============== Methoden
1367 //---------------------------------------------------------------------
1386 void copyMapFrom( const TableObjIdIndex & rT );
1387 //---------------------------------------------------------------------
1388
1389 public:
1390 //============== Operatoren
1391 //---------------------------------------------------------------------
1404 //---------------------------------------------------------------------
1405 };
1406 //-----------------------------------------------------------------------
1407 // <<<<<<<<<<<<<<<<<<<<<<<< TableObjIdIndex <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1408 //-----------------------------------------------------------------------
1409
1410 //-----------------------------------------------------------------------
1411 // >>>>>>>>>>>>>>>>>>>> TableObjIdIndexIterator >>>>>>>>>>>>>>>>>>>>>>>>>>>
1412 //-----------------------------------------------------------------------
1430 {
1431 private:
1432 //============== Attribute
1433 //---------------------------------------------------------------------
1446 //---------------------------------------------------------------------
1462 //---------------------------------------------------------------------
1477 //---------------------------------------------------------------------
1478
1479 protected:
1480 //============= De- und Konstruktoren
1481 //---------------------------------------------------------------------
1492 //---------------------------------------------------------------------
1493
1494 public:
1495 //============= De- und Konstruktoren
1496 //---------------------------------------------------------------------
1513 //---------------------------------------------------------------------
1526 //---------------------------------------------------------------------
1537 //---------------------------------------------------------------------
1538
1539 //============== Methoden
1540 //---------------------------------------------------------------------
1554 void setWithSubClasses( bool bWithSubClasses );
1555 //---------------------------------------------------------------------
1569 bool withSubClasses() const;
1570 //---------------------------------------------------------------------
1584 std::size_t getTableObjIdIndexSize() const;
1585 //---------------------------------------------------------------------
1597 unsigned long getClassID() const;
1598 //---------------------------------------------------------------------
1639 int getObjIdPosTuple( ObjIdPosTuple *& prRetVal, EnSeekMode eMode );
1640 //---------------------------------------------------------------------
1657 int setPosition( std::size_t nPosition );
1658 //---------------------------------------------------------------------
1675 int setCurrentObject( const ObjID & rObjID );
1676 //---------------------------------------------------------------------
1696 bool setNearestObject( const ObjID & rObjID );
1697 //---------------------------------------------------------------------
1714 bool inObjIdIndex( const ObjID & rObjID );
1715 //---------------------------------------------------------------------
1716
1717 protected:
1718 //============== Methoden
1719 //---------------------------------------------------------------------
1754 bool setNearestObject( std::map< ObjID, ObjIdPosTuple *>::iterator & rIterator,
1755 const ObjID & rObjID );
1756 //---------------------------------------------------------------------
1757
1758 public:
1759 //============== Operatoren
1760 //---------------------------------------------------------------------
1773 //---------------------------------------------------------------------
1774 };
1775 //-----------------------------------------------------------------------
1776 // <<<<<<<<<<<<<<<<<<<< TableObjIdIndexIterator <<<<<<<<<<<<<<<<<<<<<<<<<<<
1777 //-----------------------------------------------------------------------
1778
1779 //-----------------------------------------------------------------------
1780 // >>>>>>>>>>>>>>>>>>>>>>> ObjectStrIndex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1781 //-----------------------------------------------------------------------
1801 {
1802 //============== Friends
1803 //-----------------------------------------------------------------------
1804 friend class RealIndexPool;
1805 //-----------------------------------------------------------------------
1806
1807 private:
1808 //============== Attribute
1809 //---------------------------------------------------------------------
1821 std::string m_strPathName;
1822 //---------------------------------------------------------------------
1834 unsigned long m_ulClassID;
1835 //---------------------------------------------------------------------
1847 std::string m_sIndexName;
1848 //---------------------------------------------------------------------
1862 //---------------------------------------------------------------------
1872 std::map< std::string, ObjStrIdTuple * , std::less< std::string > > m_UniqueIndexMap;
1873 //---------------------------------------------------------------------
1883 std::map< std::string, ObjStrIdTuple * >::iterator m_UniqueIndexMapIterator;
1884 //---------------------------------------------------------------------
1911 std::multimap< std::string, ObjStrIdTuple * , std::less< std::string > > m_ReservedIndexMultiMap;
1912 //---------------------------------------------------------------------
1922 std::multimap< std::string, ObjStrIdTuple * , std::less< std::string > > m_NonUniqueIndexMultiMap;
1923 //---------------------------------------------------------------------
1933 std::multimap< std::string, ObjStrIdTuple * >::iterator m_NonUniqueIndexMultiMapIterator;
1934 //---------------------------------------------------------------------
1946 std::map< ObjID, ObjStrIdTuple * , std::less< ObjID > > m_ObjIdIndexMap;
1947 //---------------------------------------------------------------------
1948
1949 protected:
1950 //============= De- und Konstruktoren
1951 //---------------------------------------------------------------------
1962 //---------------------------------------------------------------------
1963
1964 public:
1965 //============= De- und Konstruktoren
1966 //---------------------------------------------------------------------
1992 ObjectStrIndex( const std::string & rsPathName,
1993 unsigned long ulClassID,
1994 const std::string & rsIndexName,
1995 bool bUnique );
1996 //---------------------------------------------------------------------
2011 //---------------------------------------------------------------------
2022 //---------------------------------------------------------------------
2023
2024 //============== Methoden
2025 //---------------------------------------------------------------------
2038 const std::string & getPathName() const;
2039 //---------------------------------------------------------------------
2051 unsigned long getClassID() const;
2052 //---------------------------------------------------------------------
2066 const std::string & getIndexName() const;
2067 //---------------------------------------------------------------------
2082 bool isUnique() const;
2083 //---------------------------------------------------------------------
2095 const std::map< std::string, IndexPool::ObjStrIdTuple * , std::less< std::string > > & getUniqueIndexMapRef() const;
2096 //---------------------------------------------------------------------
2108 const std::multimap< std::string, IndexPool::ObjStrIdTuple * , std::less< std::string > > & getNonUniqueIndexMapRef() const;
2109 //---------------------------------------------------------------------
2121 const std::map< ObjID, IndexPool::ObjStrIdTuple * , std::less< ObjID > > & getObjIdIndexMapRef() const;
2122 //---------------------------------------------------------------------
2141 void reserveObjStrIdTuple( const ObjStrIdTuple & rIndexTuple );
2142 //---------------------------------------------------------------------
2166 void releaseObjStrIdTuple( const NUM_PTR ipReservingComunicatorTrx );
2167 //---------------------------------------------------------------------
2191 void releaseCommunicatorObjStrIdTuple( const NUM_PTR ipReservingComunicator );
2192 //---------------------------------------------------------------------
2214 int insertObjStrIdTuple( const ObjStrIdTuple & rIndexTuple );
2215 //---------------------------------------------------------------------
2239 int removeObjStrIdTuple( const ObjID & rObjID,
2240 NUM_PTR ipReservingComunicatorTrx = 0 );
2241 //---------------------------------------------------------------------
2261 bool isIndexFree( const std::string & rsIndex, const ObjID & rObjID ) const;
2262 //---------------------------------------------------------------------
2278 bool isObjIdAlreadyAvailable( const ObjID & rObjID ) const;
2279 //---------------------------------------------------------------------
2295 //---------------------------------------------------------------------
2296
2297 protected:
2298 //============== Methoden
2299 //---------------------------------------------------------------------
2321 //---------------------------------------------------------------------
2360 //---------------------------------------------------------------------
2392 int removeObjStrIdTuple( const ObjID & rObjID,
2393 bool bDelete,
2394 NUM_PTR ipReservingComunicatorTrx = 0 );
2395 //---------------------------------------------------------------------
2413 void copyMapsFrom( const ObjectStrIndex & rT );
2414 //---------------------------------------------------------------------
2415
2416 public:
2417 //============== Operatoren
2418 //---------------------------------------------------------------------
2432 IndexPool::ObjectStrIndex & operator= ( const ObjectStrIndex & rT );
2433 //---------------------------------------------------------------------
2434 };
2435 //-----------------------------------------------------------------------
2436 // <<<<<<<<<<<<<<<<<<<<<<<< ObjectStrIndex <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2437 //-----------------------------------------------------------------------
2438
2439 //-----------------------------------------------------------------------
2440 // >>>>>>>>>>>>>>>>>>>>>>>>>>> IndexFilter >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2441 //-----------------------------------------------------------------------
2459 {
2460 //-----------------------------------------------------------------------
2473 //-----------------------------------------------------------------------
2483 virtual ~IndexFilter() {};
2484 //-----------------------------------------------------------------------
2485 };
2486 //-----------------------------------------------------------------------
2487 // <<<<<<<<<<<<<<<<<<<<<<<<<<< IndexFilter <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2488 //-----------------------------------------------------------------------
2489
2490 //-----------------------------------------------------------------------
2491 // >>>>>>>>>>>>>>>>>>>>>> IndexComparisionFilter >>>>>>>>>>>>>>>>>>>>>>>>>>
2492 //-----------------------------------------------------------------------
2516 {
2517 //-----------------------------------------------------------------------
2528 //-----------------------------------------------------------------------
2539 : m_eComparisionOperator( EQUAL )
2540 {};
2541 //-----------------------------------------------------------------------
2552 //-----------------------------------------------------------------------
2553 };
2554 //-----------------------------------------------------------------------
2555 // <<<<<<<<<<<<<<<<<<<<<< IndexComparisionFilter <<<<<<<<<<<<<<<<<<<<<<<<<<
2556 //-----------------------------------------------------------------------
2557
2558 //-----------------------------------------------------------------------
2559 // >>>>>>>>>>>>>>>>>>>>>>>>> IndexRangeFilter >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2560 //-----------------------------------------------------------------------
2588 {
2589 //-----------------------------------------------------------------------
2600 //-----------------------------------------------------------------------
2610 virtual ~IndexRangeFilter() {};
2611 //-----------------------------------------------------------------------
2612 };
2613 //-----------------------------------------------------------------------
2614 // <<<<<<<<<<<<<<<<<<<<<<<<< IndexRangeFilter <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2615 //-----------------------------------------------------------------------
2616
2617 //-----------------------------------------------------------------------
2618 // >>>>>>>>>>>>>>>>>>>>> ObjectStrIndexIterator >>>>>>>>>>>>>>>>>>>>>>>>>>>
2619 //-----------------------------------------------------------------------
2637 {
2638 private:
2639 //============== Attribute
2640 //---------------------------------------------------------------------
2655 //---------------------------------------------------------------------
2671 //---------------------------------------------------------------------
2682 //---------------------------------------------------------------------
2683
2684 protected:
2685 //============= De- und Konstruktoren
2686 //---------------------------------------------------------------------
2697 //---------------------------------------------------------------------
2698
2699 public:
2700 //============= De- und Konstruktoren
2701 //---------------------------------------------------------------------
2718 //---------------------------------------------------------------------
2731 //---------------------------------------------------------------------
2742 //---------------------------------------------------------------------
2743
2744 //============== Methoden
2745 //---------------------------------------------------------------------
2759 std::size_t getObjectStrIndexSize() const;
2760 //---------------------------------------------------------------------
2772 unsigned long getClassID() const;
2773 //---------------------------------------------------------------------
2812 //---------------------------------------------------------------------
2840 int getObjStrIdTupleList( std::list<ObjStrIdTuple> & rRetVal,
2841 const std::string & rsIndex,
2842 EnQueryType eQuerryType ) const;
2843 //---------------------------------------------------------------------
2871 int getObjStrIdTupleList( std::list<ObjStrIdTuple> & rRetVal,
2872 const std::string & rsIndex,
2873 EnComparisionOp eComparisionOp ) const;
2874 //---------------------------------------------------------------------
2904 int getObjStrIdTupleList( std::list<ObjStrIdTuple> & rRetVal,
2905 const std::string & rsRangeStartIndex,
2906 const std::string & rsRangeEndIndex ) const;
2907 //---------------------------------------------------------------------
2932 void setFilter( const std::string & rsIndexFilterValue );
2933 //---------------------------------------------------------------------
2966 void setFilter( const std::string & rsIndexFilterValue,
2967 EnComparisionOp eComparisionOp );
2968 //---------------------------------------------------------------------
2999 void setFilter( const std::string & rsRangeStartIndex,
3000 const std::string & rsRangeEndIndex );
3001 //---------------------------------------------------------------------
3014 //---------------------------------------------------------------------
3033 void setFilter( IndexFilter * pIndexFilter );
3034 //---------------------------------------------------------------------
3051 int setPosition( std::size_t nPosition );
3052 //---------------------------------------------------------------------
3069 int setCurrentObject( const ObjID & rObjID );
3070 //---------------------------------------------------------------------
3090 bool setNearestObject( const std::string & rsIndex );
3091 //---------------------------------------------------------------------
3109 bool inObjectStrIndex( const ObjID & rObjID );
3110 //---------------------------------------------------------------------
3128 bool inObjectStrIndex( const std::string & rsIndex );
3129 //---------------------------------------------------------------------
3130
3131 protected:
3132 //============== Methoden
3133 //---------------------------------------------------------------------
3149 bool valueMatchesIndexFilter( const std::string & rsSearchIndex,
3150 IndexFilter & rIndexFilter ) const;
3151 //---------------------------------------------------------------------
3167 bool valueMatchesComparisonFilter( const std::string & rsSearchIndex,
3168 IndexComparisionFilter & rIndexComparisionFilter ) const;
3169 //---------------------------------------------------------------------
3185 bool valueMatchesRangeFilter( const std::string & rsSearchIndex,
3186 IndexRangeFilter & rIndexRangeFilter ) const;
3187 //---------------------------------------------------------------------
3220 int getSearchModeAndSearchIndex( std::string & rsSearchIndex,
3221 const std::string rsSourceIndex ) const;
3222 //---------------------------------------------------------------------
3255 bool setNearestObjectInMap( std::map< std::string, ObjStrIdTuple *>::const_iterator & rIterator,
3256 const std::string & rsIndex );
3257 //---------------------------------------------------------------------
3290 bool setNearestObjectInMultiMap( std::multimap< std::string, ObjStrIdTuple *>::const_iterator & rIterator,
3291 const std::string & rsIndex );
3292 //---------------------------------------------------------------------
3293
3294
3295 public:
3296 //============== Operatoren
3297 //---------------------------------------------------------------------
3310 //---------------------------------------------------------------------
3311 };
3312 //-----------------------------------------------------------------------
3313 // <<<<<<<<<<<<<<<<<<<<< ObjectStrIndexIterator <<<<<<<<<<<<<<<<<<<<<<<<<<<
3314 //-----------------------------------------------------------------------
3315
3316 //-----------------------------------------------------------------------
3317 // >>>>>>>>>>>>>>>>>>>>>>>>> SchemaIndex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3318 //-----------------------------------------------------------------------
3332 {
3333 private:
3334 //============== Attribute
3335 //---------------------------------------------------------------------
3345 std::string m_sSchemaName;
3346 //---------------------------------------------------------------------
3360 std::map< unsigned long, TableObjIdIndex * , std::less< unsigned long > > m_TableObjIdIndexMap;
3361 //---------------------------------------------------------------------
3375 std::multimap< unsigned long, ObjectStrIndex * , std::less< unsigned long > > m_ObjectStrIndexMap;
3376 //---------------------------------------------------------------------
3390 std::map< ObjID, ObjID * , std::less< ObjID > > m_DeletedObjIdMap;
3391 //---------------------------------------------------------------------
3414 std::map< ObjID, DeletedObjIdTuple * , std::less< ObjID > > m_TransactionDeletedObjIdMap;
3415 //---------------------------------------------------------------------
3416
3417 protected:
3418 //============= De- und Konstruktoren
3419 //---------------------------------------------------------------------
3430 //---------------------------------------------------------------------
3431
3432 public:
3433 //============= De- und Konstruktoren
3434 //---------------------------------------------------------------------
3446 SchemaIndex( const std::string & rstrName );
3447 //---------------------------------------------------------------------
3462 //---------------------------------------------------------------------
3473 //---------------------------------------------------------------------
3474
3475 //============== Methoden
3476 //---------------------------------------------------------------------
3488 std::string getSchemaName() const;
3489 //---------------------------------------------------------------------
3501 const std::map< unsigned long, IndexPool::TableObjIdIndex * , std::less< unsigned long > > & getTableObjIdIndexMapRef() const;
3502 //---------------------------------------------------------------------
3523 unsigned long ulClassID ) const;
3524 //---------------------------------------------------------------------
3542 int makeTableObjIdIndex( const std::string & rsPathName,
3543 unsigned long ulClassID );
3544 //---------------------------------------------------------------------
3565 unsigned long ulClassID ) const;
3566 //---------------------------------------------------------------------
3582 int removeTableObjIdIndex( unsigned long ulClassID );
3583 //---------------------------------------------------------------------
3602 int isObjIdFree( unsigned long ulClassID,
3603 const ObjID & rObjID ) const;
3604 //---------------------------------------------------------------------
3622 bool isObjIdDeleted (const ObjID & rObjID) const;
3623 //---------------------------------------------------------------------
3645 int insertObjIdPosTuple( unsigned long ulClassID,
3646 const ObjIdPosTuple & rIndexTuple );
3647 //---------------------------------------------------------------------
3661 int insertDeletedObjID( const ObjID & rDeletedObjId );
3662 //---------------------------------------------------------------------
3681 int insertTransactionDeletedObjID( const ObjID & rDeletedObjId );
3682 //---------------------------------------------------------------------
3703 int removeTransactionDeletedObjID( const ObjID & rDeletedObjId );
3704 //---------------------------------------------------------------------
3725 int removeObjId( unsigned long ulClassID, const ObjID & rObjID );
3726 //---------------------------------------------------------------------
3752 unsigned long ulClassID,
3753 const ObjID & rObjID ) const;
3754 //---------------------------------------------------------------------
3772 int insertFreeObjIDPos( unsigned long ulClassID, std::streampos Pos );
3773 //---------------------------------------------------------------------
3791 int getFreeObjIDPos( std::streampos & rPos, unsigned long ulClassID ) const;
3792 //---------------------------------------------------------------------
3811 int removeFreeObjIDPos( unsigned long ulClassID, std::streampos Pos );
3812 //---------------------------------------------------------------------
3824 const std::multimap< unsigned long, IndexPool::ObjectStrIndex * , std::less< unsigned long > > & getObjectStrIndexMapRef() const;
3825 //---------------------------------------------------------------------
3852 int getObjectStrIndexIterator( ObjectStrIndexIterator *& prObjectStrIndexIterators,
3853 unsigned long ulClassID,
3854 const std::string & rsIndexName ) const;
3855 //---------------------------------------------------------------------
3883 int makeObjectStrIndex( const std::string & rsPathName,
3884 unsigned long ulClassID,
3885 const std::string & rsIndexName,
3886 bool bUnique );
3887 //---------------------------------------------------------------------
3914 unsigned long ulClassID,
3915 const std::string & rsIndexName );
3916 //---------------------------------------------------------------------
3939 int removeObjectStrIndex( unsigned long ulClassID,
3940 const std::string & rsIndexName );
3941 //---------------------------------------------------------------------
3970 int isIndexFree( unsigned long ulClassID,
3971 const ObjID & rObjID,
3972 const std::string & rsIndexName,
3973 const std::string & rsIndex ) const;
3974 //---------------------------------------------------------------------
4003 int reserveObjStrIdTuple( unsigned long ulClassID,
4004 const std::string & rsIndexName,
4005 const ObjStrIdTuple & rIndexTuple );
4006 //---------------------------------------------------------------------
4037 int releaseObjStrIdTuple( unsigned long ulClassID,
4038 const std::string & rsIndexName,
4039 const NUM_PTR ipReservingComunicatorTrx );
4040 //---------------------------------------------------------------------
4069 void releaseAllCommunicatorObjStrIdTuples( const NUM_PTR ipReservingComunicator );
4070 //---------------------------------------------------------------------
4094 int insertObjStrIdTuple( unsigned long ulClassID,
4095 const std::string & rsIndexName,
4096 const ObjStrIdTuple & rIndexTuple );
4097 //---------------------------------------------------------------------
4130 int removeObjStrIdTuple( unsigned long ulClassID,
4131 const std::string & rsIndexName,
4132 const ObjID & rObjID,
4133 NUM_PTR ipReservingComunicatorTrx = 0 );
4134 //---------------------------------------------------------------------
4135
4136 protected:
4137 //---------------------------------------------------------------------
4153 void copyMapsFrom( const SchemaIndex & rT );
4154 //---------------------------------------------------------------------
4165 //---------------------------------------------------------------------
4166
4167 public:
4168 //============== Operatoren
4169 //---------------------------------------------------------------------
4181 IndexPool::SchemaIndex & operator= ( const SchemaIndex & rT );
4182 //---------------------------------------------------------------------
4183 };
4184 //-----------------------------------------------------------------------
4185 // <<<<<<<<<<<<<<<<<<<<<<<<< SchemaIndex <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
4186 //-----------------------------------------------------------------------
4187
4188 // ============================================================================
4189 //---------------------------- IndexPool --------------------------------------
4190 protected:
4191 //============== Attribute
4192 //-----------------------------------------------------------------------
4205 #if defined (__PTHREADS)
4206 EuPCriticalSection m_LocalCriticalSection;
4207 #else
4209 #endif
4210 //-----------------------------------------------------------------------
4220 std::map< std::string, SchemaIndex * , std::less< std::string > > m_SchemaIndexMap;
4221 //-----------------------------------------------------------------------
4222
4223 public:
4224 //============== De- und Konstruktor
4225 //-----------------------------------------------------------------------
4236 //-----------------------------------------------------------------------
4248 IndexPool( const IndexPool & rT );
4249 //-----------------------------------------------------------------------
4259 virtual ~IndexPool();
4260 //-----------------------------------------------------------------------
4261
4262 //============== Methoden
4263 //-----------------------------------------------------------------------
4292 virtual int getTableObjIdIndexIterator( TableObjIdIndexIterator *& prTableIterators,
4293 const std::string & rsSchemaName,
4294 unsigned long ulClassID ) const;
4295 //-----------------------------------------------------------------------
4321 virtual int isObjIdFree( const std::string & rsSchemaName,
4322 const ObjID & rObjID ) const;
4323 //-----------------------------------------------------------------------
4345 virtual int insertDeletedObjID( const std::string & rsSchemaName,
4346 const ObjID & rDeletedObjId );
4347 //-----------------------------------------------------------------------
4372 virtual bool isObjIdDeleted( const std::string & rsSchemaName,
4373 const ObjID & rObjID ) const;
4374 //-----------------------------------------------------------------------
4406 virtual int insertObjIdPosTuple( const std::string & rsSchemaName,
4407 unsigned long ulClassID,
4408 const ObjIdPosTuple & rIndexTuple );
4409 //-----------------------------------------------------------------------
4444 virtual int getObjIdPosTuple( ObjIdPosTuple *& prRetVal,
4445 const std::string & rsSchemaName,
4446 unsigned long ulClassID,
4447 const ObjID & rObjID ) const;
4448 //-----------------------------------------------------------------------
4479 virtual int removeObjId( const std::string & rsSchemaName,
4480 unsigned long ulClassID,
4481 const ObjID & rObjID );
4482 //-----------------------------------------------------------------------
4516 virtual int getObjectStrIndexIterator( ObjectStrIndexIterator *& prObjectStrIndexIterators,
4517 const std::string & rsSchemaName,
4518 unsigned long ulClassID,
4519 const std::string & rsIndexName ) const;
4520 //-----------------------------------------------------------------------
4558 virtual int isIndexFree( const std::string & rsSchemaName,
4559 unsigned long ulClassID,
4560 const ObjID & rObjID,
4561 const std::string & rsIndexName,
4562 const std::string & rsIndex ) const;
4563 //-----------------------------------------------------------------------
4600 int reserveObjStrIdTuple( const std::string & rsSchemaName,
4601 unsigned long ulClassID,
4602 const std::string & rsIndexName,
4603 const ObjStrIdTuple & rIndexTuple );
4604 //-----------------------------------------------------------------------
4642 int releaseObjStrIdTuple( const std::string & rsSchemaName,
4643 unsigned long ulClassID,
4644 const std::string & rsIndexName,
4645 const NUM_PTR ipReservingComunicatorTrx );
4646 //-----------------------------------------------------------------------
4677 int releaseAllCommunicatorObjStrIdTuples( const std::string & rsSchemaName,
4678 const NUM_PTR ipReservingComunicator );
4679 //-----------------------------------------------------------------------
4713 virtual int insertObjStrIdTuple( const std::string & rsSchemaName,
4714 unsigned long ulClassID,
4715 const std::string & rsIndexName,
4716 const ObjStrIdTuple & rIndexTuple );
4717 //-----------------------------------------------------------------------
4760 virtual int removeObjStrIdTuple( const std::string & rsSchemaName,
4761 unsigned long ulClassID,
4762 const std::string & rsIndexName,
4763 const ObjID & rObjID,
4764 NUM_PTR ipReservingComunicatorTrx = 0 );
4765 //-----------------------------------------------------------------------
4780 //-----------------------------------------------------------------------
4781
4782 protected:
4783 //============== Methoden
4784 //-----------------------------------------------------------------------
4806 void copyMapFrom( const IndexPool & rT );
4807 //-----------------------------------------------------------------------
4823 int _removeSchemaIndex( const std::string & rsSchemaName );
4824 //-----------------------------------------------------------------------
4843 virtual bool _existsSchemaIndex( const std::string & rsSchemaName ) const;
4844 //-----------------------------------------------------------------------
4867 virtual int _getSchemaIndex( SchemaIndex *& prRetVal,
4868 const std::string & rsSchemaName ) const;
4869 //-----------------------------------------------------------------------
4895 const std::string & rsSchemaName,
4896 unsigned long ulClassID ) const;
4897 //-----------------------------------------------------------------------
4922 virtual int _makeTableObjIdIndex( const std::string & rsSchemaName,
4923 const std::string & rsTablePathName,
4924 unsigned long ulClassID );
4925 //-----------------------------------------------------------------------
4950 virtual int _getTableObjIdIndex( TableObjIdIndex *& prRetVal,
4951 const std::string & rsSchemaName,
4952 unsigned long ulClassID ) const;
4953 //-----------------------------------------------------------------------
4982 virtual int _getObjectStrIndexIterator( ObjectStrIndexIterator *& prObjStrIterators,
4983 const std::string & rsSchemaName,
4984 unsigned long ulClassID,
4985 const std::string & rsIndexName ) const;
4986 //-----------------------------------------------------------------------
5020 virtual int _makeObjectStrIndex( const std::string & rsSchemaName,
5021 const std::string & rsTablePathName,
5022 unsigned long ulClassID,
5023 const std::string & rsIndexName,
5024 bool bUnique );
5025 //-----------------------------------------------------------------------
5055 virtual int _getObjectStrIndex( ObjectStrIndex *& prRetVal,
5056 const std::string & rsSchemaName,
5057 unsigned long ulClassID,
5058 const std::string & rsIndexName ) const;
5059 //-----------------------------------------------------------------------
5083 virtual int _isObjIdFree( const std::string & rsSchemaName,
5084 unsigned long ulClassID,
5085 const ObjID & rObjID ) const;
5086 //-----------------------------------------------------------------------
5104 virtual int _insertDeletedObjID( const std::string & rsSchemaName,
5105 const ObjID & rDeletedObjId );
5106 //-----------------------------------------------------------------------
5126 virtual bool _isObjIdDeleted( const std::string & rsSchemaName,
5127 const ObjID & rObjID ) const;
5128 //-----------------------------------------------------------------------
5156 virtual int _insertObjIdPosTuple( const std::string & rsSchemaName,
5157 unsigned long ulClassID,
5158 const ObjIdPosTuple & rIndexTuple );
5159 //-----------------------------------------------------------------------
5189 virtual int _insertObjStrIdTuple( const std::string & rsSchemaName,
5190 unsigned long ulClassID,
5191 const std::string & rsIndexName,
5192 const ObjStrIdTuple & rIndexTuple );
5193 //-----------------------------------------------------------------------
5224 virtual int _getObjIdPosTuple( ObjIdPosTuple *& prRetVal,
5225 const std::string & rsSchemaName,
5226 unsigned long ulClassID,
5227 const ObjID & rObjID ) const;
5228 //-----------------------------------------------------------------------
5251 virtual int _insertFreeObjIDPos( const std::string & rsSchemaName,
5252 unsigned long ulClassID,
5253 std::streampos Pos );
5254 //-----------------------------------------------------------------------
5278 virtual int _getFreeObjIDPos( std::streampos & rPos,
5279 const std::string & rsSchemaName,
5280 unsigned long ulClassID ) const;
5281 //-----------------------------------------------------------------------
5304 virtual int _removeFreeObjIDPos( const std::string & rsSchemaName,
5305 unsigned long ulClassID,
5306 std::streampos Pos );
5307 //-----------------------------------------------------------------------
5318 //-----------------------------------------------------------------------
5319
5320 public:
5321 //============== Operatoren
5322 //-----------------------------------------------------------------------
5334 IndexPool & operator= ( const IndexPool & rT );
5335 //-----------------------------------------------------------------------
5336 };
5337 // ============================================================================
5338 #ifdef _MSC_VER
5339 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
5340 #pragma warning( default : 4251 )
5341 #endif
5342 //---------------------------------------------------------------------------
5343} // namespace glo
5344#endif
Header for CriticalSection
Header for EuPCriticalSection
Header for ClassInfoAttribute and ClassInfoAttribute::Type
Header for ClassInfoIndex and ClassInfoIndex::IndexAttributeItem
Header for ObjID
For each library, here 'GlobalObjects' there is a type file.
#define __glo_export_dll
Definition GloTypes.h:70
Header for WatchNotifyManager WatchNotifyManager::NotifyInfo WatchNotifyManager::NotifyObjInfo ...
Is a mutex which can be queried via its lock mode. See isLocked().
Definition EuPCriticalSection.h:104
Is a mutex which can be queried via its lock mode. See isLocked().
Definition EuCriticalSection.h:109
Class to manage deleted objects in the IndexPool::SchemaIndex.
Definition GloIndexPool.h:228
int m_iDelCounter
Definition GloIndexPool.h:267
ObjID m_ObjID
Definition GloIndexPool.h:241
DeletedObjIdTuple(const DeletedObjIdTuple &rT)
DeletedObjIdTuple(const ObjID &rObjID, int iDelCounter)
Class to manage objects in the IndexPool::TableObjIdIndex.
Definition GloIndexPool.h:421
ObjIdPosTuple(const ObjIdPosTuple &rT)
std::string toString() const
std::streampos m_FilePosition
Definition GloIndexPool.h:445
ObjID m_ObjID
Definition GloIndexPool.h:434
ObjIdPosTuple(const ObjID &rObjID, std::streampos FilePosition)
Class to manage objects in the IndexPool::ObjectStrIndex.
Definition GloIndexPool.h:611
void setReservingComunicatorTrx(NUM_PTR ipReservingComunicatorTrx, NUM_PTR ipReservingComunicator, NUM_PTR ipReservingComunicatorThreadID)
ObjID m_ObjID
Definition GloIndexPool.h:643
NUM_PTR m_ipReservingComunicatorThreadID
Definition GloIndexPool.h:682
ObjStrIdTuple(const std::string &rsIndex, const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0, NUM_PTR ipReservingComunicator=0, NUM_PTR ipReservingComunicatorThreadID=0)
std::string toString() const
ObjStrIdTuple(const ObjStrIdTuple &rT)
NUM_PTR m_ipReservingComunicator
Definition GloIndexPool.h:669
void setValues(const std::string &rsIndex, const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0, NUM_PTR ipReservingComunicator=0, NUM_PTR ipReservingComunicatorThreadID=0)
void setIndex(const std::string &rsIndex)
NUM_PTR m_ipReservingComunicatorTrx
Definition GloIndexPool.h:656
void setObjID(const ObjID &rObjID)
NUM_PTR getReservingComunicatorTrx() const
NUM_PTR getReservingComunicator() const
NUM_PTR getReservingComunicatorThreadID() const
std::string m_sIndex
Definition GloIndexPool.h:632
std::string getIndex() const
Manages the individual string indices of a class. If this is a unique index, the ObjStrIdTuple are in...
Definition GloIndexPool.h:1801
std::map< ObjID, ObjStrIdTuple *, std::less< ObjID > > m_ObjIdIndexMap
Definition GloIndexPool.h:1946
std::multimap< std::string, ObjStrIdTuple * >::iterator m_NonUniqueIndexMultiMapIterator
Definition GloIndexPool.h:1933
std::map< std::string, ObjStrIdTuple * >::iterator m_UniqueIndexMapIterator
Definition GloIndexPool.h:1883
const std::string & getIndexName() const
const std::multimap< std::string, IndexPool::ObjStrIdTuple *, std::less< std::string > > & getNonUniqueIndexMapRef() const
std::map< std::string, ObjStrIdTuple *, std::less< std::string > > m_UniqueIndexMap
Definition GloIndexPool.h:1872
bool isIndexFree(const std::string &rsIndex, const ObjID &rObjID) const
const std::map< ObjID, IndexPool::ObjStrIdTuple *, std::less< ObjID > > & getObjIdIndexMapRef() const
const std::string & getPathName() const
bool isObjIdAlreadyAvailable(const ObjID &rObjID) const
unsigned long getClassID() const
IndexPool::ObjStrIdTuple * getObjStrIdTuple(const ObjID &rObjID)
void copyMapsFrom(const ObjectStrIndex &rT)
std::string m_sIndexName
Definition GloIndexPool.h:1847
std::multimap< std::string, ObjStrIdTuple *, std::less< std::string > > m_ReservedIndexMultiMap
Definition GloIndexPool.h:1911
ObjectStrIndex(const std::string &rsPathName, unsigned long ulClassID, const std::string &rsIndexName, bool bUnique)
std::string m_strPathName
Definition GloIndexPool.h:1821
ObjectStrIndex(const ObjectStrIndex &rT)
std::multimap< std::string, ObjStrIdTuple *, std::less< std::string > > m_NonUniqueIndexMultiMap
Definition GloIndexPool.h:1922
const std::map< std::string, IndexPool::ObjStrIdTuple *, std::less< std::string > > & getUniqueIndexMapRef() const
void releaseObjStrIdTuple(const NUM_PTR ipReservingComunicatorTrx)
int removeObjStrIdTuple(const ObjID &rObjID, bool bDelete, NUM_PTR ipReservingComunicatorTrx=0)
void reserveObjStrIdTuple(const ObjStrIdTuple &rIndexTuple)
int removeObjStrIdTuple(const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0)
unsigned long m_ulClassID
Definition GloIndexPool.h:1834
int insertObjStrIdTuple(const ObjStrIdTuple &rIndexTuple)
IndexPool::ObjStrIdTuple * getObjStrIdTuple(EnSeekMode eMode)
void releaseCommunicatorObjStrIdTuple(const NUM_PTR ipReservingComunicator)
bool m_bUnique
Definition GloIndexPool.h:1861
Has a pointer to an ObjectStrIndex and allows iteration through this index. Is instantiated e....
Definition GloIndexPool.h:2637
ObjectStrIndex * m_pObjectStrIndex
Definition GloIndexPool.h:2654
ObjectStrIndexIterator(const ObjectStrIndexIterator &rT)
bool inObjectStrIndex(const ObjID &rObjID)
bool valueMatchesComparisonFilter(const std::string &rsSearchIndex, IndexComparisionFilter &rIndexComparisionFilter) const
bool setNearestObject(const std::string &rsIndex)
void setFilter(IndexFilter *pIndexFilter)
int getSearchModeAndSearchIndex(std::string &rsSearchIndex, const std::string rsSourceIndex) const
bool setNearestObjectInMultiMap(std::multimap< std::string, ObjStrIdTuple * >::const_iterator &rIterator, const std::string &rsIndex)
int getObjStrIdTupleList(std::list< ObjStrIdTuple > &rRetVal, const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex) const
void setFilter(const std::string &rsIndexFilterValue, EnComparisionOp eComparisionOp)
int getObjStrIdTuple(ObjStrIdTuple &rRetVal, EnSeekMode eMode)
ObjStrIdTuple * m_pLastObjectStrIndexItem
Definition GloIndexPool.h:2670
bool valueMatchesIndexFilter(const std::string &rsSearchIndex, IndexFilter &rIndexFilter) const
int setCurrentObject(const ObjID &rObjID)
void setFilter(const std::string &rsIndexFilterValue)
bool inObjectStrIndex(const std::string &rsIndex)
void setFilter(const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex)
std::size_t getObjectStrIndexSize() const
bool setNearestObjectInMap(std::map< std::string, ObjStrIdTuple * >::const_iterator &rIterator, const std::string &rsIndex)
int getObjStrIdTupleList(std::list< ObjStrIdTuple > &rRetVal, const std::string &rsIndex, EnQueryType eQuerryType) const
IndexFilter * m_pIndexFilter
Definition GloIndexPool.h:2681
bool valueMatchesRangeFilter(const std::string &rsSearchIndex, IndexRangeFilter &rIndexRangeFilter) const
ObjectStrIndexIterator(ObjectStrIndex *pObjectStrIndex)
int getObjStrIdTupleList(std::list< ObjStrIdTuple > &rRetVal, const std::string &rsIndex, EnComparisionOp eComparisionOp) const
int setPosition(std::size_t nPosition)
Is the index manager class for a schema resp. a database.
Definition GloIndexPool.h:3332
int removeObjStrIdTuple(unsigned long ulClassID, const std::string &rsIndexName, const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0)
int insertObjIdPosTuple(unsigned long ulClassID, const ObjIdPosTuple &rIndexTuple)
bool isObjIdDeleted(const ObjID &rObjID) const
std::multimap< unsigned long, ObjectStrIndex *, std::less< unsigned long > > m_ObjectStrIndexMap
Definition GloIndexPool.h:3375
int getObjectStrIndex(ObjectStrIndex *&prRetVal, unsigned long ulClassID, const std::string &rsIndexName)
int insertTransactionDeletedObjID(const ObjID &rDeletedObjId)
int getObjIdPosTuple(ObjIdPosTuple *&prRetVal, unsigned long ulClassID, const ObjID &rObjID) const
std::string getSchemaName() const
int insertFreeObjIDPos(unsigned long ulClassID, std::streampos Pos)
int removeObjId(unsigned long ulClassID, const ObjID &rObjID)
int reserveObjStrIdTuple(unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple)
int removeObjectStrIndex(unsigned long ulClassID, const std::string &rsIndexName)
int releaseObjStrIdTuple(unsigned long ulClassID, const std::string &rsIndexName, const NUM_PTR ipReservingComunicatorTrx)
int getTableObjIdIndexIterator(TableObjIdIndexIterator *&prTableIterators, unsigned long ulClassID) const
int removeFreeObjIDPos(unsigned long ulClassID, std::streampos Pos)
std::map< unsigned long, TableObjIdIndex *, std::less< unsigned long > > m_TableObjIdIndexMap
Definition GloIndexPool.h:3360
int getFreeObjIDPos(std::streampos &rPos, unsigned long ulClassID) const
int getTableObjIdIndex(TableObjIdIndex *&prRetVal, unsigned long ulClassID) const
void copyMapsFrom(const SchemaIndex &rT)
std::string m_sSchemaName
Definition GloIndexPool.h:3345
int removeTransactionDeletedObjID(const ObjID &rDeletedObjId)
void releaseAllCommunicatorObjStrIdTuples(const NUM_PTR ipReservingComunicator)
int insertObjStrIdTuple(unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple)
int insertDeletedObjID(const ObjID &rDeletedObjId)
SchemaIndex(const SchemaIndex &rT)
int makeObjectStrIndex(const std::string &rsPathName, unsigned long ulClassID, const std::string &rsIndexName, bool bUnique)
std::map< ObjID, ObjID *, std::less< ObjID > > m_DeletedObjIdMap
Definition GloIndexPool.h:3390
int getObjectStrIndexIterator(ObjectStrIndexIterator *&prObjectStrIndexIterators, unsigned long ulClassID, const std::string &rsIndexName) const
int makeTableObjIdIndex(const std::string &rsPathName, unsigned long ulClassID)
SchemaIndex(const std::string &rstrName)
std::map< ObjID, DeletedObjIdTuple *, std::less< ObjID > > m_TransactionDeletedObjIdMap
Definition GloIndexPool.h:3414
const std::map< unsigned long, IndexPool::TableObjIdIndex *, std::less< unsigned long > > & getTableObjIdIndexMapRef() const
int removeTableObjIdIndex(unsigned long ulClassID)
int isIndexFree(unsigned long ulClassID, const ObjID &rObjID, const std::string &rsIndexName, const std::string &rsIndex) const
const std::multimap< unsigned long, IndexPool::ObjectStrIndex *, std::less< unsigned long > > & getObjectStrIndexMapRef() const
int isObjIdFree(unsigned long ulClassID, const ObjID &rObjID) const
Manages the object IDs (used and released) with their position in the respective tables.
Definition GloIndexPool.h:1026
const std::string & getPathName() const
TableObjIdIndex(const TableObjIdIndex &rT)
int getFreeObjIDPos(std::streampos &rPos) const
std::string m_strPathName
Definition GloIndexPool.h:1041
unsigned long m_ulClassID
Definition GloIndexPool.h:1054
unsigned long getClassID() const
int insertFreeObjIDPos(std::streampos Pos)
const std::map< ObjID, IndexPool::ObjIdPosTuple *, std::less< ObjID > > & getObjIDIndexMapRef() const
int removeObjId(const ObjID &rObjID)
void copyMapFrom(const TableObjIdIndex &rT)
int getObjIdPosTuple(ObjIdPosTuple *&prRetVal, const ObjID &rObjID) const
std::map< std::streampos, std::streampos, std::less< std::streampos > > m_FreeObjIDPosMap
Definition GloIndexPool.h:1079
std::map< ObjID, ObjIdPosTuple *, std::less< ObjID > > m_ObjIDIndexMap
Definition GloIndexPool.h:1066
int insertObjIdPosTuple(const ObjIdPosTuple &rIndexTuple)
int removeFreeObjIDPos(std::streampos Pos)
TableObjIdIndex(const std::string &rsPathName, unsigned long ulClassID)
const std::map< std::streampos, std::streampos, std::less< std::streampos > > & getFreeObjIDPosMapRef() const
bool isObjIdFree(const ObjID &rObjID) const
Has a pointer to a TableObjIdIndex and allows to iterate through this index. Is instantiated e....
Definition GloIndexPool.h:1430
std::size_t getTableObjIdIndexSize() const
TableObjIdIndexIterator(TableObjIdIndex *pTableObjIdIndex)
void setWithSubClasses(bool bWithSubClasses)
ObjIdPosTuple * m_pLastTableObjIdIndexItem
Definition GloIndexPool.h:1461
int setCurrentObject(const ObjID &rObjID)
int setPosition(std::size_t nPosition)
TableObjIdIndexIterator(const TableObjIdIndexIterator &rT)
bool setNearestObject(std::map< ObjID, ObjIdPosTuple * >::iterator &rIterator, const ObjID &rObjID)
bool m_bWithSubClasses
Definition GloIndexPool.h:1476
bool inObjIdIndex(const ObjID &rObjID)
int getObjIdPosTuple(ObjIdPosTuple *&prRetVal, EnSeekMode eMode)
bool setNearestObject(const ObjID &rObjID)
TableObjIdIndex * m_pTableObjIdIndex
Definition GloIndexPool.h:1445
IndexPool is the base class for the RealIndexPool and the TransactionIndexPool for the individual tra...
Definition GloIndexPool.h:196
IndexPool(const IndexPool &rT)
eut::CriticalSection m_LocalCriticalSection
Definition GloIndexPool.h:4208
virtual int _getTableObjIdIndex(TableObjIdIndex *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID) const
virtual int isIndexFree(const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID, const std::string &rsIndexName, const std::string &rsIndex) const
virtual bool _existsSchemaIndex(const std::string &rsSchemaName) const
int reserveObjStrIdTuple(const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple)
virtual int _insertObjIdPosTuple(const std::string &rsSchemaName, unsigned long ulClassID, const ObjIdPosTuple &rIndexTuple)
void copyMapFrom(const IndexPool &rT)
virtual int getObjectStrIndexIterator(ObjectStrIndexIterator *&prObjectStrIndexIterators, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const
virtual bool isObjIdDeleted(const std::string &rsSchemaName, const ObjID &rObjID) const
virtual int _insertObjStrIdTuple(const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple)
virtual int removeObjStrIdTuple(const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0)
virtual int _getObjIdPosTuple(ObjIdPosTuple *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const
virtual int _getObjectStrIndexIterator(ObjectStrIndexIterator *&prObjStrIterators, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const
virtual int getObjIdPosTuple(ObjIdPosTuple *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const
virtual int insertDeletedObjID(const std::string &rsSchemaName, const ObjID &rDeletedObjId)
virtual int _makeObjectStrIndex(const std::string &rsSchemaName, const std::string &rsTablePathName, unsigned long ulClassID, const std::string &rsIndexName, bool bUnique)
virtual int getTableObjIdIndexIterator(TableObjIdIndexIterator *&prTableIterators, const std::string &rsSchemaName, unsigned long ulClassID) const
virtual int _getTableObjIdIndexIterator(TableObjIdIndexIterator *&prTableIterators, const std::string &rsSchemaName, unsigned long ulClassID) const
virtual int _insertDeletedObjID(const std::string &rsSchemaName, const ObjID &rDeletedObjId)
virtual int _makeTableObjIdIndex(const std::string &rsSchemaName, const std::string &rsTablePathName, unsigned long ulClassID)
virtual int removeObjId(const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID)
virtual int _insertFreeObjIDPos(const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos)
virtual int isObjIdFree(const std::string &rsSchemaName, const ObjID &rObjID) const
virtual int _getFreeObjIDPos(std::streampos &rPos, const std::string &rsSchemaName, unsigned long ulClassID) const
int _removeSchemaIndex(const std::string &rsSchemaName)
virtual int _getSchemaIndex(SchemaIndex *&prRetVal, const std::string &rsSchemaName) const
virtual int insertObjIdPosTuple(const std::string &rsSchemaName, unsigned long ulClassID, const ObjIdPosTuple &rIndexTuple)
virtual bool _isObjIdDeleted(const std::string &rsSchemaName, const ObjID &rObjID) const
int releaseAllCommunicatorObjStrIdTuples(const std::string &rsSchemaName, const NUM_PTR ipReservingComunicator)
void _deleteAllSchemaIndexValues()
virtual int insertObjStrIdTuple(const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple)
std::map< std::string, SchemaIndex *, std::less< std::string > > m_SchemaIndexMap
Definition GloIndexPool.h:4220
void deleteAllSchemaIndexValues()
virtual int _getObjectStrIndex(ObjectStrIndex *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const
virtual int _isObjIdFree(const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const
virtual ~IndexPool()
int releaseObjStrIdTuple(const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const NUM_PTR ipReservingComunicatorTrx)
virtual int _removeFreeObjIDPos(const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos)
An object ID consists of the class ID, a database ID and the actual unique object number (all unsigne...
Definition GloObjID.h:84
The real index as opposed to the TransactionIndexPool, which is created for each transaction
Definition GloRealIndexPool.h:69
Definition GloAbstractBaseLot.h:49
EnComparisionOp
Definition GloTypes.h:1567
@ EQUAL
Definition GloTypes.h:1577
EnSeekMode
Definition GloTypes.h:173
EnQueryType
Definition GloTypes.h:1164
Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by...
Definition GloIndexPool.h:2516
virtual ~IndexComparisionFilter()
Definition GloIndexPool.h:2551
EnComparisionOp m_eComparisionOperator
Definition GloIndexPool.h:2527
IndexComparisionFilter()
Definition GloIndexPool.h:2538
Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by...
Definition GloIndexPool.h:2459
virtual ~IndexFilter()
Definition GloIndexPool.h:2483
std::string m_sIndexFilterValue
Definition GloIndexPool.h:2472
Filters can be assigned to objects of the type ObjectStrIndexIterator, which control the iteration by...
Definition GloIndexPool.h:2588
std::string m_sIndexFilterEndValue
Definition GloIndexPool.h:2599
virtual ~IndexRangeFilter()
Definition GloIndexPool.h:2610