GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloBase.h
gehe zur Dokumentation dieser Datei
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)
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 //-----------------------------------------------------------------------
1632 int getSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1633 unsigned long ulClassID,
1634 const std::string & rstrBaseName = "" ) const;
1635 //-----------------------------------------------------------------------
1667 int getSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1668 unsigned long ulClassID,
1669 const std::string & rstrBaseName = "" ) const;
1670 //-----------------------------------------------------------------------
1712 int getSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1713 unsigned long ulClassID,
1714 const std::string & rstrBaseName = "" ) const;
1715 //-----------------------------------------------------------------------
1748 int getSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1749 unsigned long ulClassID,
1750 const std::string & rstrBaseName = "" ) const;
1751 //-----------------------------------------------------------------------
1793 int getAllSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1794 unsigned long ulClassID,
1795 const std::string & rstrBaseName = "" ) const;
1796 //-----------------------------------------------------------------------
1827 int getAllSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1828 unsigned long ulClassID,
1829 const std::string & rstrBaseName = "" ) const;
1830 //-----------------------------------------------------------------------
1872 int getAllSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1873 unsigned long ulClassID,
1874 const std::string & rstrBaseName = "" ) const;
1875 //-----------------------------------------------------------------------
1906 int getAllSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1907 unsigned long ulClassID,
1908 const std::string & rstrBaseName = "" ) const;
1909 //-----------------------------------------------------------------------
1945 int getAllClassInfosFromBase( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prAllClassInfoMap,
1946 const std::string & rstrBaseName = "" ) const;
1947 //-----------------------------------------------------------------------
1972 int getAllClassInfosFromBase( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rAllClassInfoMap,
1973 const std::string & rstrBaseName = "" ) const;
1974 //-----------------------------------------------------------------------
2001 int getClassInfoCount( std::map< unsigned long, ClassInfo *, std::less<unsigned long> >::size_type & rClassInfoCount,
2002 const std::string & rstrBaseName = "" ) const;
2003 //-----------------------------------------------------------------------
2030 int isKnownClassID( bool & rbRetVal,
2031 unsigned long ulClassID,
2032 const std::string & rstrBaseName = "" ) const;
2033 //-----------------------------------------------------------------------
2063 int isSuperClassFrom( bool & rbRetVal,
2064 unsigned long ulClassIDSuperClass,
2065 unsigned long ulClassIDSubClass,
2066 const std::string & rstrBaseName = "" ) const;
2067 //-----------------------------------------------------------------------
2098 int indexAvailable( const std::string & rsIndexName,
2099 unsigned long ulClassID,
2100 const std::string & rstrBaseName = "" ) const;
2101 //-----------------------------------------------------------------------
2133 int getLimits( LimitRecord *& prLimitRecord,
2134 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2135 //-----------------------------------------------------------------------
2157 int getLimits( std::shared_ptr<LimitRecord> & rLimitRecord,
2158 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2159 //-----------------------------------------------------------------------
2188 int getAllLoggedClients( std::vector< ClientInfo > & rClientInfoVector,
2189 const std::string & rstrBaseName = "" ) const;
2190 //-----------------------------------------------------------------------
2191
2192 //============== Record-Methoden
2193 //-----------------------------------------------------------------------
2238 int getRecord( Record *& prRecord,
2239 const ObjID & rObjID,
2240 unsigned long ulClassID ) const;
2241 //-----------------------------------------------------------------------
2277 int getRecord( std::shared_ptr<Record> & rRecord,
2278 const ObjID & rObjID,
2279 unsigned long ulClassID ) const;
2280 //-----------------------------------------------------------------------
2281
2282 //============== Objekt-Methoden
2283 //-----------------------------------------------------------------------
2298 int assignObject( BasePersistent * pObject ) const;
2299 //-----------------------------------------------------------------------
2320 EnDeepMode eDeepMode ) const;
2321 //-----------------------------------------------------------------------
2343 int notifyAsWritten( const std::list< ObjID > & rObjIDList ) const;
2344 //-----------------------------------------------------------------------
2365 EnDeepMode eDeepMode ) const;
2366 //-----------------------------------------------------------------------
2404 int deleteObjects( const std::vector< glo::ObjID > & rObjectIDs,
2405 EnDeepMode eDeepMode = glo::DM_SHALLOW ) const;
2406 //-----------------------------------------------------------------------
2440 int getAnObject( BasePersistent *& prObject,
2441 const ObjID & rObjID,
2442 bool bGeneric = false ) const;
2443 //-----------------------------------------------------------------------
2468 int getAnObject( std::shared_ptr<BasePersistent> & rObject,
2469 const ObjID & rObjID,
2470 bool bGeneric = false ) const;
2471 //-----------------------------------------------------------------------
2493 int refreshObject( BasePersistent * pObject ) const;
2494 //-----------------------------------------------------------------------
2510 int isStoredObject( bool & rbRetVal, BasePersistent * pObject ) const;
2511 //-----------------------------------------------------------------------
2512
2513 //============== AllSet-Methoden
2514 //-----------------------------------------------------------------------
2533 int openAllSet( BaseAllSet * pAllSet ) const;
2534 //-----------------------------------------------------------------------
2548 int closeAllSet( BaseAllSet * pAllSet ) const;
2549 //-----------------------------------------------------------------------
2567 int objIDInAllSet( const ObjID & rObjID,
2568 const BaseAllSet & rAllSet ) const;
2569 //-----------------------------------------------------------------------
2587 int setCurrentObjectInAllSet( const ObjID & rObjID,
2588 const BaseAllSet & rAllSet ) const;
2589 //-----------------------------------------------------------------------
2607 int setPositionInAllSet( std::size_t nPosition,
2608 const BaseAllSet & rAllSet ) const;
2609 //-----------------------------------------------------------------------
2648 const BaseAllSet & rAllSet,
2649 EnSeekMode eMode ) const;
2650 //-----------------------------------------------------------------------
2700 BasePersistent *& prObject,
2701 const BaseAllSet & rAllSet,
2702 EnSeekMode eMode,
2703 bool bGeneric = false ) const;
2704 //-----------------------------------------------------------------------
2728 int setIndexFilter( const BaseAllSet & rAllSet,
2729 const std::string & rsIndexFilter ) const;
2730 //-----------------------------------------------------------------------
2768 int setIndexFilter( const BaseAllSet & rAllSet,
2769 const std::string & rsIndexFilter,
2770 EnComparisionOp eComparisionOp ) const;
2771 //-----------------------------------------------------------------------
2806 int setIndexFilter( const BaseAllSet & rAllSet,
2807 const std::string & rsRangeStartIndexFilter,
2808 const std::string & rsRangeEndIndexFilter ) const;
2809 //-----------------------------------------------------------------------
2823 int removeIndexFilter( const BaseAllSet & rAllSet ) const;
2824 //-----------------------------------------------------------------------
2857 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2858 const BaseAllSet & rAllSet,
2859 const std::string & rsIndexSearchValue,
2860 EnQueryType eQuerryType ) const;
2861 //-----------------------------------------------------------------------
2900 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2901 const BaseAllSet & rAllSet,
2902 const std::string & rsIndexName,
2903 unsigned long ulIndexClassID,
2904 const std::string & rsIndexSearchValue,
2905 EnQueryType eQuerryType ) const;
2906 //-----------------------------------------------------------------------
2947 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2948 const BaseAllSet & rAllSet,
2949 const std::string & rsIndexSearchValue,
2950 EnComparisionOp eComparisionOp ) const;
2951 //-----------------------------------------------------------------------
2998 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
2999 const BaseAllSet & rAllSet,
3000 const std::string & rsIndexName,
3001 unsigned long ulIndexClassID,
3002 const std::string & rsIndexSearchValue,
3003 EnComparisionOp eComparisionOp ) const;
3004 //-----------------------------------------------------------------------
3042 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
3043 const BaseAllSet & rAllSet,
3044 const std::string & rsRangeStartIndexSearchValue,
3045 const std::string & rsRangeEndIndexSearchValue ) const;
3046 //-----------------------------------------------------------------------
3090 int getIndexedObjIdsFromAllSet( std::vector< glo::ObjID > & rObjIDContainer,
3091 const BaseAllSet & rAllSet,
3092 const std::string & rsIndexName,
3093 unsigned long ulIndexClassID,
3094 const std::string & rsRangeStartIndexSearchValue,
3095 const std::string & rsRangeEndIndexSearchValue ) const;
3096 //-----------------------------------------------------------------------
3112 int getSizeFromAllSet( std::size_t & rnSize,
3113 const BaseAllSet & rAllSet ) const;
3114 //-----------------------------------------------------------------------
3115
3116 //============== Lock-Unlock-Methoden
3117 //-----------------------------------------------------------------------
3143 int lockObject( const ObjID & rObjId,
3144 EnLockMode eLockMode,
3145 EnDeepMode eDeepMode ) const;
3146 //-----------------------------------------------------------------------
3181 EnLockMode eLockMode,
3182 EnDeepMode eDeepMode ) const;
3183 //-----------------------------------------------------------------------
3222 int relockObject( const ObjID & rObjId,
3223 EnLockMode eLockMode,
3224 EnDeepMode eDeepMode ) const;
3225 //-----------------------------------------------------------------------
3273 EnLockMode eLockMode,
3274 EnDeepMode eDeepMode ) const;
3275 //-----------------------------------------------------------------------
3305 int unlockObject( const ObjID & rObjId,
3306 EnLockMode eLockMode,
3307 EnDeepMode eDeepMode ) const;
3308 //-----------------------------------------------------------------------
3334 int lockLot( const BaseLot & rObjIdLot,
3335 EnLockMode eLockMode,
3336 EnDeepMode eDeepMode ) const;
3337 //-----------------------------------------------------------------------
3367 int unlockLot( const BaseLot & rObjIdLot,
3368 EnLockMode eLockMode,
3369 EnDeepMode eDeepMode ) const;
3370 //-----------------------------------------------------------------------
3397 int lockObjIdList( std::list<ObjID> * pObjIDList,
3398 EnLockMode eLockMode,
3399 EnDeepMode eDeepMode ) const;
3400 //-----------------------------------------------------------------------
3430 int unlockObjIdList( std::list<ObjID> * pObjIDList,
3431 EnLockMode eLockMode,
3432 EnDeepMode eDeepMode ) const;
3433 //-----------------------------------------------------------------------
3455 int isLockedObject( const ObjID & rObjId,
3456 EnLockMode eLockMode,
3457 EnDeepMode eDeepMode ) const;
3458 //-----------------------------------------------------------------------
3486 int isPossible( const ObjID & rObjId,
3487 bool bRead,
3488 bool bWrite,
3489 bool bDelete,
3490 EnDeepMode eDeepMode ) const;
3491 //-----------------------------------------------------------------------
3514 LockPossibleSpecification & rLockPossibleSpecification,
3515 EnDeepMode eDeepMode ) const;
3516 //-----------------------------------------------------------------------
3517
3518 //============== Transaktions-Methoden
3519 //-----------------------------------------------------------------------
3536 int beginTransaction() const;
3537 //-----------------------------------------------------------------------
3555 //-----------------------------------------------------------------------
3557
3575 int abortTransaction() const;
3578 //-----------------------------------------------------------------------
3588 bool isInTransaction() const;
3589 //-----------------------------------------------------------------------
3600 //-----------------------------------------------------------------------
3601
3602 //============== Überwachungs-Methoden
3603 //-----------------------------------------------------------------------
3658 int setWatchObject( const ObjID & rObjId,
3659 TdWatchNotifyMode ulWatchMode,
3660 EnDeepMode eDeepMode,
3661 CallBack * pCallBack ) const;
3662 //-----------------------------------------------------------------------
3717 int unsetWatchObject( const ObjID & rObjId,
3718 TdWatchNotifyMode ulWatchMode,
3719 EnDeepMode eDeepMode,
3720 CallBack * pCallBack ) const;
3721 //-----------------------------------------------------------------------
3776 int setWatchLot( const BaseLot & rObjIdLot,
3777 TdWatchNotifyMode ulWatchMode,
3778 EnDeepMode eDeepMode,
3779 CallBack * pCallBack ) const;
3780 //-----------------------------------------------------------------------
3835 int unsetWatchLot( const BaseLot & rObjIdLot,
3836 TdWatchNotifyMode ulWatchMode,
3837 EnDeepMode eDeepMode,
3838 CallBack * pCallBack ) const;
3839 //-----------------------------------------------------------------------
3898 int setWatchClass( unsigned long ulClassID,
3899 TdWatchNotifyMode ulWatchMode,
3900 CallBack * pCallBack ) const;
3901 //-----------------------------------------------------------------------
3955 int unsetWatchClass( unsigned long ulClassID,
3956 TdWatchNotifyMode ulWatchMode,
3957 CallBack * pCallBack ) const;
3958 //-----------------------------------------------------------------------
4012 CallBack * pCallBack ) const;
4013 //-----------------------------------------------------------------------
4062 CallBack * pCallBack ) const;
4063 //-----------------------------------------------------------------------
4113 CallBack * pCallBack ) const;
4114 //-----------------------------------------------------------------------
4160 CallBack * pCallBack ) const;
4161 //-----------------------------------------------------------------------
4192 int setWatchServer( CallBack * pCallBack ) const;
4193 //-----------------------------------------------------------------------
4194
4195 public:
4196 //============== Hilfs-Methoden
4197 //-----------------------------------------------------------------------
4216 //-----------------------------------------------------------------------
4234 //-----------------------------------------------------------------------
4235
4236 #ifdef _GLO_TEST
4237 public:
4238 #else
4239 protected:
4240 #endif
4241 //============== Hilfs-Methoden
4242 //-----------------------------------------------------------------------
4256 std::shared_ptr < PrivateBase > getPrivateBase() const;
4257 //-----------------------------------------------------------------------
4258
4259 private:
4260 //============== Operatoren
4261 //-----------------------------------------------------------------------
4271 Base & operator= ( const Base & );
4272 //-----------------------------------------------------------------------
4273 };
4274 //---------------------------------------------------------------------------
4275 #ifdef _MSC_VER
4276 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
4277 #pragma warning( default : 4251 )
4278 #endif
4279 //---------------------------------------------------------------------------
4280} // namespace glo
4281#endif
Header für CriticalSection
Header für EuPCriticalSection
Header für ClassInfoAttribute und ClassInfoAttribute::Type
Header und Source für TOndemand
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
#define __glo_export_dll
Definition GloTypes.h:70
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
Ist die Basisklasse von Template-AllSets und dem generischen AllSet.
Definition GloBaseAllSet.h:87
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
Es wird eine Transaktion abgebrochen bzw.
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
friend class Persistent
Definition GloBase.h:268
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
int lockObjectAndRefresh(BasePersistent *pObject, EnLockMode eLockMode, EnDeepMode eDeepMode) 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)
int relockObjectAndRefresh(BasePersistent *pObject, EnLockMode eLockMode, EnDeepMode eDeepMode) const
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
friend class ObjectMaker
Definition GloBase.h:267
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)
friend class EmbeddedRecordAttribute
Definition GloBase.h:269
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
Es wird eine Transaktion abgebrochen bzw.
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
Ist die Basisklasse von Pointer- und Ondemand-Sets bzw. Pointer- und Ondemand-Listen.
Definition GloBaseLot.h:73
Abstrakte Basisklasse für Persistent und die generische GenericPersistent.
Definition GloBasePersistent.h:124
Oberklasse für die Klassen, welche mit einer Base 'verbunden' sind.
Definition GloCallBack.h:81
Zusammengefasste Typinformationen für ein ClassInfoAttribute.
Definition GloClassInfoAttribute.h:108
Diese Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu kö...
Definition GloClassInfo.h:86
OberKlasse von LocalThread, ClientThread und ServerThread, weil diese als Sender und Empfänger (Kommu...
Definition GloCommunicator.h:93
Klasse um die generischen persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.
Definition GloGenPersObjectSpy.h:83
In Objekten dieser Klasse werden die Min- und Max-Werte von unterstützten Datentypen und deren Feldlä...
Definition GloLimitRecord.h:71
Abstrakte Oberklasse für Instanziierungsfunktionen der persistenten Klassen. Von dieser Klasse wird g...
Definition GloObjCreator.h:78
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:84
Diese Klasse kann aus einem Datensatz ein persistentes Objekt instanziieren bzw. ein persistentes Obj...
Definition GloObjectMaker.h:70
Klasse zum Zugriff auf die geöffneten Datenbanken.
Definition GloOpenedDatabases.h:85
Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.
Definition GloPersObjectSpy.h:82
Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleit...
Definition GloPersistent.h:242
In dieser Klasse werden Funktionen für Base gekapselt. Für den Fall, dass sich Änderungen in der Funk...
Definition GloPrivateBase.h:99
Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen...
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
Eine Struktur um ClientDaten zwischen Datenbank und Client zu transportieren.
Definition GloClientInfo.h:71
Es können erlaubte Aktionen in der Datenbank wie lesen, schreiben und löschen für ein Objekt erfragt ...
Definition GloTypes.h:1256