BankAndCustomer
Loading...
Searching...
No Matches
SelfWatchingClass Class Reference

Example of a self-observing class that reloads its persistent attributes from the database by calling refresh(), when other instances has change them. More...

#include <SelfWatchingClass.h>

Inheritance diagram for SelfWatchingClass:
Collaboration diagram for SelfWatchingClass:

Public Member Functions

 SelfWatchingClass ()
virtual ~SelfWatchingClass ()
virtual void activate () override
virtual void postStore (int iStoreErr, glo::EnDeepMode eDeepMode, void *pData) override
virtual void postDeleteInBase (int iDeleteErr, glo::EnDeepMode eDeepMode, void *pData) override
virtual void notify (glo::NotifyNote &rNote) override
Public Member Functions inherited from glo::Persistent
 Persistent ()
 Persistent (const Persistent &rT)
virtual int assign (Base &rBase) override
virtual void removeBase () override
virtual ObjID getObjID () const override
virtual std::time_t getCreateDate () const override
virtual std::time_t getLastChangeDate () const override
virtual void takeOverRecord (Record *pRecord) override
virtual int preStore (EnDeepMode eDeepMode, void *&prData)
virtual int store (EnDeepMode eDeepMode=DM_SHALLOW) override
virtual void postStore (int iStoreErr, EnDeepMode eDeepMode, void *pData)
virtual int preDeleteInBase (EnDeepMode eDeepMode, void *&prData)
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) override
virtual void postDeleteInBase (int iDeleteErr, EnDeepMode eDeepMode, void *pData)
virtual int preRefresh (void *&prData)
virtual int refresh () override
virtual void postRefresh (int iRefreshErr, void *pData)
virtual int preLock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int lock (const LockSpecification &rLockSpecification) override
virtual int lockAndRefresh (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int lockAndRefresh (const LockSpecification &rLockSpecification) override
virtual void postLock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual int preRelock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual int relock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int relock (const LockSpecification &rLockSpecification) override
virtual int relockAndRefresh (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int relockAndRefresh (const LockSpecification &rLockSpecification) override
virtual void postRelock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual int preUnlock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
virtual int unlock (const LockSpecification &rLockSpecification) override
virtual void postUnlock (int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
virtual int preSetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
virtual void postSetWatch (int iSetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
virtual int preUnsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
virtual void postUnsetWatch (int iUnsetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
virtual unsigned long getGloClassID () const override
virtual int getTypeAsString (std::string &rsTypeName) override
virtual int setGloAttribute (const AttributeID &rAttributeID, void *pPara)
virtual void * getGloAttribute (const AttributeID &rAttributeID)
virtual int setGloAttribute (const std::string &rstrAttributName, void *pPara)
virtual void * getGloAttribute (const std::string &rstrAttributName)
virtual bool isSameOrSuperClassFrom (const glo::Persistent *pPersistent) const
 Checks if passed object can be cast to this.
virtual bool isSameOrSuperClassFrom (const std::shared_ptr< glo::Persistent > pPersistent) const
 Checks if passed object can be cast to this.
Public Member Functions inherited from glo::BasePersistent
 BasePersistent ()
 BasePersistent (const BasePersistent &rT)
virtual int setBase (Base *pBase) override
virtual Base * getBase () const override
virtual int getClassInfo (ClassInfo *&prClassInfo)
virtual unsigned int remember ()
virtual unsigned int forget ()
virtual bool isAssigned () const
unsigned int getLinkCount () const
int getRecord (Record *&prRecord) const
int getRecord (std::shared_ptr< Record > &rRetVal) const
int getAllPersAttributeNames (std::list< std::string > &rRetValList, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributeNamesSortByID (std::map< AttributeID, std::string > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getPersAttribute (BaseRecordAttribute *&prRetVal, const std::string &sName) const
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
int getPersAttribute (BaseRecordAttribute *&prRetVal, const AttributeID &rAttributeID) const
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const AttributeID &rAttributeID) const
int getAllPersAttributes (std::list< BaseRecordAttribute * > &rRetValList, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributes (std::list< std::shared_ptr< BaseRecordAttribute > > &rRetValList, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributesSortByName (std::map< std::string, BaseRecordAttribute *, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributesSortByName (std::map< std::string, std::shared_ptr< BaseRecordAttribute >, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributesSortByID (std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=nullptr) const
int getAllPersAttributesSortByID (std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=nullptr) const
virtual bool isStored ()
virtual bool isDeletedInBase ()
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
virtual int isLocked (const LockSpecification &rLockSpecification) const
virtual int isPossible (bool bRead, bool bWrite, bool bDelete, EnDeepMode eDeepMode=DM_SHALLOW) const
virtual int isPossible (const LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
virtual int getProcessingPossibilities (LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
virtual int setWatch (const WatchSpecification &rWatchSpec)
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
BasePersistentoperator= (const BasePersistent &rT)
bool operator== (const BasePersistent &rT) const
 Comparison operator, all attributes are compared.
bool operator!= (const BasePersistent &rT) const
 Comparison operator, all attributes are compared.
Public Member Functions inherited from glo::CallBack
 CallBack ()
virtual ~CallBack ()
virtual void notify (NotifyNote &rNote)
CallBackoperator= (const CallBack &rT)
bool operator== (const CallBack &rT) const
 Comparison operator, all attributes are compared.
bool operator!= (const CallBack &rT) const
 Comparison operator, all attributes are compared.

Private Member Functions

 GLO_OBJECT (SelfWatchingClass:glo::Persistent)

Private Attributes

bool m_bIsSelfWatching
bool m_bInTheNotifyMethod
bool m_bInDestructor

Additional Inherited Members

Static Public Member Functions inherited from glo::Persistent
static unsigned long getStaticGloClassID ()
static bool isStaticSubClassID (unsigned long ulSubClassID)
static bool isStaticSuperClassID (unsigned long ulSuperClassID)
Public Attributes inherited from glo::CallBack
std::string m_strDebugInfo
Protected Member Functions inherited from glo::Persistent
virtual ~Persistent ()
virtual void insertInObjectSpy () const override
virtual void removeInObjectSpy () const override
virtual void setCreateDate () override
virtual void _postAssign (Base &rBase)
Persistentoperator= (const Persistent &rT)
bool operator== (const Persistent &rT) const
 Comparison operator.
bool operator!= (const Persistent &rT) const
 Comparison operator.
Protected Member Functions inherited from glo::BasePersistent
virtual ~BasePersistent ()
void setSpyaction (bool bSpyaction)
Protected Member Functions inherited from glo::CallBack
 CallBack (const CallBack &rT)
void init ()
void deinit ()
Protected Attributes inherited from glo::BasePersistent
Base * m_pBase
unsigned int m_uiReferenceCount
eut::CriticalSection m_LocalCriticalSection
Record * m_pRecord
bool m_bSpyaction

Detailed Description

Example of a self-observing class that reloads its persistent attributes from the database by calling refresh(), when other instances has change them.

Author
Helmut Jakoby

Constructor & Destructor Documentation

◆ SelfWatchingClass()

SelfWatchingClass::SelfWatchingClass ( )

The attributes are initialized in the constructor.

◆ ~SelfWatchingClass()

virtual SelfWatchingClass::~SelfWatchingClass ( )
virtual

In the destructor the watching is canceled again.

Member Function Documentation

◆ activate()

virtual void SelfWatchingClass::activate ( )
overridevirtual

When the object is loaded from the database, a watching is initiated.

Reimplemented from glo::Persistent.

◆ GLO_OBJECT()

SelfWatchingClass::GLO_OBJECT ( SelfWatchingClass:glo::Persistent )
private

◆ notify()

virtual void SelfWatchingClass::notify ( glo::NotifyNote & rNote)
overridevirtual

This method is called by the database if this object should be notified.

When this object is saved by another instance, a refresh of the attributes from the database is initiated.

Wenn das Objekt von einer anderen Instanz gelöscht wurde, wird das Objekt nicht mehr überwacht.

Parameters
[in]rNoteThe notification information.

◆ postDeleteInBase()

virtual void SelfWatchingClass::postDeleteInBase ( int iDeleteErr,
glo::EnDeepMode eDeepMode,
void * pData )
overridevirtual

Is called in glo::Persistent::deleteInBase(EnDeepMode) after deletion in the database or if deletion fails.

An attempt is made to remove a watching if parameter iDeleteErr == 0.

Parameters
[in]iDeleteErrPossibly a deleting error, if != 0 the deleteing in Persistent::deleteInBase(EnDeepMode) was not performed.
[in]eDeepModeThe deleting depth mode.
[in]pDataData that may ben set in Persistent::preDeleteInBase(EnDeepMode,void**).

◆ postStore()

virtual void SelfWatchingClass::postStore ( int iStoreErr,
glo::EnDeepMode eDeepMode,
void * pData )
overridevirtual

Is called in glo::Persistent::store(EnDeepMode) after storing.

An attempt is made to set a watching if parameter iStoreErr == 0.

Parameters
[in]iStoreErrPossibly a storage error, if != 0 the storing in Persistent::store(EnDeepMode) was not performed.
[in]eDeepModeThe storage depth mode.
[in]pDataData that may ben set in Persistent::preStore(EnDeepMode,void**).

Member Data Documentation

◆ m_bInDestructor

bool SelfWatchingClass::m_bInDestructor
private

Set in the destructor to avoid executing notify(glo::NotifyNote&).

◆ m_bInTheNotifyMethod

bool SelfWatchingClass::m_bInTheNotifyMethod
private

If true, the destructor waits until notify(glo::NotifyNote&) is processed.

◆ m_bIsSelfWatching

bool SelfWatchingClass::m_bIsSelfWatching
private

If true, the object has set a watch on itself.


The documentation for this class was generated from the following file: