GlobalObjects
Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Freundbeziehungen Makrodefinitionen Seiten
GloPersistent.h
gehe zur Dokumentation dieser Datei
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 //-----------------------------------------------------------------------
495 virtual int preStore( EnDeepMode eDeepMode, void *& prData );
496 //-----------------------------------------------------------------------
531 virtual int store( EnDeepMode eDeepMode = DM_SHALLOW ) override;
532 //-----------------------------------------------------------------------
557 virtual void postStore( int iStoreErr, EnDeepMode eDeepMode, void * pData );
558 //-----------------------------------------------------------------------
597 virtual int preDeleteInBase( EnDeepMode eDeepMode, void *& prData );
598 //-----------------------------------------------------------------------
628 virtual int deleteInBase( EnDeepMode eDeepMode = DM_SHALLOW ) override;
629 //-----------------------------------------------------------------------
656 virtual void postDeleteInBase( int iDeleteErr, EnDeepMode eDeepMode, void * pData );
657 //-----------------------------------------------------------------------
693 virtual int preRefresh( void *& prData );
694 //-----------------------------------------------------------------------
725 virtual int refresh() override;
726 //-----------------------------------------------------------------------
751 virtual void postRefresh( int iRefreshErr, void * pData );
752 //-----------------------------------------------------------------------
794 virtual int preLock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
795 //-----------------------------------------------------------------------
833 virtual int lock( EnLockMode eLockMode = LK_DELETEvWRITE,
834 EnDeepMode eDeepMode = DM_SHALLOW ) override;
835 //-----------------------------------------------------------------------
871 virtual int lock( const LockSpecification & rLockSpecification ) override;
872 //-----------------------------------------------------------------------
918 virtual int lockAndRefresh( EnLockMode eLockMode = LK_DELETEvWRITE,
919 EnDeepMode eDeepMode = DM_SHALLOW ) override;
920 //-----------------------------------------------------------------------
964 virtual int lockAndRefresh( const LockSpecification & rLockSpecification ) override;
965 //-----------------------------------------------------------------------
994 virtual void postLock( int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
995 //-----------------------------------------------------------------------
1037 virtual int preRelock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
1038 //-----------------------------------------------------------------------
1086 virtual int relock( EnLockMode eLockMode = LK_DELETEvWRITE,
1087 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1088 //-----------------------------------------------------------------------
1134 virtual int relock( const LockSpecification & rLockSpecification ) override;
1135 //-----------------------------------------------------------------------
1187 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1188 //-----------------------------------------------------------------------
1237 virtual int relockAndRefresh( const LockSpecification & rLockSpecification ) override;
1238 //-----------------------------------------------------------------------
1267 virtual void postRelock( int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
1268 //-----------------------------------------------------------------------
1310 virtual int preUnlock( EnLockMode eLockMode, EnDeepMode eDeepMode, void *& prData );
1311 //-----------------------------------------------------------------------
1351 virtual int unlock( EnLockMode eLockMode = LK_DELETEvWRITE,
1352 EnDeepMode eDeepMode = DM_SHALLOW ) override;
1353 //-----------------------------------------------------------------------
1391 virtual int unlock( const LockSpecification & rLockSpecification ) override;
1392 //-----------------------------------------------------------------------
1422 virtual void postUnlock( int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void * pData );
1423 //-----------------------------------------------------------------------
1474 virtual int preSetWatch( TdWatchNotifyMode ulWatchMode,
1475 EnDeepMode eDeepMode,
1476 CallBack * pCallBack,
1477 void *& prData );
1478 //-----------------------------------------------------------------------
1550 virtual int setWatch( TdWatchNotifyMode ulWatchMode,
1551 EnDeepMode eDeepMode,
1552 CallBack * pCallBack = 0 ) override;
1553 //-----------------------------------------------------------------------
1593 virtual void postSetWatch( int iSetWatchErr,
1594 TdWatchNotifyMode ulWatchMode,
1595 EnDeepMode eDeepMode,
1596 CallBack * pCallBack,
1597 void * pData );
1598 //-----------------------------------------------------------------------
1649 virtual int preUnsetWatch( TdWatchNotifyMode ulWatchMode,
1650 EnDeepMode eDeepMode,
1651 CallBack * pCallBack,
1652 void *& prData );
1653 //-----------------------------------------------------------------------
1724 virtual int unsetWatch( TdWatchNotifyMode ulWatchMode,
1725 EnDeepMode eDeepMode,
1726 CallBack * pCallBack = 0 ) override;
1727 //-----------------------------------------------------------------------
1766 virtual void postUnsetWatch( int iUnsetWatchErr,
1767 TdWatchNotifyMode ulWatchMode,
1768 EnDeepMode eDeepMode,
1769 CallBack * pCallBack,
1770 void * pData );
1771 //-----------------------------------------------------------------------
1772
1773 protected:
1774 //============== Methoden
1775 //-----------------------------------------------------------------------
1785 virtual void insertInObjectSpy() const override;
1786 //-----------------------------------------------------------------------
1796 virtual void removeInObjectSpy() const override;
1797 //-----------------------------------------------------------------------
1807 virtual void setCreateDate() override;
1808 //-----------------------------------------------------------------------
1809
1810 public:
1811 //============== static methods
1812 //-----------------------------------------------------------------------
1828 static unsigned long getStaticGloClassID();
1829 //-----------------------------------------------------------------------
1846 static bool isStaticSubClassID( unsigned long ulSubClassID );
1847 //-----------------------------------------------------------------------
1864 static bool isStaticSuperClassID( unsigned long ulSuperClassID );
1865 //-----------------------------------------------------------------------
1866
1867 public:
1868 //============== methods
1869 //-----------------------------------------------------------------------
1890 virtual unsigned long getGloClassID() const override;
1891 //-----------------------------------------------------------------------
1905 virtual int getTypeAsString( std::string & rsTypeName ) override;
1906 //-----------------------------------------------------------------------
1932 virtual int setGloAttribute( const AttributeID & rAttributeID, void * pPara );
1933 //-----------------------------------------------------------------------
1956 virtual void * getGloAttribute( const AttributeID & rAttributeID );
1957 //-----------------------------------------------------------------------
1983 virtual int setGloAttribute (const std::string & rstrAttributName, void * pPara);
1984 //-----------------------------------------------------------------------
2006 virtual void * getGloAttribute (const std::string & rstrAttributName);
2007 //-----------------------------------------------------------------------
2009
2024 virtual bool isSameOrSuperClassFrom( const glo::Persistent * pPersistent ) const;
2025 virtual bool isSameOrSuperClassFrom( const std::shared_ptr<glo::Persistent> pPersistent ) const;
2027 //-----------------------------------------------------------------------
2028
2029 protected:
2030 //============== Methoden
2031 //-----------------------------------------------------------------------
2052 virtual void _postAssign( Base & rBase );
2053 //-----------------------------------------------------------------------
2054
2055 //============== Operatoren
2056 //-----------------------------------------------------------------------
2068 Persistent & operator= ( const Persistent & rT );
2069 //-----------------------------------------------------------------------
2071
2082 bool operator== ( const Persistent & rT ) const;
2083 bool operator!= ( const Persistent & rT ) const;
2085 //-----------------------------------------------------------------------
2086 };
2087 //---------------------------------------------------------------------------
2088} // namespace glo
2089#endif
Header für ErrorNException
Header für AttributeID
Header für BasePersistent
Header für PersObjectSpy
Header für Record und Record::IndexStrNameTuple
Header und Source für TOndemand
Header und Source für TOndemandList
Header und Source für TOndemandSet
Header und Source für TPointerList
Header und Source für TPointerSet
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
#define __glo_export_dll
Definition GloTypes.h:70
Diese Klasse spiegelt eine eindeutige ID eines Klasseninformations-Attributes wieder.
Definition GloAttributeID.h:81
Definition GloBase.h:263
Oberklasse für die Klassen, welche mit einer Base 'verbunden' sind.
Definition GloCallBack.h:81
Um Objekte sperren zu können, werden der 'Lock-Modus' und die 'Sperrtiefe' als Parameter benötigt....
Definition GloLockSpecification.h:65
Ein Objekt-ID besteht aus der Klassen-ID, einer Datenbank-ID und der eigentlichen eindeutigen ObjektZ...
Definition GloObjID.h:84
Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleit...
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
Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
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
Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
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
Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen...
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