GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloIndexPool.h
gehe zur Dokumentation dieser Datei
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;
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 //-----------------------------------------------------------------------
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 //---------------------------------------------------------------------
4063 void releaseAllCommunicatorObjStrIdTuples( const NUM_PTR ipReservingComunicator );
4064 //---------------------------------------------------------------------
4088 int insertObjStrIdTuple( unsigned long ulClassID,
4089 const std::string & rsIndexName,
4090 const ObjStrIdTuple & rIndexTuple );
4091 //---------------------------------------------------------------------
4124 int removeObjStrIdTuple( unsigned long ulClassID,
4125 const std::string & rsIndexName,
4126 const ObjID & rObjID,
4127 NUM_PTR ipReservingComunicatorTrx = 0 );
4128 //---------------------------------------------------------------------
4129
4130 protected:
4131 //---------------------------------------------------------------------
4147 void copyMapsFrom( const SchemaIndex & rT );
4148 //---------------------------------------------------------------------
4159 //---------------------------------------------------------------------
4160
4161 public:
4162 //============== Operatoren
4163 //---------------------------------------------------------------------
4175 IndexPool::SchemaIndex & operator= ( const SchemaIndex & rT );
4176 //---------------------------------------------------------------------
4177 };
4178 //-----------------------------------------------------------------------
4179 // <<<<<<<<<<<<<<<<<<<<<<<<< SchemaIndex <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
4180 //-----------------------------------------------------------------------
4181
4182 // ============================================================================
4183 //---------------------------- IndexPool --------------------------------------
4184 protected:
4185 //============== Attribute
4186 //-----------------------------------------------------------------------
4199 #if defined (__PTHREADS)
4201 #else
4203 #endif
4204 //-----------------------------------------------------------------------
4214 std::map< std::string, SchemaIndex * , std::less< std::string > > m_SchemaIndexMap;
4215 //-----------------------------------------------------------------------
4216
4217 public:
4218 //============== De- und Konstruktor
4219 //-----------------------------------------------------------------------
4230 //-----------------------------------------------------------------------
4242 IndexPool( const IndexPool & rT );
4243 //-----------------------------------------------------------------------
4253 virtual ~IndexPool();
4254 //-----------------------------------------------------------------------
4255
4256 //============== Methoden
4257 //-----------------------------------------------------------------------
4286 virtual int getTableObjIdIndexIterator( TableObjIdIndexIterator *& prTableIterators,
4287 const std::string & rsSchemaName,
4288 unsigned long ulClassID ) const;
4289 //-----------------------------------------------------------------------
4315 virtual int isObjIdFree( const std::string & rsSchemaName,
4316 const ObjID & rObjID ) const;
4317 //-----------------------------------------------------------------------
4339 virtual int insertDeletedObjID( const std::string & rsSchemaName,
4340 const ObjID & rDeletedObjId );
4341 //-----------------------------------------------------------------------
4366 virtual bool isObjIdDeleted( const std::string & rsSchemaName,
4367 const ObjID & rObjID ) const;
4368 //-----------------------------------------------------------------------
4400 virtual int insertObjIdPosTuple( const std::string & rsSchemaName,
4401 unsigned long ulClassID,
4402 const ObjIdPosTuple & rIndexTuple );
4403 //-----------------------------------------------------------------------
4438 virtual int getObjIdPosTuple( ObjIdPosTuple *& prRetVal,
4439 const std::string & rsSchemaName,
4440 unsigned long ulClassID,
4441 const ObjID & rObjID ) const;
4442 //-----------------------------------------------------------------------
4473 virtual int removeObjId( const std::string & rsSchemaName,
4474 unsigned long ulClassID,
4475 const ObjID & rObjID );
4476 //-----------------------------------------------------------------------
4510 virtual int getObjectStrIndexIterator( ObjectStrIndexIterator *& prObjectStrIndexIterators,
4511 const std::string & rsSchemaName,
4512 unsigned long ulClassID,
4513 const std::string & rsIndexName ) const;
4514 //-----------------------------------------------------------------------
4552 virtual int isIndexFree( const std::string & rsSchemaName,
4553 unsigned long ulClassID,
4554 const ObjID & rObjID,
4555 const std::string & rsIndexName,
4556 const std::string & rsIndex ) const;
4557 //-----------------------------------------------------------------------
4594 int reserveObjStrIdTuple( const std::string & rsSchemaName,
4595 unsigned long ulClassID,
4596 const std::string & rsIndexName,
4597 const ObjStrIdTuple & rIndexTuple );
4598 //-----------------------------------------------------------------------
4636 int releaseObjStrIdTuple( const std::string & rsSchemaName,
4637 unsigned long ulClassID,
4638 const std::string & rsIndexName,
4639 const NUM_PTR ipReservingComunicatorTrx );
4640 //-----------------------------------------------------------------------
4671 int releaseAllCommunicatorObjStrIdTuples( const std::string & rsSchemaName,
4672 const NUM_PTR ipReservingComunicator );
4673 //-----------------------------------------------------------------------
4707 virtual int insertObjStrIdTuple( const std::string & rsSchemaName,
4708 unsigned long ulClassID,
4709 const std::string & rsIndexName,
4710 const ObjStrIdTuple & rIndexTuple );
4711 //-----------------------------------------------------------------------
4754 virtual int removeObjStrIdTuple( const std::string & rsSchemaName,
4755 unsigned long ulClassID,
4756 const std::string & rsIndexName,
4757 const ObjID & rObjID,
4758 NUM_PTR ipReservingComunicatorTrx = 0 );
4759 //-----------------------------------------------------------------------
4774 //-----------------------------------------------------------------------
4775
4776 protected:
4777 //============== Methoden
4778 //-----------------------------------------------------------------------
4800 void copyMapFrom( const IndexPool & rT );
4801 //-----------------------------------------------------------------------
4817 int _removeSchemaIndex( const std::string & rsSchemaName );
4818 //-----------------------------------------------------------------------
4837 virtual bool _existsSchemaIndex( const std::string & rsSchemaName ) const;
4838 //-----------------------------------------------------------------------
4861 virtual int _getSchemaIndex( SchemaIndex *& prRetVal,
4862 const std::string & rsSchemaName ) const;
4863 //-----------------------------------------------------------------------
4889 const std::string & rsSchemaName,
4890 unsigned long ulClassID ) const;
4891 //-----------------------------------------------------------------------
4916 virtual int _makeTableObjIdIndex( const std::string & rsSchemaName,
4917 const std::string & rsTablePathName,
4918 unsigned long ulClassID );
4919 //-----------------------------------------------------------------------
4944 virtual int _getTableObjIdIndex( TableObjIdIndex *& prRetVal,
4945 const std::string & rsSchemaName,
4946 unsigned long ulClassID ) const;
4947 //-----------------------------------------------------------------------
4976 virtual int _getObjectStrIndexIterator( ObjectStrIndexIterator *& prObjStrIterators,
4977 const std::string & rsSchemaName,
4978 unsigned long ulClassID,
4979 const std::string & rsIndexName ) const;
4980 //-----------------------------------------------------------------------
5014 virtual int _makeObjectStrIndex( const std::string & rsSchemaName,
5015 const std::string & rsTablePathName,
5016 unsigned long ulClassID,
5017 const std::string & rsIndexName,
5018 bool bUnique );
5019 //-----------------------------------------------------------------------
5049 virtual int _getObjectStrIndex( ObjectStrIndex *& prRetVal,
5050 const std::string & rsSchemaName,
5051 unsigned long ulClassID,
5052 const std::string & rsIndexName ) const;
5053 //-----------------------------------------------------------------------
5077 virtual int _isObjIdFree( const std::string & rsSchemaName,
5078 unsigned long ulClassID,
5079 const ObjID & rObjID ) const;
5080 //-----------------------------------------------------------------------
5098 virtual int _insertDeletedObjID( const std::string & rsSchemaName,
5099 const ObjID & rDeletedObjId );
5100 //-----------------------------------------------------------------------
5120 virtual bool _isObjIdDeleted( const std::string & rsSchemaName,
5121 const ObjID & rObjID ) const;
5122 //-----------------------------------------------------------------------
5150 virtual int _insertObjIdPosTuple( const std::string & rsSchemaName,
5151 unsigned long ulClassID,
5152 const ObjIdPosTuple & rIndexTuple );
5153 //-----------------------------------------------------------------------
5183 virtual int _insertObjStrIdTuple( const std::string & rsSchemaName,
5184 unsigned long ulClassID,
5185 const std::string & rsIndexName,
5186 const ObjStrIdTuple & rIndexTuple );
5187 //-----------------------------------------------------------------------
5218 virtual int _getObjIdPosTuple( ObjIdPosTuple *& prRetVal,
5219 const std::string & rsSchemaName,
5220 unsigned long ulClassID,
5221 const ObjID & rObjID ) const;
5222 //-----------------------------------------------------------------------
5245 virtual int _insertFreeObjIDPos( const std::string & rsSchemaName,
5246 unsigned long ulClassID,
5247 std::streampos Pos );
5248 //-----------------------------------------------------------------------
5272 virtual int _getFreeObjIDPos( std::streampos & rPos,
5273 const std::string & rsSchemaName,
5274 unsigned long ulClassID ) const;
5275 //-----------------------------------------------------------------------
5298 virtual int _removeFreeObjIDPos( const std::string & rsSchemaName,
5299 unsigned long ulClassID,
5300 std::streampos Pos );
5301 //-----------------------------------------------------------------------
5312 //-----------------------------------------------------------------------
5313
5314 public:
5315 //============== Operatoren
5316 //-----------------------------------------------------------------------
5328 IndexPool & operator= ( const IndexPool & rT );
5329 //-----------------------------------------------------------------------
5330 };
5331 // ============================================================================
5332 #ifdef _MSC_VER
5333 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
5334 #pragma warning( default : 4251 )
5335 #endif
5336 //---------------------------------------------------------------------------
5337} // namespace glo
5338#endif
Header für CriticalSection
Header für EuPCriticalSection
Header für ClassInfoAttribute und ClassInfoAttribute::Type
Header für ClassInfoIndex und ClassInfoIndex::IndexAttributeItem
Header für ObjID
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
#define __glo_export_dll
Definition GloTypes.h:70
Header für WatchNotifyManager WatchNotifyManager::NotifyInfo WatchNotifyManager::NotifyObjInfo ...
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuPCriticalSection.h:104
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuCriticalSection.h:109
In Objekten dieser Klasse sind die Information für GlobalObjects, wie ein Index aufgebaut ist.
Definition GloClassInfoIndex.h:85
Klasse um gelöschte Objekte im IndexPool::SchemaIndex zu verwalten.
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)
Klasse um Objekte im IndexPool::TableObjIdIndex zu verwalten.
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)
Klasse um Objekte im IndexPool::ObjectStrIndex zu verwalten.
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
Verwaltet die einzelnen String-Indizes einer Klasse. Wenn dieses ein Unique-Index ist,...
Definition GloIndexPool.h:1801
friend class RealIndexPool
Definition GloIndexPool.h:1804
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
Hat einen Zeiger auf einen ObjectStrIndex und ermöglicht das iterieren durch diesen Index....
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)
Ist die Indexverwalterklasse für ein Schema bzw. eine Datenbank.
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
Verwaltet die Objekt-IDs (genutzte wie freigegebene) mit deren Position in den jeweiligen Tabellen.
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
Hat einen Zeiger auf einen TableObjIdIndex und ermöglicht das iterieren durch diesen Index....
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(const IndexPool &rT)
eut::CriticalSection m_LocalCriticalSection
Definition GloIndexPool.h:4202
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:4214
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)
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:84
Diese Klasse ist die Schnittstelle zu einem GlobalObjects-Schema. Sie beinhaltet alle Klasseninformat...
Definition GloSchemaInterface.h:91
Klassen um persistente Objekte überwachen zu können und bei Änderungen die jeweiligen Clients zu bean...
Definition GloWatchNotifyManager.h:352
Definition GloAbstractBaseLot.h:49
EnComparisionOp
Definition GloTypes.h:1567
@ EQUAL
Definition GloTypes.h:1577
EnSeekMode
Definition GloTypes.h:173
EnQueryType
Definition GloTypes.h:1164
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch e...
Definition GloIndexPool.h:2516
virtual ~IndexComparisionFilter()
Definition GloIndexPool.h:2551
EnComparisionOp m_eComparisionOperator
Definition GloIndexPool.h:2527
IndexComparisionFilter()
Definition GloIndexPool.h:2538
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch e...
Definition GloIndexPool.h:2459
virtual ~IndexFilter()
Definition GloIndexPool.h:2483
std::string m_sIndexFilterValue
Definition GloIndexPool.h:2472
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch e...
Definition GloIndexPool.h:2588
std::string m_sIndexFilterEndValue
Definition GloIndexPool.h:2599
virtual ~IndexRangeFilter()
Definition GloIndexPool.h:2610