GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloBase.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOBASE_H
2#define INC_GLOBASE_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include <map>
38#include <list>
39#include <set>
40#include <vector>
41#include "GloTypes.h"
43#include "GloTOndemand.h"
44#include <string>
45#if defined (__PTHREADS)
46 #include <EuPCriticalSection.h>
47#else
48 #include "EuCriticalSection.h"
49#endif
50//-----------------------------------------------------------------------------
51namespace glo
52{
53 //---------------------------------------------------------------------------
54 /* Forwards */
55 class BaseLot;
56 class BasePersistent;
57 class ClassInfo;
58 class Communicator;
59 class GenPersObjectSpy;
60 class LimitRecord;
61 class ObjCreator;
62 class ObjectMaker;
63 class Persistent;
64 class PersObjectSpy;
65 class PrivateBase;
66 class Record;
67 struct ClientInfo;
68 //---------------------------------------------------------------------------
83 //---------------------------------------------------------------------------
98 //---------------------------------------------------------------------------
112 __glo_export_dll EnDeepMode getDeepModeAsEnum( const std::string & rsDeepMode );
113 //---------------------------------------------------------------------------
127 __glo_export_dll EnLockMode getLockModeAsEnum( const std::string & rsLockMode );
128 //---------------------------------------------------------------------------
129 #ifdef _MSC_VER
130 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
131 #pragma warning( disable : 4251 )
132 #endif
133 //---------------------------------------------------------------------------
134 // doxygen -> warning: unable to resolve reference to 'GLO_EX_DB_INI' for \ref command
135 // doxygen -> warning: unable to resolve reference to 'GLO_FIRST_START_DBINI' for \ref command
136 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_ASK_LOCK' for \ref command
137 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_OBJ' for \ref command
138 // doxygen -> warning: unable to resolve reference to 'GLO_LOCKING_OBJS' for \ref command
139 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_TRANSACTION' for \ref command
140 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_WATCH_NOTIFY' for \ref command
141 // are references to the GlobalObjects documentation.
142 //---------------------------------------------------------------------------
250 {
251 private:
252 //============== Friends
253 //-----------------------------------------------------------------------
254 friend class ObjectMaker;
255 friend class Persistent;
257 //-----------------------------------------------------------------------
258
259 //============== Attribute
260 //-----------------------------------------------------------------------
270 std::shared_ptr<PrivateBase> m_spPrivateBase;
271 //-----------------------------------------------------------------------
284 #if defined (__PTHREADS)
285 EuPCriticalSection m_LocalCriticalSection;
286 #else
288 #endif
289 //-----------------------------------------------------------------------
290
291 public:
292 //============== Konstruktoren
293 //-----------------------------------------------------------------------
306 //-----------------------------------------------------------------------
320 Base( const std::string & rstrClientName );
321 //-----------------------------------------------------------------------
349 Base( const std::string & rstrClientName,
350 const std::string & rstrSchemaPath,
351 const std::string & rstrBaseName );
352 //-----------------------------------------------------------------------
378 Base( const std::string & rstrClientName,
379 ObjCreator & rObjCreator );
380 //-----------------------------------------------------------------------
404 Base( const std::string & rstrServerName,
405 const std::string & rstrClientName );
406 //-----------------------------------------------------------------------
448 Base( const std::string & rstrServerName,
449 const std::string & rstrClientName,
450 int iTimeOutSec,
451 unsigned int uiPort,
452 const std::string & rstrSchemaPath,
453 const std::string & rstrKnownSchemes );
454 //-----------------------------------------------------------------------
498 Base( const std::string & rstrServerName,
499 const std::string & rstrClientName,
500 ObjCreator & rObjCreator );
501 //-----------------------------------------------------------------------
513 virtual ~Base();
514 //-----------------------------------------------------------------------
515
516 private:
517 //============== Konstruktoren
518 //-----------------------------------------------------------------------
528 Base( const Base & );
529 //-----------------------------------------------------------------------
530
531 public:
532 //============== Get- und Set-Methoden
533 //-----------------------------------------------------------------------
560 int setDbIniName( const std::string & rstrDbIniName );
561 //-----------------------------------------------------------------------
574 std::string getDbIniName() const;
575 //-----------------------------------------------------------------------
593 int getDefaultLimits( std::vector< LimitRecord > *& prRetValVector ) const;
594 //-----------------------------------------------------------------------
604 std::string getServerName() const;
605 //-----------------------------------------------------------------------
619 int getPort( unsigned int & ruiPort );
620 //-----------------------------------------------------------------------
635 int getTimeOutSec( int & riTimeOutSec );
636 //-----------------------------------------------------------------------
650 int setClientName( const std::string & rstrClientName );
651 //-----------------------------------------------------------------------
663 std::string getClientName() const;
664 //-----------------------------------------------------------------------
678 int setSchemaPath( const std::string & rstrSchemaPath );
679 //-----------------------------------------------------------------------
693 int getSchemaPath( std::string & rstrRetVal );
694 //-----------------------------------------------------------------------
710 int getSchemaNameWithPath( std::string & rstrRetVal );
711 //-----------------------------------------------------------------------
725 int setKnownSchemes( const std::string & rstrKnownSchemes );
726 //-----------------------------------------------------------------------
740 int getKnownSchemes( std::vector< std::string > & rRetVal );
741 //-----------------------------------------------------------------------
755 int setBaseName( const std::string & rstrBaseName );
756 //-----------------------------------------------------------------------
766 std::string getBaseName() const;
767 //-----------------------------------------------------------------------
777 unsigned int getCommunicatorID() const;
778 //-----------------------------------------------------------------------
789 //-----------------------------------------------------------------------
790
791 //============== Verbindungs-Methoden
792 //-----------------------------------------------------------------------
827 int connect( CallBack * pServerCrashNotificationCallBack = NULL_PTR );
828 //-----------------------------------------------------------------------
850 int reconnect( CallBack * pServerCrashNotificationCallBack = NULL_PTR );
851 //-----------------------------------------------------------------------
865 //-----------------------------------------------------------------------
876 bool isConnected() const;
877 //-----------------------------------------------------------------------
907 int open( const std::string & rstrBaseName,
908 CallBack * pProgressNotificationCallBack = NULL_PTR );
909 //-----------------------------------------------------------------------
932 int close( CallBack * pProgressNotificationCallBack = NULL_PTR );
933 //-----------------------------------------------------------------------
945 bool isOpen() const;
946 //-----------------------------------------------------------------------
981 int openBase( CallBack * pProgressNotificationCallBack = NULL_PTR,
982 CallBack * pServerCrashNotificationCallBack = NULL_PTR );
983 //-----------------------------------------------------------------------
1020 int openBaseComfortably( CallBack * pProgressNotificationCallBack = NULL_PTR,
1021 CallBack * pServerCrashNotificationCallBack = NULL_PTR );
1022 //-----------------------------------------------------------------------
1047 int closeBase( CallBack * pProgressNotificationCallBack = NULL_PTR );
1048 //-----------------------------------------------------------------------
1049
1050 //============== Reparatur-Methoden
1051 //-----------------------------------------------------------------------
1081 int reindexBase( const std::string & rstrBaseName,
1082 CallBack * pProgressNotificationCallBack = NULL_PTR );
1083 //-----------------------------------------------------------------------
1111 int reindexBase( CallBack * pProgressNotificationCallBack = NULL_PTR );
1112 //-----------------------------------------------------------------------
1145 int compressBase( const std::string & rstrBaseName,
1146 CallBack * pProgressNotificationCallBack = NULL_PTR );
1147 //-----------------------------------------------------------------------
1179 int compressBase( CallBack * pProgressNotificationCallBack = NULL_PTR );
1180 //-----------------------------------------------------------------------
1241 int repairBase( const std::string & rstrBaseName,
1242 CallBack * pProgressNotificationCallBack = NULL_PTR );
1243 //-----------------------------------------------------------------------
1305 int repairBase( CallBack * pProgressNotificationCallBack = NULL_PTR );
1306 //-----------------------------------------------------------------------
1307
1308 //============== Informations-Methoden
1309 //-----------------------------------------------------------------------
1327 int getAllBases( std::vector< std::string > *& prRetValVector ) const;
1328 //-----------------------------------------------------------------------
1346 int getBaseCount( std::vector<std::string>::size_type & rBaseCount ) const;
1347 //-----------------------------------------------------------------------
1382 int getRootClassInfo( ClassInfo *& prRootClassInfo,
1383 const std::string & rstrBaseName = "" ) const;
1384 //-----------------------------------------------------------------------
1409 int getRootClassInfo( std::shared_ptr<ClassInfo> & rRootClassInfo,
1410 const std::string & rstrBaseName = "" ) const;
1411 //-----------------------------------------------------------------------
1448 int getClassInfo( ClassInfo *& prClassInfo,
1449 unsigned long ulClassID,
1450 const std::string & rstrBaseName = "" ) const;
1451 //-----------------------------------------------------------------------
1478 int getClassInfo( std::shared_ptr<ClassInfo> & rRetVal,
1479 unsigned long ulClassID,
1480 const std::string & rstrBaseName = "" ) const;
1481 //-----------------------------------------------------------------------
1518 int getClassInfo( ClassInfo *& prClassInfo,
1519 const std::string & rstrClassName,
1520 const std::string & rstrBaseName = "" ) const;
1521 //-----------------------------------------------------------------------
1548 int getClassInfo( std::shared_ptr<ClassInfo> & rRetVal,
1549 const std::string & rstrClassName,
1550 const std::string & rstrBaseName = "" ) const;
1551 //-----------------------------------------------------------------------
1591 int getSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1592 unsigned long ulClassID,
1593 const std::string & rstrBaseName = "" ) const;
1594 //-----------------------------------------------------------------------
1625 int getSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1626 unsigned long ulClassID,
1627 const std::string & rstrBaseName = "" ) const;
1628 //-----------------------------------------------------------------------
1668 int getSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1669 unsigned long ulClassID,
1670 const std::string & rstrBaseName = "" ) const;
1671 //-----------------------------------------------------------------------
1702 int getSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1703 unsigned long ulClassID,
1704 const std::string & rstrBaseName = "" ) const;
1705 //-----------------------------------------------------------------------
1745 int getAllSuperClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSuperClassInfoMap,
1746 unsigned long ulClassID,
1747 const std::string & rstrBaseName = "" ) const;
1748 //-----------------------------------------------------------------------
1777 int getAllSuperClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rBaseClassInfoMap,
1778 unsigned long ulClassID,
1779 const std::string & rstrBaseName = "" ) const;
1780 //-----------------------------------------------------------------------
1820 int getAllSubClassInfos( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prSubClassInfoMap,
1821 unsigned long ulClassID,
1822 const std::string & rstrBaseName = "" ) const;
1823 //-----------------------------------------------------------------------
1852 int getAllSubClassInfos( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rSubClassInfoMap,
1853 unsigned long ulClassID,
1854 const std::string & rstrBaseName = "" ) const;
1855 //-----------------------------------------------------------------------
1889 int getAllClassInfosFromBase( std::map< unsigned long, ClassInfo *, std::less<unsigned long> > *& prAllClassInfoMap,
1890 const std::string & rstrBaseName = "" ) const;
1891 //-----------------------------------------------------------------------
1916 int getAllClassInfosFromBase( std::map< unsigned long, std::shared_ptr<ClassInfo>, std::less<unsigned long> > & rAllClassInfoMap,
1917 const std::string & rstrBaseName = "" ) const;
1918 //-----------------------------------------------------------------------
1943 int getClassInfoCount( std::map< unsigned long, ClassInfo *, std::less<unsigned long> >::size_type & rClassInfoCount,
1944 const std::string & rstrBaseName = "" ) const;
1945 //-----------------------------------------------------------------------
1972 int isKnownClassID( bool & rbRetVal,
1973 unsigned long ulClassID,
1974 const std::string & rstrBaseName = "" ) const;
1975 //-----------------------------------------------------------------------
2005 int isSuperClassFrom( bool & rbRetVal,
2006 unsigned long ulClassIDSuperClass,
2007 unsigned long ulClassIDSubClass,
2008 const std::string & rstrBaseName = "" ) const;
2009 //-----------------------------------------------------------------------
2040 int indexAvailable( const std::string & rsIndexName,
2041 unsigned long ulClassID,
2042 const std::string & rstrBaseName = "" ) const;
2043 //-----------------------------------------------------------------------
2075 int getLimits( LimitRecord *& prLimitRecord,
2076 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2077 //-----------------------------------------------------------------------
2099 int getLimits( std::shared_ptr<LimitRecord> & rLimitRecord,
2100 const ClassInfoAttribute::Type & rClassInfoAttributeType ) const;
2101 //-----------------------------------------------------------------------
2130 int getAllLoggedClients( std::vector< ClientInfo > & rClientInfoVector,
2131 const std::string & rstrBaseName = "" ) const;
2132 //-----------------------------------------------------------------------
2133
2134 //============== Record-Methoden
2135 //-----------------------------------------------------------------------
2180 int getRecord( Record *& prRecord,
2181 const ObjID & rObjID,
2182 unsigned long ulClassID ) const;
2183 //-----------------------------------------------------------------------
2219 int getRecord( std::shared_ptr<Record> & rRecord,
2220 const ObjID & rObjID,
2221 unsigned long ulClassID ) const;
2222 //-----------------------------------------------------------------------
2223
2224 //============== Objekt-Methoden
2225 //-----------------------------------------------------------------------
2240 int assignObject( BasePersistent * pObject ) const;
2241 //-----------------------------------------------------------------------
2262 EnDeepMode eDeepMode ) const;
2263 //-----------------------------------------------------------------------
2285 int notifyAsWritten( const std::list< ObjID > & rObjIDList ) const;
2286 //-----------------------------------------------------------------------
2307 EnDeepMode eDeepMode ) const;
2308 //-----------------------------------------------------------------------
2342 int getAnObject( BasePersistent *& prObject,
2343 const ObjID & rObjID,
2344 bool bGeneric = false ) const;
2345 //-----------------------------------------------------------------------
2370 int getAnObject( std::shared_ptr<BasePersistent> & rObject,
2371 const ObjID & rObjID,
2372 bool bGeneric = false ) const;
2373 //-----------------------------------------------------------------------
2395 int refreshObject( BasePersistent * pObject ) const;
2396 //-----------------------------------------------------------------------
2412 int isStoredObject( bool & rbRetVal, BasePersistent * pObject ) const;
2413 //-----------------------------------------------------------------------
2414
2415 //============== AllSet-Methoden
2416 //-----------------------------------------------------------------------
2435 int openAllSet( BaseAllSet * pAllSet ) const;
2436 //-----------------------------------------------------------------------
2450 int closeAllSet( BaseAllSet * pAllSet ) const;
2451 //-----------------------------------------------------------------------
2469 int objIDInAllSet( const ObjID & rObjID,
2470 const BaseAllSet & rAllSet ) const;
2471 //-----------------------------------------------------------------------
2489 int setCurrentObjectInAllSet( const ObjID & rObjID,
2490 const BaseAllSet & rAllSet ) const;
2491 //-----------------------------------------------------------------------
2509 int setPositionInAllSet( std::size_t nPosition,
2510 const BaseAllSet & rAllSet ) const;
2511 //-----------------------------------------------------------------------
2550 const BaseAllSet & rAllSet,
2551 EnSeekMode eMode ) const;
2552 //-----------------------------------------------------------------------
2602 BasePersistent *& prObject,
2603 const BaseAllSet & rAllSet,
2604 EnSeekMode eMode,
2605 bool bGeneric = false ) const;
2606 //-----------------------------------------------------------------------
2630 int setIndexFilter( const BaseAllSet & rAllSet,
2631 const std::string & rsIndexFilter ) const;
2632 //-----------------------------------------------------------------------
2670 int setIndexFilter( const BaseAllSet & rAllSet,
2671 const std::string & rsIndexFilter,
2672 EnComparisionOp eComparisionOp ) const;
2673 //-----------------------------------------------------------------------
2708 int setIndexFilter( const BaseAllSet & rAllSet,
2709 const std::string & rsRangeStartIndexFilter,
2710 const std::string & rsRangeEndIndexFilter ) const;
2711 //-----------------------------------------------------------------------
2725 int removeIndexFilter( const BaseAllSet & rAllSet ) const;
2726 //-----------------------------------------------------------------------
2759 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2760 const BaseAllSet & rAllSet,
2761 const std::string & rsIndexSearchValue,
2762 EnQueryType eQuerryType ) const;
2763 //-----------------------------------------------------------------------
2802 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2803 const BaseAllSet & rAllSet,
2804 const std::string & rsIndexName,
2805 unsigned long ulIndexClassID,
2806 const std::string & rsIndexSearchValue,
2807 EnQueryType eQuerryType ) const;
2808 //-----------------------------------------------------------------------
2849 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2850 const BaseAllSet & rAllSet,
2851 const std::string & rsIndexSearchValue,
2852 EnComparisionOp eComparisionOp ) const;
2853 //-----------------------------------------------------------------------
2900 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2901 const BaseAllSet & rAllSet,
2902 const std::string & rsIndexName,
2903 unsigned long ulIndexClassID,
2904 const std::string & rsIndexSearchValue,
2905 EnComparisionOp eComparisionOp ) const;
2906 //-----------------------------------------------------------------------
2944 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2945 const BaseAllSet & rAllSet,
2946 const std::string & rsRangeStartIndexSearchValue,
2947 const std::string & rsRangeEndIndexSearchValue ) const;
2948 //-----------------------------------------------------------------------
2992 int getIndexedObjIdsFromAllSet( std::list< ObjID > & rObjIDList,
2993 const BaseAllSet & rAllSet,
2994 const std::string & rsIndexName,
2995 unsigned long ulIndexClassID,
2996 const std::string & rsRangeStartIndexSearchValue,
2997 const std::string & rsRangeEndIndexSearchValue ) const;
2998 //-----------------------------------------------------------------------
3014 int getSizeFromAllSet( std::size_t & rnSize,
3015 const BaseAllSet & rAllSet ) const;
3016 //-----------------------------------------------------------------------
3017
3018 //============== Lock-Unlock-Methoden
3019 //-----------------------------------------------------------------------
3045 int lockObject( const ObjID & rObjId,
3046 EnLockMode eLockMode,
3047 EnDeepMode eDeepMode ) const;
3048 //-----------------------------------------------------------------------
3078 int unlockObject( const ObjID & rObjId,
3079 EnLockMode eLockMode,
3080 EnDeepMode eDeepMode ) const;
3081 //-----------------------------------------------------------------------
3107 int lockLot( const BaseLot & rObjIdLot,
3108 EnLockMode eLockMode,
3109 EnDeepMode eDeepMode ) const;
3110 //-----------------------------------------------------------------------
3140 int unlockLot( const BaseLot & rObjIdLot,
3141 EnLockMode eLockMode,
3142 EnDeepMode eDeepMode ) const;
3143 //-----------------------------------------------------------------------
3170 int lockObjIdList( std::list<ObjID> * pObjIDList,
3171 EnLockMode eLockMode,
3172 EnDeepMode eDeepMode ) const;
3173 //-----------------------------------------------------------------------
3203 int unlockObjIdList( std::list<ObjID> * pObjIDList,
3204 EnLockMode eLockMode,
3205 EnDeepMode eDeepMode ) const;
3206 //-----------------------------------------------------------------------
3228 int isLockedObject( const ObjID & rObjId,
3229 EnLockMode eLockMode,
3230 EnDeepMode eDeepMode ) const;
3231 //-----------------------------------------------------------------------
3259 int isPossible( const ObjID & rObjId,
3260 bool bRead,
3261 bool bWrite,
3262 bool bDelete,
3263 EnDeepMode eDeepMode ) const;
3264 //-----------------------------------------------------------------------
3287 LockPossibleSpecification & rLockPossibleSpecification,
3288 EnDeepMode eDeepMode ) const;
3289 //-----------------------------------------------------------------------
3290
3291 //============== Transaktions-Methoden
3292 //-----------------------------------------------------------------------
3309 int beginTransaction() const;
3310 //-----------------------------------------------------------------------
3328 //-----------------------------------------------------------------------
3345 int abortTransaction() const;
3346 //-----------------------------------------------------------------------
3356 bool isInTransaction() const;
3357 //-----------------------------------------------------------------------
3368 //-----------------------------------------------------------------------
3369
3370 //============== Überwachungs-Methoden
3371 //-----------------------------------------------------------------------
3424 int setWatchObject( const ObjID & rObjId,
3425 TdWatchNotifyMode ulWatchMode,
3426 EnDeepMode eDeepMode,
3427 CallBack * pCallBack ) const;
3428 //-----------------------------------------------------------------------
3481 int unsetWatchObject( const ObjID & rObjId,
3482 TdWatchNotifyMode ulWatchMode,
3483 EnDeepMode eDeepMode,
3484 CallBack * pCallBack ) const;
3485 //-----------------------------------------------------------------------
3538 int setWatchLot( const BaseLot & rObjIdLot,
3539 TdWatchNotifyMode ulWatchMode,
3540 EnDeepMode eDeepMode,
3541 CallBack * pCallBack ) const;
3542 //-----------------------------------------------------------------------
3595 int unsetWatchLot( const BaseLot & rObjIdLot,
3596 TdWatchNotifyMode ulWatchMode,
3597 EnDeepMode eDeepMode,
3598 CallBack * pCallBack ) const;
3599 //-----------------------------------------------------------------------
3654 int setWatchClass( unsigned long ulClassID,
3655 TdWatchNotifyMode ulWatchMode,
3656 CallBack * pCallBack ) const;
3657 //-----------------------------------------------------------------------
3709 int unsetWatchClass( unsigned long ulClassID,
3710 TdWatchNotifyMode ulWatchMode,
3711 CallBack * pCallBack ) const;
3712 //-----------------------------------------------------------------------
3766 CallBack * pCallBack ) const;
3767 //-----------------------------------------------------------------------
3816 CallBack * pCallBack ) const;
3817 //-----------------------------------------------------------------------
3867 CallBack * pCallBack ) const;
3868 //-----------------------------------------------------------------------
3914 CallBack * pCallBack ) const;
3915 //-----------------------------------------------------------------------
3946 int setWatchServer( CallBack * pCallBack ) const;
3947 //-----------------------------------------------------------------------
3948
3949 public:
3950 //============== Hilfs-Methoden
3951 //-----------------------------------------------------------------------
3970 //-----------------------------------------------------------------------
3988 //-----------------------------------------------------------------------
3989
3990 #ifdef _GLO_TEST
3991 public:
3992 #else
3993 protected:
3994 #endif
3995 //============== Hilfs-Methoden
3996 //-----------------------------------------------------------------------
4010 std::shared_ptr < PrivateBase > getPrivateBase() const;
4011 //-----------------------------------------------------------------------
4012
4013 private:
4014 //============== Operatoren
4015 //-----------------------------------------------------------------------
4025 Base & operator= ( const Base & );
4026 //-----------------------------------------------------------------------
4027 };
4028 //---------------------------------------------------------------------------
4029 #ifdef _MSC_VER
4030 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
4031 #pragma warning( default : 4251 )
4032 #endif
4033 //---------------------------------------------------------------------------
4034} // namespace glo
4035#endif
Header für CriticalSection
#define NULL_PTR
Definition EuDef_NULL_PTR.h:74
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:63
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuPCriticalSection.h:89
Ist ein Mutex, welcher über sein Lock-Modus abgefragt werden kann. Siehe isLocked().
Definition EuCriticalSection.h:94
Ist die Basisklasse von Template-AllSets und dem generischen AllSet.
Definition GloBaseAllSet.h:80
Diese Klasse ist die Schnittstelle zu den persistenten Objekten. Hier können "Objekte" angemeldet,...
Definition GloBase.h:250
eut::CriticalSection m_LocalCriticalSection
Definition GloBase.h:287
Base(const std::string &rstrServerName, const std::string &rstrClientName)
bool isConnected() const
int abortTransaction() const
int setWatchLot(const BaseLot &rObjIdLot, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int close(CallBack *pProgressNotificationCallBack=NULL_PTR)
int getClassInfoCount(std::map< unsigned long, ClassInfo *, std::less< unsigned long > >::size_type &rClassInfoCount, const std::string &rstrBaseName="") const
int compressBase(CallBack *pProgressNotificationCallBack=NULL_PTR)
int unsetWatchObject(const ObjID &rObjId, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
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:270
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 repairBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=NULL_PTR)
int storeObject(BasePersistent *pObject, EnDeepMode eDeepMode) const
int setPositionInAllSet(std::size_t nPosition, const BaseAllSet &rAllSet) const
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 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 compressBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=NULL_PTR)
int getObjectFromAllSet(ObjID &rObjID, BasePersistent *&prObject, const BaseAllSet &rAllSet, EnSeekMode eMode, bool bGeneric=false) const
int getLimits(std::shared_ptr< LimitRecord > &rLimitRecord, const ClassInfoAttribute::Type &rClassInfoAttributeType) const
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
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
int openBase(CallBack *pProgressNotificationCallBack=NULL_PTR, CallBack *pServerCrashNotificationCallBack=NULL_PTR)
std::string getBaseName() const
int reindexBase(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=NULL_PTR)
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 reindexBase(CallBack *pProgressNotificationCallBack=NULL_PTR)
int getAnObject(BasePersistent *&prObject, const ObjID &rObjID, bool bGeneric=false) const
int getSizeFromAllSet(std::size_t &rnSize, const BaseAllSet &rAllSet) const
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) 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 openBaseComfortably(CallBack *pProgressNotificationCallBack=NULL_PTR, CallBack *pServerCrashNotificationCallBack=NULL_PTR)
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
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 closeBase(CallBack *pProgressNotificationCallBack=NULL_PTR)
int setBaseName(const std::string &rstrBaseName)
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
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 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 getSubClassInfos(std::map< unsigned long, ClassInfo *, std::less< unsigned long > > *&prSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName="") const
ObjectMaker * getObjectMaker()
int open(const std::string &rstrBaseName, CallBack *pProgressNotificationCallBack=NULL_PTR)
int disconnect()
int setSchemaPath(const std::string &rstrSchemaPath)
int setWatchObject(const ObjID &rObjId, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
int repairBase(CallBack *pProgressNotificationCallBack=NULL_PTR)
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) 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 reconnect(CallBack *pServerCrashNotificationCallBack=NULL_PTR)
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 isLockedObject(const ObjID &rObjId, EnLockMode eLockMode, EnDeepMode eDeepMode) const
int setIndexFilter(const BaseAllSet &rAllSet, const std::string &rsIndexFilter) const
int setKnownSchemes(const std::string &rstrKnownSchemes)
int isStoredObject(bool &rbRetVal, BasePersistent *pObject) const
int connect(CallBack *pServerCrashNotificationCallBack=NULL_PTR)
int getKnownSchemes(std::vector< std::string > &rRetVal)
int setWatchServer(CallBack *pCallBack) const
int deleteObject(BasePersistent *pObject, EnDeepMode eDeepMode) const
int getAnObject(std::shared_ptr< BasePersistent > &rObject, const ObjID &rObjID, bool bGeneric=false) const
int getIndexedObjIdsFromAllSet(std::list< ObjID > &rObjIDList, const BaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) 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
std::string getDbIniName() const
Ist die Basisklasse von Pointer- und Ondemand-Sets bzw. Pointer- und Ondemand-Listen.
Definition GloBaseLot.h:66
Abstrakte Basisklasse für Persistent und die generische GenericPersistent.
Definition GloBasePersistent.h:102
Oberklasse für die Klassen, welche mit einer Base 'verbunden' sind.
Definition GloCallBack.h:74
Zusammengefasste Typinformationen für ein ClassInfoAttribute.
Definition GloClassInfoAttribute.h:101
Diese Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu kö...
Definition GloClassInfo.h:79
Klasse für die eingebettete persistente Objekt-Attribute eines Record. Repräsentiert ein Attribut vom...
Definition GloEmbeddedRecordAttribute.h:65
Klasse um die generischen persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.
Definition GloGenPersObjectSpy.h:76
In Objekten dieser Klasse werden die Min- und Max-Werte von unterstützten Datentypen und deren Feldlä...
Definition GloLimitRecord.h:64
Abstrakte Oberklasse für Instanziierungsfunktionen der persistenten Klassen. Von dieser Klasse wird g...
Definition GloObjCreator.h:71
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:77
Diese Klasse kann aus einem Datensatz ein persistentes Objekt instanziieren bzw. ein persistentes Obj...
Definition GloObjectMaker.h:63
Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.
Definition GloPersObjectSpy.h:75
Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleit...
Definition GloPersistent.h:221
Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen...
Definition GloRecord.h:101
Definition GloAbstractBaseLot.h:42
__glo_export_dll std::string getDeepModeAsString(EnDeepMode eDeepMode)
EnDeepMode
Definition GloTypes.h:247
EnComparisionOp
Definition GloTypes.h:1583
__glo_export_dll std::string getLockModeAsString(EnLockMode eLockMode)
EnLockMode
Definition GloTypes.h:1070
__glo_export_dll EnLockMode getLockModeAsEnum(const std::string &rsLockMode)
EnSeekMode
Definition GloTypes.h:166
EnQueryType
Definition GloTypes.h:1179
__glo_export_dll EnDeepMode getDeepModeAsEnum(const std::string &rsDeepMode)
unsigned long TdWatchNotifyMode
Definition GloTypes.h:543
Es können erlaubte Aktionen in der Datenbank wie lesen, schreiben und löschen für ein Objekt erfragt ...
Definition GloTypes.h:1271