#include "syncGroup.h"
|
| CASG (epicsGuard< epicsMutex > &, ca_client_context &cacIn) |
|
void | destructor (CallbackGuard &, epicsGuard< epicsMutex > &guard) |
|
bool | ioComplete (CallbackGuard &, epicsGuard< epicsMutex > &guard) |
|
bool | verify (epicsGuard< epicsMutex > &) const |
|
int | block (epicsGuard< epicsMutex > *pcbGuard, epicsGuard< epicsMutex > &guard, double timeout) |
|
void | reset (CallbackGuard &, epicsGuard< epicsMutex > &) |
|
void | show (epicsGuard< epicsMutex > &, unsigned level) const |
|
void | show (unsigned level) const |
|
void | get (epicsGuard< epicsMutex > &, chid pChan, unsigned type, arrayElementCount count, void *pValue) |
|
void | put (epicsGuard< epicsMutex > &, chid pChan, unsigned type, arrayElementCount count, const void *pValue) |
|
void | completionNotify (epicsGuard< epicsMutex > &, syncGroupNotify &) |
|
int | printFormated (const char *pFormat,...) |
|
void * | operator new (size_t size, tsFreeList< struct CASG, 128, epicsMutexNOOP > &) |
|
void | destroyPendingIO (CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard) |
|
void | destroyCompletedIO (CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard) |
|
void | recycleReadNotifyIO (epicsGuard< epicsMutex > &, syncGroupReadNotify &) |
|
void | recycleWriteNotifyIO (epicsGuard< epicsMutex > &, syncGroupWriteNotify &) |
|
| CASG (const CASG &) |
|
CASG & | operator= (const CASG &) |
|
void | operator delete (void *) |
|
| ~CASG () |
|
| chronIntIdRes () |
|
| chronIntId (const unsigned &idIn) |
|
| intId (const unsigned &idIn) |
|
bool | operator== (const intId &idIn) const |
|
resTableIndex | hash () const |
|
const unsigned | getId () const |
|
| tsSLNode () |
|
tsSLNode< CASG > & | operator= (const tsSLNode< CASG > &) |
|
Definition at line 152 of file syncGroup.h.
Definition at line 27 of file CASG.cpp.
30 client.installCASG ( guard, *
this );
ca_client_context & client
CASG::CASG |
( |
const CASG & |
| ) |
|
int CASG::block |
( |
epicsGuard< epicsMutex > * |
pcbGuard, |
|
|
epicsGuard< epicsMutex > & |
guard, |
|
|
double |
timeout |
|
) |
| |
Definition at line 62 of file CASG.cpp.
85 cur_time = epicsTime::getCurrent ();
87 this->
client.flush ( guard );
93 if ( this->ioPendingList.count() == 0u ) {
112 this->
sem.wait ( remaining );
117 this->
sem.wait ( remaining );
123 cur_time = epicsTime::getCurrent ();
125 delay = cur_time - beg_time;
LIBCOM_API void *epicsStdCall epicsThreadPrivateGet(epicsThreadPrivateId)
void assertIdenticalMutex(const T &) const
epicsThreadPrivateId caClientCallbackThreadId
void exception epicsGuard< epicsMutex > int status
#define CAC_SIGNIFICANT_DELAY
Definition at line 233 of file CASG.cpp.
237 this->ioPendingList.remove ( notify );
239 if ( this->ioPendingList.count () == 0u ) {
void assertIdenticalMutex(const T &) const
epicsPlacementDeleteOperator((void *, tsFreeList< struct CASG, 128, epicsMutexNOOP > &)) private tsDLList< syncGroupNotify ioCompletedList)
Definition at line 141 of file CASG.cpp.
148 pNotify->
destroy ( cbGuard, guard );
void assertIdenticalMutex(const T &) const
virtual void destroy(CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)=0
epicsPlacementDeleteOperator((void *, tsFreeList< struct CASG, 128, epicsMutexNOOP > &)) private tsDLList< syncGroupNotify ioCompletedList)
Definition at line 152 of file CASG.cpp.
158 pNotify->cancel ( cbGuard, guard );
162 if ( pNotify->ioPending ( guard ) ) {
163 this->ioPendingList.remove ( *pNotify );
168 pNotify->destroy ( cbGuard, guard );
void assertIdenticalMutex(const T &) const
epicsPlacementDeleteOperator((void *, tsFreeList< struct CASG, 128, epicsMutexNOOP > &)) private tsDLList< syncGroupNotify ioCompletedList)
Definition at line 37 of file CASG.cpp.
43 if ( this->
verify ( guard ) ) {
44 this->
reset ( cbGuard, guard );
45 this->
client.uninstallCASG ( guard, *
this );
49 this->
printFormated (
"cac: attempt to destroy invalid sync group ignored\n" );
void reset(CallbackGuard &, epicsGuard< epicsMutex > &)
void assertIdenticalMutex(const T &) const
bool verify(epicsGuard< epicsMutex > &) const
int printFormated(const char *pFormat,...)
Definition at line 222 of file CASG.cpp.
tsFreeList< class syncGroupReadNotify, 128, epicsMutexNOOP > freeListReadOP
static syncGroupReadNotify * factory(tsFreeList< class syncGroupReadNotify, 128, epicsMutexNOOP > &, CASG &, PRecycleFunc, chid, void *pValueIn)
void assertIdenticalMutex(const T &) const
void exception epicsGuard< epicsMutex > int const char const char unsigned oldChannelNotify unsigned type
void recycleReadNotifyIO(epicsGuard< epicsMutex > &, syncGroupReadNotify &)
void exception epicsGuard< epicsMutex > int const char const char unsigned oldChannelNotify unsigned arrayElementCount count
Definition at line 202 of file CASG.cpp.
208 return this->ioPendingList.count () == 0u;
void assertIdenticalMutex(const T &) const
void destroyCompletedIO(CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
void CASG::operator delete |
( |
void * |
| ) |
|
Definition at line 298 of file CASG.cpp.
305 errlogPrintf (
"%s:%d this compiler is confused about placement delete - memory was probably leaked",
306 __FILE__, __LINE__ );
int errlogPrintf(const char *pFormat,...)
Definition at line 244 of file syncGroup.h.
void * allocate(size_t size)
int CASG::printFormated |
( |
const char * |
pFormat, |
|
|
|
... |
|
) |
| |
Definition at line 258 of file CASG.cpp.
263 va_start ( theArgs, pformat );
265 status = this->
client.varArgsPrintFormated ( pformat, theArgs );
void exception epicsGuard< epicsMutex > int status
Definition at line 211 of file CASG.cpp.
218 pNotify->begin ( guard,
type,
count, pValue );
void assertIdenticalMutex(const T &) const
void exception epicsGuard< epicsMutex > int const char const char unsigned oldChannelNotify unsigned type
static syncGroupWriteNotify * factory(tsFreeList< class syncGroupWriteNotify, 128, epicsMutexNOOP > &, CASG &, PRecycleFunc, chid)
void exception epicsGuard< epicsMutex > int const char const char unsigned oldChannelNotify unsigned arrayElementCount count
void recycleWriteNotifyIO(epicsGuard< epicsMutex > &, syncGroupWriteNotify &)
tsFreeList< class syncGroupWriteNotify, 128, epicsMutexNOOP > freeListWriteOP
Definition at line 244 of file CASG.cpp.
tsFreeList< class syncGroupReadNotify, 128, epicsMutexNOOP > freeListReadOP
void assertIdenticalMutex(const T &) const
Definition at line 251 of file CASG.cpp.
void assertIdenticalMutex(const T &) const
tsFreeList< class syncGroupWriteNotify, 128, epicsMutexNOOP > freeListWriteOP
Definition at line 131 of file CASG.cpp.
void assertIdenticalMutex(const T &) const
void destroyPendingIO(CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
void destroyCompletedIO(CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
void CASG::show |
( |
epicsGuard< epicsMutex > & |
guard, |
|
|
unsigned |
level |
|
) |
| const |
Definition at line 178 of file CASG.cpp.
182 ::printf (
"Sync Group: id=%u, magic=%u, opPend=%u\n",
183 this->
getId (), this->
magic, this->ioPendingList.count () );
187 this->ioPendingList.firstIter ();
188 while ( notifyPending.
valid () ) {
189 notifyPending->
show ( guard, level - 1u );
195 while ( notifyCompleted.
valid () ) {
196 notifyCompleted->
show ( guard, level - 1u );
void assertIdenticalMutex(const T &) const
const unsigned getId() const
virtual void show(epicsGuard< epicsMutex > &, unsigned level) const =0
epicsPlacementDeleteOperator((void *, tsFreeList< struct CASG, 128, epicsMutexNOOP > &)) private tsDLList< syncGroupNotify ioCompletedList)
void CASG::show |
( |
unsigned |
level | ) |
const |
Definition at line 172 of file CASG.cpp.
175 this->
show ( guard, level );
void show(epicsGuard< epicsMutex > &, unsigned level) const
bool CASG::verify |
( |
epicsGuard< epicsMutex > & |
| ) |
const |
Definition at line 54 of file CASG.cpp.
56 return ( this->
magic == CASG_MAGIC );
void exception epicsGuard< epicsMutex > int const char const char unsigned CASG::lineNo |
void exception epicsGuard< epicsMutex > int const char * CASG::pContext |
void exception epicsGuard< epicsMutex > int const char const char * CASG::pFileName |
void exception epicsGuard< epicsMutex > int CASG::status |
The documentation for this struct was generated from the following files: