GlobalObjects
Loading...
Searching...
No Matches
GloBase.h
Go to the documentation of this file.
1#ifndef INC_GLOBASE_H
2#define INC_GLOBASE_H
3//-----------------------------------------------------------------------------
43//-----------------------------------------------------------------------------
44#include <map>
45#include <list>
46#include <set>
47#include <vector>
48#include "GloTypes.h"
50#include "GloTOndemand.h"
51#include <string>
52#if defined (__PTHREADS)
53 #include <EuPCriticalSection.h>
54#else
55 #include "EuCriticalSection.h"
56#endif
57//-----------------------------------------------------------------------------
58namespace glo
59{
60 //---------------------------------------------------------------------------
61 /* Forwards */
62 class BaseLot;
63 class BasePersistent;
64 class ClassInfo;
65 class Communicator;
66 class GenPersObjectSpy;
67 class LimitRecord;
68 class ObjCreator;
69 class ObjectMaker;
70 class Persistent;
71 class PersObjectSpy;
72 class PrivateBase;
73 class Record;
74 struct ClientInfo;
75 //---------------------------------------------------------------------------
90 //---------------------------------------------------------------------------
105 //---------------------------------------------------------------------------
119 __glo_export_dll EnDeepMode getDeepModeAsEnum( const std::string & rsDeepMode );
120 //---------------------------------------------------------------------------
134 __glo_export_dll EnLockMode getLockModeAsEnum( const std::string & rsLockMode );
135 //---------------------------------------------------------------------------
136 #ifdef _MSC_VER
137 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
138 #pragma warning( disable : 4251 )
139 #endif
140 //---------------------------------------------------------------------------
141 // doxygen -> warning: unable to resolve reference to 'GLO_EX_DB_INI' for \ref command
142 // doxygen -> warning: unable to resolve reference to 'GLO_FIRST_START_DBINI' for \ref command
143 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_ASK_LOCK' for \ref command
144 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_OBJ' for \ref command
145 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_OBJS' for \ref command
146 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_TRANSACTION' for \ref command
147 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_WATCH_NOTIFY' for \ref command
148 // are references to the GlobalObjects documentation.
149 //---------------------------------------------------------------------------
256 //---------------------------------------------------------------------------
257 /* Forwards */
258 //---------------------------------------------------------------------------
259 class OpenedDatabases;
260 //---------------------------------------------------------------------------
261
263 {
264 private:
265 //============== Friends
266 //-----------------------------------------------------------------------
267 friend class ObjectMaker;
268 friend class Persistent;
270 //-----------------------------------------------------------------------
271
272 //============== Attribute
273 //-----------------------------------------------------------------------
286 //-----------------------------------------------------------------------
296 std::shared_ptr<PrivateBase> m_spPrivateBase;
297 //-----------------------------------------------------------------------
310 #if defined (__PTHREADS)
311 EuPCriticalSection m_LocalCriticalSection;
312 #else
314 #endif
315 //-----------------------------------------------------------------------
316
317 public:
318 //============== Konstruktoren
319 //-----------------------------------------------------------------------
332 //-----------------------------------------------------------------------
346 Base( const std::string & rstrClientName );
347 //-----------------------------------------------------------------------
375 Base( const std::string & rstrClientName,
376 const std::string & rstrSchemaPath,
377 const std::string & rstrBaseName );
378 //-----------------------------------------------------------------------
404 Base( const std::string & rstrClientName,
405 ObjCreator & rObjCreator );
406 //-----------------------------------------------------------------------
430 Base( const std::string & rstrServerName,
431 const std::string & rstrClientName );
432 //-----------------------------------------------------------------------
474 Base( const std::string & rstrServerName,
475 const std::string & rstrClientName,
476 int iTimeOutSec,
477 unsigned int uiPort,
478 const std::string & rstrSchemaPath,
479 const std::string & rstrKnownSchemes );
480 //-----------------------------------------------------------------------
524 Base( const std::string & rstrServerName,
525 const std::string & rstrClientName,
526 ObjCreator & rObjCreator );
527 //-----------------------------------------------------------------------
539 virtual ~Base();
540 //-----------------------------------------------------------------------
541
542 private:
543 //============== Konstruktoren
544 //-----------------------------------------------------------------------
554 Base( const Base & );
555 //-----------------------------------------------------------------------
556
557 public:
558 //============== Get- und Set-Methoden
559 //-----------------------------------------------------------------------
586 int setDbIniName( const std::string & rstrDbIniName );
587 //-----------------------------------------------------------------------
600 std::string getDbIniName() const;
601 //-----------------------------------------------------------------------
619 int getDefaultLimits( std::vector< LimitRecord > *& prRetValVector ) const;
620 //-----------------------------------------------------------------------
630 std::string getServerName() const;
631 //-----------------------------------------------------------------------
645 int getPort( unsigned int & ruiPort );
646 //-----------------------------------------------------------------------
661 int getTimeOutSec( int & riTimeOutSec );
662 //-----------------------------------------------------------------------
676 int setClientName( const std::string & rstrClientName );
677 //-----------------------------------------------------------------------
689 std::string getClientName() const;
690 //-----------------------------------------------------------------------
704 int setSchemaPath( const std::string & rstrSchemaPath );
705 //-----------------------------------------------------------------------
719 int getSchemaPath( std::string & rstrRetVal );
720 //-----------------------------------------------------------------------
736 int getSchemaNameWithPath( std::string & rstrRetVal );
737 //-----------------------------------------------------------------------
751 int setKnownSchemes( const std::string & rstrKnownSchemes );
752 //-----------------------------------------------------------------------
766 int getKnownSchemes( std::vector< std::string > & rRetVal );
767 //-----------------------------------------------------------------------
781 int setBaseName( const std::string & rstrBaseName );
782 //-----------------------------------------------------------------------
792 std::string getBaseName() const;
793 //-----------------------------------------------------------------------
803 unsigned int getCommunicatorID() const;
804 //-----------------------------------------------------------------------
815 //-----------------------------------------------------------------------
816
817 //============== Verbindungs-Methoden
818 //-----------------------------------------------------------------------
853 int connect( CallBack * pServerCrashNotificationCallBack = nullptr );
854 //-----------------------------------------------------------------------
876 int reconnect( CallBack * pServerCrashNotificationCallBack = nullptr );
877 //-----------------------------------------------------------------------
891 //-----------------------------------------------------------------------
902 bool isConnected() const;
903 //-----------------------------------------------------------------------
933 int open( const std::string & rstrBaseName,
934 CallBack * pProgressNotificationCallBack = nullptr );
935 //-----------------------------------------------------------------------
958 int close( CallBack * pProgressNotificationCallBack = nullptr );
959 //-----------------------------------------------------------------------
971 bool isOpen() const;
972 //-----------------------------------------------------------------------
984 unsigned long getBaseID() const;
985 //-----------------------------------------------------------------------
1020 int openBase( CallBack * pProgressNotificationCallBack = nullptr,
1021 CallBack * pServerCrashNotificationCallBack = nullptr );
1022 //-----------------------------------------------------------------------
1059 int openBaseComfortably( CallBack * pProgressNotificationCallBack = nullptr,
1060 CallBack * pServerCrashNotificationCallBack = nullptr );
1061 //-----------------------------------------------------------------------
1086 int closeBase( CallBack * pProgressNotificationCallBack = nullptr );
1087 //-----------------------------------------------------------------------
1088
1089 //============== Reparatur-Methoden
1090 //-----------------------------------------------------------------------
1120 int reindexBase( const std::string & rstrBaseName,
1121 CallBack * pProgressNotificationCallBack = nullptr );
1122 //-----------------------------------------------------------------------
1150 int reindexBase( CallBack * pProgressNotificationCallBack = nullptr );
1151 //-----------------------------------------------------------------------
1184 int compressBase( const std::string & rstrBaseName,
1185 CallBack * pProgressNotificationCallBack = nullptr );
1186 //-----------------------------------------------------------------------
1218 int compressBase( CallBack * pProgressNotificationCallBack = nullptr );
1219 //-----------------------------------------------------------------------
1280 int repairBase( const std::string & rstrBaseName,
1281 CallBack * pProgressNotificationCallBack = nullptr );
1282 //-----------------------------------------------------------------------
1344 int repairBase( CallBack * pProgressNotificationCallBack = nullptr );
1345 //-----------------------------------------------------------------------
1346
1347 //============== Informations-Methoden
1348 //-----------------------------------------------------------------------
1366 int getAllBases( std::vector< std::string > *& prRetValVector ) const;
1367 //-----------------------------------------------------------------------
1385 int getBaseCount( std::vector<std::string>::size_type & rBaseCount ) const;
1386 //-----------------------------------------------------------------------
1421 int getRootClassInfo( ClassInfo *& prRootClassInfo,
1422 const std::string & rstrBaseName = "" ) const;
1423 //-----------------------------------------------------------------------
1448 int getRootClassInfo( std::shared_ptr<ClassInfo> & rRootClassInfo,
1449 const std::string & rstrBaseName = "" ) const;
1450 //-----------------------------------------------------------------------
1487 int getClassInfo( ClassInfo *& prClassInfo,
1488 unsigned long ulClassID,
1489 const std::string & rstrBaseName = "" ) const;
1490 //-----------------------------------------------------------------------
1517 int getClassInfo( std::shared_ptr<ClassInfo> & rRetVal,
1518 unsigned long ulClassID,
1519 const std::string & rstrBaseName = "" ) const;
1520 //-----------------------------------------------------------------------
1557 int getClassInfo( ClassInfo *& prClassInfo,
1558 const std::string & rstrClassName,
1559 const std::string & rstrBaseName = "" ) const;
1560 //-----------------------------------------------------------------------
1587 int getClassInfo( std::shared_ptr<ClassInfo> & rRetVal,
1588 const std::string & rstrClassName,
1589 const std::string & rstrBaseName = "" ) const;
1590 //-----------------------------------------------------------------------
1630 int getSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1631 unsigned long ulClassID,
1632 const std::string & rstrBaseName = "" ) const;
1633 //-----------------------------------------------------------------------
1664 int getSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1665 unsigned long ulClassID,
1666 const std::string & rstrBaseName = "" ) const;
1667 //-----------------------------------------------------------------------
1707 int getSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1708 unsigned long ulClassID,
1709 const std::string & rstrBaseName = "" ) const;
1710 //-----------------------------------------------------------------------
1741 int getSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1742 unsigned long ulClassID,
1743 const std::string & rstrBaseName = "" ) const;
1744 //-----------------------------------------------------------------------
1784 int getAllSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1785 unsigned long ulClassID,
1786 const std::string & rstrBaseName = "" ) const;
1787 //-----------------------------------------------------------------------
1816 int getAllSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1817 unsigned long ulClassID,
1818 const std::string & rstrBaseName = "" ) const;
1819 //-----------------------------------------------------------------------
1859 int getAllSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1860 unsigned long ulClassID,
1861 const std::string & rstrBaseName = "" ) const;
1862 //-----------------------------------------------------------------------
1891 int getAllSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1892 unsigned long ulClassID,
1893 const std::string & rstrBaseName = "" ) const;
1894 //-----------------------------------------------------------------------
1928 int getAllClassInfosFromBase( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prAllClassInfoMap,
1929 const std::string & rstrBaseName = "" ) const;
1930 //-----------------------------------------------------------------------
1955 int getAllClassInfosFromBase( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rAllClassInfoMap,
1956 const std::string & rstrBaseName = "" ) const;
1957 //-----------------------------------------------------------------------
1982 int getClassInfoCount( std::map< unsigned long, ClassInfo *, std::less<unsigned long> >::size_type & rClassInfoCount,
1983 const std::string & rstrBaseName = "" ) const;
1984 //-----------------------------------------------------------------------
2011 int isKnownClassID( bool & rbRetVal,
2012 unsigned long ulClassID,
2013 const std::string & rstrBaseName = "" ) const;
2014 //-----------------------------------------------------------------------
2044 int isSuperClassFrom( bool & rbRetVal,
2045 unsigned long ulClassIDSuperClass,
2046 unsigned long ulClassIDSubClass,
2047 const std::string & rstrBaseName = "" ) const;
2048 //-----------------------------------------------------------------------
2079 int indexAvailable( const std::string & rsIndexName,
2080 unsigned long ulClassID,
2081 const std::string & rstrBaseName = "" ) const;
2082 //-----------------------------------------------------------------------
2114 int getLimits( LimitRecord *& prLimitRecord,
2115 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2116 //-----------------------------------------------------------------------
2138 int getLimits( std::shared_ptr<LimitRecord> & rLimitRecord,
2139 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2140 //-----------------------------------------------------------------------
2169 int getAllLoggedClients( std::vector< ClientInfo > & rClientInfoVector,
2170 const std::string & rstrBaseName = "" ) const;
2171 //-----------------------------------------------------------------------
2172
2173 //============== Record-Methoden
2174 //-----------------------------------------------------------------------
2219 int getRecord( Record *& prRecord,
2220 const ObjID & rObjID,
2221 unsigned long ulClassID ) const;
2222 //-----------------------------------------------------------------------
2258 int getRecord( std::shared_ptr<Record> & rRecord,
2259 const ObjID & rObjID,
2260 unsigned long ulClassID ) const;
2261 //-----------------------------------------------------------------------
2262
2263 //============== Objekt-Methoden
2264 //-----------------------------------------------------------------------
2279 int assignObject( BasePersistent * pObject ) const;
2280 //-----------------------------------------------------------------------
2301 EnDeepMode eDeepMode ) const;
2302 //-----------------------------------------------------------------------
2324 int notifyAsWritten( const std::list< ObjID > & rObjIDList ) const;
2325 //-----------------------------------------------------------------------
2346 EnDeepMode eDeepMode ) const;
2347 //-----------------------------------------------------------------------
2385 int deleteObjects( const std::vector< glo::ObjID > & rObjectIDs,
2386 EnDeepMode eDeepMode = glo::DM_SHALLOW ) const;
2387 //-----------------------------------------------------------------------
2421 int getAnObject( BasePersistent *& prObject,
2422 const ObjID & rObjID,
2423 bool bGeneric = false ) const;
2424 //-----------------------------------------------------------------------
2449 int getAnObject( std::shared_ptr<BasePersistent> & rObject,
2450 const ObjID & rObjID,
2451 bool bGeneric = false ) const;
2452 //-----------------------------------------------------------------------
2474 int refreshObject( BasePersistent * pObject ) const;
2475 //-----------------------------------------------------------------------
2491 int isStoredObject( bool & rbRetVal, BasePersistent * pObject ) const;
2492 //-----------------------------------------------------------------------
2493
2494 //============== AllSet-Methoden
2495 //-----------------------------------------------------------------------
2514 int openAllSet( BaseAllSet * pAllSet ) const;
2515 //-----------------------------------------------------------------------
2529 int closeAllSet( BaseAllSet * pAllSet ) const;
2530 //-----------------------------------------------------------------------
2548 int objIDInAllSet( const ObjID & rObjID,
2549 const BaseAllSet & rAllSet ) const;
2550 //-----------------------------------------------------------------------
2568 int setCurrentObjectInAllSet( const ObjID & rObjID,
2569 const BaseAllSet & rAllSet ) const;
2570 //-----------------------------------------------------------------------
2588 int setPositionInAllSet( std::size_t nPosition,
2589 const BaseAllSet & rAllSet ) const;
2590 //-----------------------------------------------------------------------
2629 const BaseAllSet & rAllSet,
2630 EnSeekMode eMode ) const;
2631 //-----------------------------------------------------------------------
2681 BasePersistent *& prObject,
2682 const BaseAllSet & rAllSet,
2683 EnSeekMode eMode,
2684 bool bGeneric = false ) const;
2685 //-----------------------------------------------------------------------
2709 int setIndexFilter( const BaseAllSet & rAllSet,
2710 const std::string & rsIndexFilter ) const;
2711 //-----------------------------------------------------------------------
2749 int setIndexFilter( const BaseAllSet & rAllSet,
2750 const std::string & rsIndexFilter,
2751 EnComparisionOp eComparisionOp ) const;
2752 //-----------------------------------------------------------------------
2787 int setIndexFilter( const BaseAllSet & rAllSet,
2788 const std::string & rsRangeStartIndexFilter,
2789 const std::string & rsRangeEndIndexFilter ) const;
2790 //-----------------------------------------------------------------------
2804 int removeIndexFilter( const BaseAllSet & rAllSet ) const;
2805 //-----------------------------------------------------------------------
2838 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2839 const BaseAllSet & rAllSet,
2840 const std::string & rsIndexSearchValue,
2841 EnQueryType eQuerryType ) const;
2842 //-----------------------------------------------------------------------
2881 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2882 const BaseAllSet & rAllSet,
2883 const std::string & rsIndexName,
2884 unsigned long ulIndexClassID,
2885 const std::string & rsIndexSearchValue,
2886 EnQueryType eQuerryType ) const;
2887 //-----------------------------------------------------------------------
2928 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2929 const BaseAllSet & rAllSet,
2930 const std::string & rsIndexSearchValue,
2931 EnComparisionOp eComparisionOp ) const;
2932 //-----------------------------------------------------------------------
2979 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2980 const BaseAllSet & rAllSet,
2981 const std::string & rsIndexName,
2982 unsigned long ulIndexClassID,
2983 const std::string & rsIndexSearchValue,
2984 EnComparisionOp eComparisionOp ) const;
2985 //-----------------------------------------------------------------------
3023 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
3024 const BaseAllSet & rAllSet,
3025 const std::string & rsRangeStartIndexSearchValue,
3026 const std::string & rsRangeEndIndexSearchValue ) const;
3027 //-----------------------------------------------------------------------
3071 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
3072 const BaseAllSet & rAllSet,
3073 const std::string & rsIndexName,
3074 unsigned long ulIndexClassID,
3075 const std::string & rsRangeStartIndexSearchValue,
3076 const std::string & rsRangeEndIndexSearchValue ) const;
3077 //-----------------------------------------------------------------------
3093 int getSizeFromAllSet( std::size_t & rnSize,
3094 const BaseAllSet & rAllSet ) const;
3095 //-----------------------------------------------------------------------
3096
3097 //============== Lock-Unlock-Methoden
3098 //-----------------------------------------------------------------------
3124 int lockObject( const ObjID & rObjId,
3125 EnLockMode eLockMode,
3126 EnDeepMode eDeepMode ) const;
3127 //-----------------------------------------------------------------------
3166 int relockObject( const ObjID & rObjId,
3167 EnLockMode eLockMode,
3168 EnDeepMode eDeepMode ) const;
3169 //-----------------------------------------------------------------------
3199 int unlockObject( const ObjID & rObjId,
3200 EnLockMode eLockMode,
3201 EnDeepMode eDeepMode ) const;
3202 //-----------------------------------------------------------------------
3228 int lockLot( const BaseLot & rObjIdLot,
3229 EnLockMode eLockMode,
3230 EnDeepMode eDeepMode ) const;
3231 //-----------------------------------------------------------------------
3261 int unlockLot( const BaseLot & rObjIdLot,
3262 EnLockMode eLockMode,
3263 EnDeepMode eDeepMode ) const;
3264 //-----------------------------------------------------------------------
3291 int lockObjIdList( std::list<ObjID> * pObjIDList,
3292 EnLockMode eLockMode,
3293 EnDeepMode eDeepMode ) const;
3294 //-----------------------------------------------------------------------
3324 int unlockObjIdList( std::list<ObjID> * pObjIDList,
3325 EnLockMode eLockMode,
3326 EnDeepMode eDeepMode ) const;
3327 //-----------------------------------------------------------------------
3349 int isLockedObject( const ObjID & rObjId,
3350 EnLockMode eLockMode,
3351 EnDeepMode eDeepMode ) const;
3352 //-----------------------------------------------------------------------
3380 int isPossible( const ObjID & rObjId,
3381 bool bRead,
3382 bool bWrite,
3383 bool bDelete,
3384 EnDeepMode eDeepMode ) const;
3385 //-----------------------------------------------------------------------
3408 LockPossibleSpecification & rLockPossibleSpecification,
3409 EnDeepMode eDeepMode ) const;
3410 //-----------------------------------------------------------------------
3411
3412 //============== Transaktions-Methoden
3413 //-----------------------------------------------------------------------
3430 int beginTransaction() const;
3431 //-----------------------------------------------------------------------
3449 //-----------------------------------------------------------------------
3451
3469 int abortTransaction() const;
3472 //-----------------------------------------------------------------------
3482 bool isInTransaction() const;
3483 //-----------------------------------------------------------------------
3494 //-----------------------------------------------------------------------
3495
3496 //============== Überwachungs-Methoden
3497 //-----------------------------------------------------------------------
3552 int setWatchObject( const ObjID & rObjId,
3553 TdWatchNotifyMode ulWatchMode,
3554 EnDeepMode eDeepMode,
3555 CallBack * pCallBack ) const;
3556 //-----------------------------------------------------------------------
3611 int unsetWatchObject( const ObjID & rObjId,
3612 TdWatchNotifyMode ulWatchMode,
3613 EnDeepMode eDeepMode,
3614 CallBack * pCallBack ) const;
3615 //-----------------------------------------------------------------------
3670 int setWatchLot( const BaseLot & rObjIdLot,
3671 TdWatchNotifyMode ulWatchMode,
3672 EnDeepMode eDeepMode,
3673 CallBack * pCallBack ) const;
3674 //-----------------------------------------------------------------------
3729 int unsetWatchLot( const BaseLot & rObjIdLot,
3730 TdWatchNotifyMode ulWatchMode,
3731 EnDeepMode eDeepMode,
3732 CallBack * pCallBack ) const;
3733 //-----------------------------------------------------------------------
3792 int setWatchClass( unsigned long ulClassID,
3793 TdWatchNotifyMode ulWatchMode,
3794 CallBack * pCallBack ) const;
3795 //-----------------------------------------------------------------------
3849 int unsetWatchClass( unsigned long ulClassID,
3850 TdWatchNotifyMode ulWatchMode,
3851 CallBack * pCallBack ) const;
3852 //-----------------------------------------------------------------------
3906 CallBack * pCallBack ) const;
3907 //-----------------------------------------------------------------------
3956 CallBack * pCallBack ) const;
3957 //-----------------------------------------------------------------------
4007 CallBack * pCallBack ) const;
4008 //-----------------------------------------------------------------------
4054 CallBack * pCallBack ) const;
4055 //-----------------------------------------------------------------------
4086 int setWatchServer( CallBack * pCallBack ) const;
4087 //-----------------------------------------------------------------------
4088
4089 public:
4090 //============== Hilfs-Methoden
4091 //-----------------------------------------------------------------------
4110 //-----------------------------------------------------------------------
4128 //-----------------------------------------------------------------------
4129
4130 #ifdef _GLO_TEST
4131 public:
4132 #else
4133 protected:
4134 #endif
4135 //============== Hilfs-Methoden
4136 //-----------------------------------------------------------------------
4150 std::shared_ptr < PrivateBase > getPrivateBase() const;
4151 //-----------------------------------------------------------------------
4152
4153 private:
4154 //============== Operatoren
4155 //-----------------------------------------------------------------------
4165 Base & operator= ( const Base & );
4166 //-----------------------------------------------------------------------
4167 };
4168 //---------------------------------------------------------------------------
4169 #ifdef _MSC_VER
4170 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
4171 #pragma warning( default : 4251 )
4172 #endif
4173 //---------------------------------------------------------------------------
4174} // namespace glo
4175#endif
Header for CriticalSection
Header for EuPCriticalSection
Header for ClassInfoAttribute and ClassInfoAttribute::Type
Header and source for TOndemand
For each library, here 'GlobalObjects' there is a type file.
#define __glo_export_dll
Definition GloTypes.h:70
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
Is the base class of template AllSets and the generic AllSet.
Definition GloBaseAllSet.h:87
Definition GloBase.h:263
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
eut::CriticalSection m_LocalCriticalSection
Definition GloBase.h:313
Base(const std::string &rstrServerName, const std::string &rstrClientName)
bool isConnected() const
int abortTransaction() const
A transaction is aborted or rolled back.
int setWatchLot(const BaseLot &rObjIdLot, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int repairBase(CallBack *pProgressNotificationCallBack=nullptr)
int deleteObjects(const std::vector< glo::ObjID > &rObjectIDs, EnDeepMode eDeepMode=glo::DM_SHALLOW) const
int getClassInfoCount(std::map< unsigned long, ClassInfo *, std::less< unsigned long > >::size_type &rClassInfoCount, const std::string &rstrBaseName="") const
int reindexBase(CallBack *pProgressNotificationCallBack=nullptr)
int unsetWatchObject(const ObjID &rObjId, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int reindexBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=nullptr)
std::shared_ptr< PrivateBase > getPrivateBase() const
int unlockObjIdList(std::list< ObjID > *pObjIDList, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int getClassInfo(std::shared_ptr< ClassInfo > &rRetVal, unsigned long ulClassID, const std::string &rstrBaseName="") const
std::shared_ptr< PrivateBase > m_spPrivateBase
Definition GloBase.h:296
int assignObject(BasePersistent *pObject) const
int getRecord(std::shared_ptr< Record > &rRecord, const ObjID &rObjID, unsigned long ulClassID) const
int unsetWatchLot(const BaseLot &rObjIdLot, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int getAllBases(std::vector< std::string > *&prRetValVector) const
int getProcessingPossibilities(const ObjID &rObjId, LockPossibleSpecification &rLockPossibleSpecification, EnDeepMode eDeepMode) const
int storeObject(BasePersistent *pObject, EnDeepMode eDeepMode) const
int setPositionInAllSet(std::size_t nPosition, const BaseAllSet &rAllSet) const
int compressBase(CallBack *pProgressNotificationCallBack=nullptr)
int commitTransaction() const
int closeAllSet(BaseAllSet *pAllSet) const
Base(const std::string &rstrClientName)
int unlockObject(const ObjID &rObjId, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int lockLot(const BaseLot &rObjIdLot, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int setCurrentObjectInAllSet(const ObjID &rObjID, const BaseAllSet &rAllSet) const
int getAllSubClassInfos(std::map< unsigned long, std::shared_ptr< ClassInfo >, std::less< unsigned long > > &rSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int beginTransaction() const
int setWatchClient(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
int getBaseCount(std::vector< std::string >::size_type &rBaseCount) const
int unsetWatchIndex(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
std::string getServerName() const
int getTransactionLevel() const
bool isOpen() const
virtual ~Base()
int getAllSuperClassInfos(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prSuperClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int openAllSet(BaseAllSet *pAllSet) const
Base(const std::string &rstrClientName, ObjCreator &rObjCreator)
GenPersObjectSpy * getGenPersObjectSpy()
int getSchemaPath(std::string &rstrRetVal)
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
int getClassInfo(ClassInfo *&prClassInfo, const std::string &rstrClassName, const std::string &rstrBaseName="") const
int setWatchIndex(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
int lockObject(const ObjID &rObjId, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int removeIndexFilter(const BaseAllSet &rAllSet) const
int indexAvailable(const std::string &rsIndexName, unsigned long ulClassID, const std::string &rstrBaseName="") const
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
int getObjectFromAllSet(ObjID &rObjID, BasePersistent *&prObject, const BaseAllSet &rAllSet, EnSeekMode eMode, bool bGeneric=false) const
int repairBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=nullptr)
int getLimits(std::shared_ptr< LimitRecord > &rLimitRecord, const ClassInfoAttribute::Type &rClassInfoAttributeType) const
int connect(CallBack *pServerCrashNotificationCallBack=nullptr)
int getDefaultLimits(std::vector< LimitRecord > *&prRetValVector) const
unsigned int getCommunicatorID() const
Base(const std::string &rstrClientName, const std::string &rstrSchemaPath, const std::string &rstrBaseName)
int getAllSuperClassInfos(std::map< unsigned long, std::shared_ptr< ClassInfo >, std::less< unsigned long > > &rBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int setWatchClass(unsigned long ulClassID, TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
int isSuperClassFrom(bool &rbRetVal, unsigned long ulClassIDSuperClass, unsigned long ulClassIDSubClass, const std::string &rstrBaseName="") const
std::string getBaseName() const
OpenedDatabases * m_pOpenedDatabases
Definition GloBase.h:285
unsigned long getBaseID() const
int unsetWatchClient(TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
int getRecord(Record *&prRecord, const ObjID &rObjID, unsigned long ulClassID) const
int getSuperClassInfos(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prSuperClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int getClassInfo(std::shared_ptr< ClassInfo > &rRetVal, const std::string &rstrClassName, const std::string &rstrBaseName="") const
int getAnObject(BasePersistent *&prObject, const ObjID &rObjID, bool bGeneric=false) const
int compressBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=nullptr)
int getSizeFromAllSet(std::size_t &rnSize, const BaseAllSet &rAllSet) const
int getSubClassInfos(std::map< unsigned long, std::shared_ptr< ClassInfo >, std::less< unsigned long > > &rSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int getSuperClassInfos(std::map< unsigned long, std::shared_ptr< ClassInfo >, std::less< unsigned long > > &rBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int getObjIdFromAllSet(ObjID &rObjID, const BaseAllSet &rAllSet, EnSeekMode eMode) const
Base(const std::string &rstrServerName, const std::string &rstrClientName, int iTimeOutSec, unsigned int uiPort, const std::string &rstrSchemaPath, const std::string &rstrKnownSchemes)
int getAllClassInfosFromBase(std::map< unsigned long, std::shared_ptr< ClassInfo >, std::less< unsigned long > > &rAllClassInfoMap, const std::string &rstrBaseName="") const
int setIndexFilter(const BaseAllSet &rAllSet, const std::string &rsRangeStartIndexFilter, const std::string &rsRangeEndIndexFilter) const
int isKnownClassID(bool &rbRetVal, unsigned long ulClassID, const std::string &rstrBaseName="") const
bool isInTransaction() const
int setBaseName(const std::string &rstrBaseName)
PersObjectSpy * getPersObjectSpy()
int isPossible(const ObjID &rObjId, bool bRead, bool bWrite, bool bDelete, EnDeepMode eDeepMode) const
int notifyAsWritten(const std::list< ObjID > &rObjIDList) const
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) const
int setClientName(const std::string &rstrClientName)
int lockObjIdList(std::list< ObjID > *pObjIDList, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int getPort(unsigned int &ruiPort)
int getAllLoggedClients(std::vector< ClientInfo > &rClientInfoVector, const std::string &rstrBaseName="") const
int openBaseComfortably(CallBack *pProgressNotificationCallBack=nullptr, CallBack *pServerCrashNotificationCallBack=nullptr)
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
int getSubClassInfos(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
ObjectMaker * getObjectMaker()
int disconnect()
int setSchemaPath(const std::string &rstrSchemaPath)
int setWatchObject(const ObjID &rObjId, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int relockObject(const ObjID &rObjId, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int getRootClassInfo(ClassInfo *&prRootClassInfo, const std::string &rstrBaseName="") const
int unlockLot(const BaseLot &rObjIdLot, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int getAllClassInfosFromBase(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prAllClassInfoMap, const std::string &rstrBaseName="") const
std::string getClientName() const
int getLimits(LimitRecord *&prLimitRecord, const ClassInfoAttribute::Type &rClassInfoAttributeType) const
int getClassInfo(ClassInfo *&prClassInfo, unsigned long ulClassID, const std::string &rstrBaseName="") const
int unsetWatchClass(unsigned long ulClassID, TdWatchNotifyMode ulWatchMode, CallBack *pCallBack) const
int getTimeOutSec(int &riTimeOutSec)
int refreshObject(BasePersistent *pObject) const
int getSchemaNameWithPath(std::string &rstrRetVal)
int closeBase(CallBack *pProgressNotificationCallBack=nullptr)
int isLockedObject(const ObjID &rObjId, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int close(CallBack *pProgressNotificationCallBack=nullptr)
int setIndexFilter(const BaseAllSet &rAllSet, const std::string &rsIndexFilter) const
int setKnownSchemes(const std::string &rstrKnownSchemes)
int rollBackTransaction() const
A transaction is aborted or rolled back.
int isStoredObject(bool &rbRetVal, BasePersistent *pObject) const
int getKnownSchemes(std::vector< std::string > &rRetVal)
int setWatchServer(CallBack *pCallBack) const
int getIndexedObjIdsFromAllSet(std::vector< glo::ObjID > &rObjIDContainer, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) const
int openBase(CallBack *pProgressNotificationCallBack=nullptr, CallBack *pServerCrashNotificationCallBack=nullptr)
int reconnect(CallBack *pServerCrashNotificationCallBack=nullptr)
int deleteObject(BasePersistent *pObject, EnDeepMode eDeepMode) const
int getAnObject(std::shared_ptr< BasePersistent > &rObject, const ObjID &rObjID, bool bGeneric=false) const
Base(const std::string &rstrServerName, const std::string &rstrClientName, ObjCreator &rObjCreator)
int setIndexFilter(const BaseAllSet &rAllSet, const std::string &rsIndexFilter, EnComparisionOp eComparisionOp) const
Base(const Base &)
int setDbIniName(const std::string &rstrDbIniName)
int getAllSubClassInfos(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
int objIDInAllSet(const ObjID &rObjID, const BaseAllSet &rAllSet) const
int getRootClassInfo(std::shared_ptr< ClassInfo > &rRootClassInfo, const std::string &rstrBaseName="") const
int open(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=nullptr)
std::string getDbIniName() const
Is the base class of pointer and on-demand sets or pointer and on-demand lists.
Definition GloBaseLot.h:73
Abstract base class for Persistent and the generic GenericPersistent.
Definition GloBasePersistent.h:124
Superclass for the classes that are 'connected' to a Base.
Definition GloCallBack.h:81
Summarized type information for a ClassInfoAttribute.
Definition GloClassInfoAttribute.h:108
This class contains all information to store objects of a class in a database, to build objects from ...
Definition GloClassInfo.h:86
Class for the embedded persistent object attributes of a Record. Represents an attribute of the deriv...
Definition GloEmbeddedRecordAttribute.h:72
Class to access the generic persistent objects of a database in memory.
Definition GloGenPersObjectSpy.h:83
In objects of this class the min and max values of supported data types and their field lengths are t...
Definition GloLimitRecord.h:71
Abstract superclass for instantiation functions of persistent classes. From this class a subclass is ...
Definition GloObjCreator.h:78
An object ID consists of the class ID, a database ID and the actual unique object number (all unsigne...
Definition GloObjID.h:84
This class can instantiate a persistent object from a record or fill a persistent object and vice ver...
Definition GloObjectMaker.h:70
Class to access the opened databases.
Definition GloOpenedDatabases.h:85
Class to access the persistent objects of a database in memory.
Definition GloPersObjectSpy.h:82
The base class of the persistent classes. All persistent classes must be derived from this class to b...
Definition GloPersistent.h:242
Objects of this class transport the data from the tables into the persistent object and from these ag...
Definition GloRecord.h:108
Definition GloAbstractBaseLot.h:49
__glo_export_dll std::string getDeepModeAsString(EnDeepMode eDeepMode)
EnDeepMode
Definition GloTypes.h:254
@ DM_SHALLOW
Definition GloTypes.h:290
EnComparisionOp
Definition GloTypes.h:1567
__glo_export_dll std::string getLockModeAsString(EnLockMode eLockMode)
EnLockMode
Definition GloTypes.h:1055
__glo_export_dll EnLockMode getLockModeAsEnum(const std::string &rsLockMode)
EnSeekMode
Definition GloTypes.h:173
EnQueryType
Definition GloTypes.h:1164
__glo_export_dll EnDeepMode getDeepModeAsEnum(const std::string &rsDeepMode)
unsigned long TdWatchNotifyMode
Definition GloTypes.h:558
Permitted actions in the database such as read, write and delete can be queried for an object....
Definition GloTypes.h:1256