GlobalObjects
Loading...
Searching...
No Matches
GloPersistent.h
Go to the documentation of this file.
1#ifndef INC_GLOPERSISTENT_H
2#define INC_GLOPERSISTENT_H
3//-----------------------------------------------------------------------------
43//-----------------------------------------------------------------------------
44#include "GloTypes.h"
45#include "GloBasePersistent.h"
46#include "GloPersObjectSpy.h"
47#include "GloAttributeID.h"
48#include "GloRecord.h"
49#include "GloTOndemand.h"
50#include "GloTPointerSet.h"
51#include "GloTOndemandSet.h"
52#include "GloTPointerList.h"
53#include "GloTOndemandList.h"
54#include "EuException.h"
55#include <string>
56#include <ctime>
57#include <list>
58//-----------------------------------------------------------------------------
59// Glo Macros
60//-----------------------------------------------------------------------------
82#define GLO_OBJECT(...) \
83 public: \
84 static unsigned long getStaticGloClassID(); \
85 static bool isStaticSubClassID( unsigned long ulSubClassID ); \
86 static bool isStaticSuperClassID( unsigned long ulSuperClassID ); \
87 virtual unsigned long getGloClassID() const override; \
88 virtual int getTypeAsString( std::string & rsTypeName ) override; \
89 virtual int setGloAttribute( const glo::AttributeID & rAttributeID, void * pPara ) override; \
90 virtual void * getGloAttribute( const glo::AttributeID & rAttributeID ) override; \
91 virtual int setGloAttribute( const std::string & rstrAttributeName, void * pPara ) override; \
92 virtual void * getGloAttribute( const std::string & rstrAttributeName ) override; \
93 virtual bool isSameOrSuperClassFrom( const glo::Persistent * pPersistent ) const override; \
94 virtual bool isSameOrSuperClassFrom( const std::shared_ptr<glo::Persistent> spPersistent ) const override; \
95 virtual void _postAssign( glo::Base & rBase ) override; \
96 private:
97//-----------------------------------------------------------------------------
137#define GLO_INDEX(...)
138//-----------------------------------------------------------------------------
140#define GLO_ANNOTATE_ACCESS_SPECIFIER(x)
141//-----------------------------------------------------------------------------
147#define GLO_PERSISTENT_AREA GLO_ANNOTATE_ACCESS_SPECIFIER(x)
148//-----------------------------------------------------------------------------
169#define persistent GLO_PERSISTENT_AREA
170//-----------------------------------------------------------------------------
184#define transient GLO_PERSISTENT_AREA
185//-----------------------------------------------------------------------------
186
187//-----------------------------------------------------------------------------
188namespace glo
189{
245 {
246 //============== Attributes
247 //-----------------------------------------------------------------------
260 //-----------------------------------------------------------------------
271 std::time_t m_dtCreateDate;
272 //-----------------------------------------------------------------------
284 std::time_t m_dtLastChange;
285 //-----------------------------------------------------------------------
286
287 public:
288 //============== ctor
289 //-----------------------------------------------------------------------
300 //-----------------------------------------------------------------------
301
302 protected:
303 //============== detor
304 //-----------------------------------------------------------------------
320 virtual ~Persistent();
321 //-----------------------------------------------------------------------
322
323 public:
324 //============== copy ctor
325 //-----------------------------------------------------------------------
337 Persistent( const Persistent & rT );
338 //-----------------------------------------------------------------------
339
340 public:
341 //============== Methoden
342 //-----------------------------------------------------------------------
360 virtual void activate();
361 //-----------------------------------------------------------------------
389 virtual int assign( Base & rBase ) override;
390 //-----------------------------------------------------------------------
402 virtual void removeBase() override;
403 //-----------------------------------------------------------------------
413 virtual ObjID getObjID() const override;
414 //-----------------------------------------------------------------------
426 virtual std::time_t getCreateDate() const override;
427 //-----------------------------------------------------------------------
439 virtual std::time_t getLastChangeDate() const override;
440 //-----------------------------------------------------------------------
458 virtual void takeOverRecord( Record * pRecord ) override;
459 //-----------------------------------------------------------------------
522 virtual int preStore( EnDeepMode eDeepMode, void *& prData );
523 //-----------------------------------------------------------------------
558 virtual int store( EnDeepMode eDeepMode = DM_SHALLOW ) override;
559 //-----------------------------------------------------------------------
584 virtual void postStore( int iStoreErr, EnDeepMode eDeepMode, void * pData );
585 //-----------------------------------------------------------------------
651 virtual int preDeleteInBase( EnDeepMode eDeepMode, void *& prData );
652 //-----------------------------------------------------------------------
682 virtual int deleteInBase( EnDeepMode eDeepMode = DM_SHALLOW ) override;
683 //-----------------------------------------------------------------------
710 virtual void postDeleteInBase( int iDeleteErr, EnDeepMode eDeepMode, void * pData );
711 //-----------------------------------------------------------------------
774 virtual int preRefresh( void *& prData );
775 //-----------------------------------------------------------------------
806 virtual int refresh() override;
807 //-----------------------------------------------------------------------
832 virtual void postRefresh( int iRefreshErr, void * pData );
833 //-----------------------------------------------------------------------
902 virtual int preLock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
903 //-----------------------------------------------------------------------
962 virtual int lock( EnLockMode eLockMode = LK_DELETEvWRITE,
963 EnDeepMode eDeepMode = DM_SHALLOW ) override;
964 //-----------------------------------------------------------------------
1021 virtual int lock( const LockSpecification & rLockSpecification ) override;
1022 //-----------------------------------------------------------------------
1090 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1091 //-----------------------------------------------------------------------
1156 virtual int lockAndRefresh( const LockSpecification & rLockSpecification ) override;
1157 //-----------------------------------------------------------------------
1186 virtual void postLock( int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
1187 //-----------------------------------------------------------------------
1256 virtual int preRelock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
1257 //-----------------------------------------------------------------------
1305 virtual int relock( EnLockMode eLockMode = LK_DELETEvWRITE,
1306 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1307 //-----------------------------------------------------------------------
1353 virtual int relock( const LockSpecification & rLockSpecification ) override;
1354 //-----------------------------------------------------------------------
1406 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1407 //-----------------------------------------------------------------------
1456 virtual int relockAndRefresh( const LockSpecification & rLockSpecification ) override;
1457 //-----------------------------------------------------------------------
1486 virtual void postRelock( int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
1487 //-----------------------------------------------------------------------
1556 virtual int preUnlock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
1557 //-----------------------------------------------------------------------
1597 virtual int unlock( EnLockMode eLockMode = LK_DELETEvWRITE,
1598 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1599 //-----------------------------------------------------------------------
1637 virtual int unlock( const LockSpecification & rLockSpecification ) override;
1638 //-----------------------------------------------------------------------
1668 virtual void postUnlock( int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
1669 //-----------------------------------------------------------------------
1747 virtual int preSetWatch( TdWatchNotifyMode ulWatchMode,
1748 EnDeepMode eDeepMode,
1749 CallBack * pCallBack,
1750 void *& prData );
1751 //-----------------------------------------------------------------------
1823 virtual int setWatch( TdWatchNotifyMode ulWatchMode,
1824 EnDeepMode eDeepMode,
1825 CallBack * pCallBack = 0 ) override;
1826 //-----------------------------------------------------------------------
1866 virtual void postSetWatch( int iSetWatchErr,
1867 TdWatchNotifyMode ulWatchMode,
1868 EnDeepMode eDeepMode,
1869 CallBack * pCallBack,
1870 void * pData );
1871 //-----------------------------------------------------------------------
1949 virtual int preUnsetWatch( TdWatchNotifyMode ulWatchMode,
1950 EnDeepMode eDeepMode,
1951 CallBack * pCallBack,
1952 void *& prData );
1953 //-----------------------------------------------------------------------
2024 virtual int unsetWatch( TdWatchNotifyMode ulWatchMode,
2025 EnDeepMode eDeepMode,
2026 CallBack * pCallBack = 0 ) override;
2027 //-----------------------------------------------------------------------
2066 virtual void postUnsetWatch( int iUnsetWatchErr,
2067 TdWatchNotifyMode ulWatchMode,
2068 EnDeepMode eDeepMode,
2069 CallBack * pCallBack,
2070 void * pData );
2071 //-----------------------------------------------------------------------
2072
2073 protected:
2074 //============== Methoden
2075 //-----------------------------------------------------------------------
2085 virtual void insertInObjectSpy() const override;
2086 //-----------------------------------------------------------------------
2096 virtual void removeInObjectSpy() const override;
2097 //-----------------------------------------------------------------------
2107 virtual void setCreateDate() override;
2108 //-----------------------------------------------------------------------
2109
2110 public:
2111 //============== static methods
2112 //-----------------------------------------------------------------------
2129 static unsigned long getStaticGloClassID();
2130 //-----------------------------------------------------------------------
2147 static bool isStaticSubClassID( unsigned long ulSubClassID );
2148 //-----------------------------------------------------------------------
2165 static bool isStaticSuperClassID( unsigned long ulSuperClassID );
2166 //-----------------------------------------------------------------------
2167
2168 public:
2169 //============== methods
2170 //-----------------------------------------------------------------------
2191 virtual unsigned long getGloClassID() const override;
2192 //-----------------------------------------------------------------------
2206 virtual int getTypeAsString( std::string & rsTypeName ) override;
2207 //-----------------------------------------------------------------------
2233 virtual int setGloAttribute( const AttributeID & rAttributeID, void * pPara );
2234 //-----------------------------------------------------------------------
2257 virtual void * getGloAttribute( const AttributeID & rAttributeID );
2258 //-----------------------------------------------------------------------
2284 virtual int setGloAttribute (const std::string & rstrAttributName, void * pPara);
2285 //-----------------------------------------------------------------------
2307 virtual void * getGloAttribute (const std::string & rstrAttributName);
2308 //-----------------------------------------------------------------------
2310
2325 virtual bool isSameOrSuperClassFrom( const glo::Persistent * pPersistent ) const;
2326 virtual bool isSameOrSuperClassFrom( const std::shared_ptr<glo::Persistent> pPersistent ) const;
2328 //-----------------------------------------------------------------------
2329
2330 protected:
2331 //============== Methoden
2332 //-----------------------------------------------------------------------
2353 virtual void _postAssign( Base & rBase );
2354 //-----------------------------------------------------------------------
2355
2356 //============== Operatoren
2357 //-----------------------------------------------------------------------
2369 Persistent & operator= ( const Persistent & rT );
2370 //-----------------------------------------------------------------------
2372
2383 bool operator== ( const Persistent & rT ) const;
2384 bool operator!= ( const Persistent & rT ) const;
2386 //-----------------------------------------------------------------------
2387 };
2388 //---------------------------------------------------------------------------
2389} // namespace glo
2390#endif
Header for ErrorNException
Header for AttributeID
Header for BasePersistent
Header for PersObjectSpy
Header for Record and Record::IndexStrNameTuple
Header and source for TOndemand
Header and Source for TOndemandList
Header and Source for TOndemandSet
Header and Source for TPointerList
Header and Source for TPointerSet
For each library, here 'GlobalObjects' there is a type file.
#define __glo_export_dll
Definition GloTypes.h:70
This class reflects a unique ID of a class information attribute.
Definition GloAttributeID.h:81
Definition GloBase.h:263
Superclass for the classes that are 'connected' to a Base.
Definition GloCallBack.h:81
To be able to lock objects, the 'lock mode' and the 'lock depth' are required as parameters....
Definition GloLockSpecification.h:65
An object ID consists of the class ID, a database ID and the actual unique object number (all unsigne...
Definition GloObjID.h:84
The base class of the persistent classes. All persistent classes must be derived from this class to b...
Definition GloPersistent.h:245
virtual int setGloAttribute(const AttributeID &rAttributeID, void *pPara)
virtual int setWatch(TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
virtual int preDeleteInBase(EnDeepMode eDeepMode, void *&prData)
virtual void removeInObjectSpy() const override
virtual int lock(EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual unsigned long getGloClassID() const override
virtual int refresh() override
virtual int store(EnDeepMode eDeepMode=DM_SHALLOW) override
virtual void * getGloAttribute(const AttributeID &rAttributeID)
std::time_t m_dtCreateDate
Definition GloPersistent.h:271
virtual int unlock(EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int unsetWatch(TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
virtual int lockAndRefresh(const LockSpecification &rLockSpecification) override
static bool isStaticSuperClassID(unsigned long ulSuperClassID)
static bool isStaticSubClassID(unsigned long ulSubClassID)
virtual int relock(EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual void _postAssign(Base &rBase)
Persistent(const Persistent &rT)
ObjID m_ObjID
Definition GloPersistent.h:259
virtual void postSetWatch(int iSetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
virtual void takeOverRecord(Record *pRecord) override
virtual int assign(Base &rBase) override
virtual std::time_t getCreateDate() const override
virtual void * getGloAttribute(const std::string &rstrAttributName)
virtual ObjID getObjID() const override
std::time_t m_dtLastChange
Definition GloPersistent.h:284
virtual void setCreateDate() override
static unsigned long getStaticGloClassID()
virtual int preLock(EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual void postUnlock(int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual void postDeleteInBase(int iDeleteErr, EnDeepMode eDeepMode, void *pData)
virtual void postLock(int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual int deleteInBase(EnDeepMode eDeepMode=DM_SHALLOW) override
virtual bool isSameOrSuperClassFrom(const std::shared_ptr< glo::Persistent > pPersistent) const
Checks if passed object can be cast to this.
virtual void insertInObjectSpy() const override
virtual void activate()
virtual int getTypeAsString(std::string &rsTypeName) override
virtual int preRelock(EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual int preStore(EnDeepMode eDeepMode, void *&prData)
virtual bool isSameOrSuperClassFrom(const glo::Persistent *pPersistent) const
Checks if passed object can be cast to this.
virtual void removeBase() override
virtual void postRelock(int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual void postStore(int iStoreErr, EnDeepMode eDeepMode, void *pData)
virtual int preRefresh(void *&prData)
virtual int relock(const LockSpecification &rLockSpecification) override
virtual void postRefresh(int iRefreshErr, void *pData)
virtual int preUnsetWatch(TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
virtual int relockAndRefresh(EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int setGloAttribute(const std::string &rstrAttributName, void *pPara)
virtual int preUnlock(EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual int lockAndRefresh(EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual ~Persistent()
virtual std::time_t getLastChangeDate() const override
virtual int unlock(const LockSpecification &rLockSpecification) override
virtual int lock(const LockSpecification &rLockSpecification) override
virtual void postUnsetWatch(int iUnsetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
virtual int preSetWatch(TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
virtual int relockAndRefresh(const LockSpecification &rLockSpecification) override
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
EnDeepMode
Definition GloTypes.h:273
@ DM_SHALLOW
Definition GloTypes.h:309
EnLockMode
Definition GloTypes.h:1074
@ LK_DELETEvWRITE
Definition GloTypes.h:1124
unsigned long TdWatchNotifyMode
Definition GloTypes.h:577