This is Unofficial EPICS BASE Doxygen Site
syncGroupReadNotify Class Reference

#include "syncGroup.h"

+ Inheritance diagram for syncGroupReadNotify:
+ Collaboration diagram for syncGroupReadNotify:

Public Types

typedef void(CASG::* PRecycleFunc) (epicsGuard< epicsMutex > &, syncGroupReadNotify &)
 

Public Member Functions

void destroy (CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
 
bool ioPending (epicsGuard< epicsMutex > &guard)
 
void begin (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count)
 
void cancel (CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
 
void show (epicsGuard< epicsMutex > &, unsigned level) const
 
- Public Member Functions inherited from syncGroupNotify
 syncGroupNotify ()
 
- Public Member Functions inherited from tsDLNode< syncGroupNotify >
 tsDLNode ()
 
 tsDLNode (const tsDLNode< syncGroupNotify > &)
 
const tsDLNode< syncGroupNotify > & operator= (const tsDLNode< syncGroupNotify > &)
 
- Public Member Functions inherited from cacReadNotify
virtual ~cacReadNotify ()=0
 
virtual void completion (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, const void *pData)=0
 

Static Public Member Functions

static syncGroupReadNotifyfactory (tsFreeList< class syncGroupReadNotify, 128, epicsMutexNOOP > &, CASG &, PRecycleFunc, chid, void *pValueIn)
 

Protected Member Functions

 syncGroupReadNotify (CASG &sgIn, PRecycleFunc, chid, void *pValueIn)
 
virtual ~syncGroupReadNotify ()
 
- Protected Member Functions inherited from syncGroupNotify
virtual ~syncGroupNotify ()
 
 syncGroupNotify (const syncGroupNotify &)
 
syncGroupNotifyoperator= (const syncGroupNotify &)
 

Additional Inherited Members

- Public Attributes inherited from cacReadNotify
virtual void exception epicsGuard< epicsMutex > int status
 
virtual void exception epicsGuard< epicsMutex > int const char * pContext
 
virtual void exception epicsGuard< epicsMutex > int const char unsigned type
 
virtual void exception epicsGuard< epicsMutex > int const char unsigned arrayElementCount count = 0
 

Detailed Description

Definition at line 61 of file syncGroup.h.

Member Typedef Documentation

typedef void( CASG :: * syncGroupReadNotify::PRecycleFunc) (epicsGuard< epicsMutex > &, syncGroupReadNotify &)

Definition at line 64 of file syncGroup.h.

Constructor & Destructor Documentation

syncGroupReadNotify::syncGroupReadNotify ( CASG sgIn,
PRecycleFunc  pRecycleFuncIn,
chid  pChan,
void *  pValueIn 
)
protected

Definition at line 27 of file syncGroupReadNotify.cpp.

29  :
30  chan ( pChan ), pRecycleFunc ( pRecycleFuncIn ),
31  sg ( sgIn ), pValue ( pValueIn ),
32  magic ( CASG_MAGIC ), id ( 0u ),
33  idIsValid ( false ), ioComplete ( false )
34 {
35 }
syncGroupReadNotify::~syncGroupReadNotify ( )
protectedvirtual

Definition at line 75 of file syncGroupReadNotify.cpp.

76 {
77  assert ( ! this->idIsValid );
78 }
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70

Member Function Documentation

void syncGroupReadNotify::begin ( epicsGuard< epicsMutex > &  guard,
unsigned  type,
arrayElementCount  count 
)

Definition at line 37 of file syncGroupReadNotify.cpp.

40 {
41  this->chan->eliminateExcessiveSendBacklog ( guard );
42  this->ioComplete = false;
43  boolFlagManager mgr ( this->idIsValid );
44  this->chan->read ( guard, type, count, *this, &this->id );
45  mgr.release ();
46 }
void eliminateExcessiveSendBacklog(epicsGuard< epicsMutex > &)
Definition: oldAccess.h:468
void read(epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, cacReadNotify &notify, cacChannel::ioid *pId=0)
void syncGroupReadNotify::cancel ( CallbackGuard cbGuard,
epicsGuard< epicsMutex > &  guard 
)
virtual

Implements syncGroupNotify.

Definition at line 48 of file syncGroupReadNotify.cpp.

51 {
52  if ( this->idIsValid ) {
53  this->chan->ioCancel ( callbackGuard, mutualExcusionGuard, this->id );
54  this->idIsValid = false;
55  }
56 }
void ioCancel(CallbackGuard &callbackGuard, epicsGuard< epicsMutex > &mutualExclusionGuard, const cacChannel::ioid &)
Definition: oldAccess.h:453
void syncGroupReadNotify::destroy ( CallbackGuard cbGuard,
epicsGuard< epicsMutex > &  guard 
)
virtual

Implements syncGroupNotify.

Definition at line 66 of file syncGroupReadNotify.cpp.

69 {
70  CASG & sgRef ( this->sg );
71  this->~syncGroupReadNotify ();
72  ( sgRef.*pRecycleFunc ) ( guard, *this );
73 }
syncGroupReadNotify * syncGroupReadNotify::factory ( tsFreeList< class syncGroupReadNotify, 128, epicsMutexNOOP > &  freeList,
CASG sg,
PRecycleFunc  pRecycleFunc,
chid  chan,
void *  pValueIn 
)
static

Definition at line 58 of file syncGroupReadNotify.cpp.

61 {
62  return new ( freeList )
63  syncGroupReadNotify ( sg, pRecycleFunc, chan, pValueIn );
64 }
bool syncGroupReadNotify::ioPending ( epicsGuard< epicsMutex > &  guard)
inlinevirtual

Implements syncGroupNotify.

Definition at line 264 of file syncGroup.h.

266 {
267  return ! this->ioComplete;
268 }
void syncGroupReadNotify::show ( epicsGuard< epicsMutex > &  ,
unsigned  level 
) const
virtual

Implements syncGroupNotify.

Definition at line 118 of file syncGroupReadNotify.cpp.

120 {
121  ::printf ( "pending sg read op: pVal=%p\n", this->pValue );
122  if ( level > 0u ) {
123  ::printf ( "pending sg op: magic=%u sg=%p\n",
124  this->magic, static_cast < void * > ( & this->sg ) );
125  }
126 }
#define printf
Definition: epicsStdio.h:41

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