15 #ifndef _OsSyncBase_h_ 16 #define _OsSyncBase_h_ 98 # define NUMBER_OF_CRUMBS 6 106 mTrail[mCrumb].operation = crumbCreated;
107 mTrail[mCrumb].taskId = 0;
108 for (
unsigned int crumb=1; crumb < NUMBER_OF_CRUMBS; crumb++ )
110 mTrail[crumb].operation = crumbUnused;
111 mTrail[crumb].taskId = 0;
116 void dropCrumb(
int id, OsSyncOperation op)
118 mCrumb = (mCrumb + 1) % NUMBER_OF_CRUMBS;
119 mTrail[mCrumb].operation = op;
120 mTrail[mCrumb].taskId = id;
121 OsDateTime::getCurTime(mTrail[mCrumb].
time);
127 dropCrumb(0, crumbDeleted);
135 OsSyncOperation operation;
138 } mTrail[NUMBER_OF_CRUMBS];
156 #endif // _OsSyncBase_h_ Base class for the synchronization mechanisms in the OS abstraction layer.
Definition: OsSyncBase.h:46
virtual ~OsSyncBase()
Destructor.
Definition: OsSyncBase.h:53
OsSyncBase & operator=(const OsSyncBase &rhs)
Assignment operator.
time_t __cdecl time(time_t *ptt)
OsStatus
Definition: OsStatus.h:27
virtual OsStatus acquire(const OsTime &rTimeout=OsTime::OS_INFINITY)=0
Block until the sync object is acquired or the timeout expires.
virtual OsStatus release(void)=0
Release the sync object.
OsSyncBase()
Default constructor.
Definition: OsSyncBase.h:144
virtual OsStatus tryAcquire(void)=0
Conditionally acquire the semaphore (i.e., don't block)