This is Unofficial EPICS BASE Doxygen Site
syncGroupWriteNotify Class Reference

#include "syncGroup.h"

+ Inheritance diagram for syncGroupWriteNotify:
+ Collaboration diagram for syncGroupWriteNotify:

Public Types

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

Public Member Functions

void destroy (CallbackGuard &cbGuard, epicsGuard< epicsMutex > &guard)
 
bool ioPending (epicsGuard< epicsMutex > &guard)
 
void begin (epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, const void *pValueIn)
 
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 cacWriteNotify
virtual ~cacWriteNotify ()=0
 
virtual void completion (epicsGuard< epicsMutex > &)=0
 

Static Public Member Functions

static syncGroupWriteNotifyfactory (tsFreeList< class syncGroupWriteNotify, 128, epicsMutexNOOP > &, CASG &, PRecycleFunc, chid)
 

Protected Member Functions

 syncGroupWriteNotify (struct CASG &, PRecycleFunc, chid)
 
virtual ~syncGroupWriteNotify ()
 
- Protected Member Functions inherited from syncGroupNotify
virtual ~syncGroupNotify ()
 
 syncGroupNotify (const syncGroupNotify &)
 
syncGroupNotifyoperator= (const syncGroupNotify &)
 

Additional Inherited Members

- Public Attributes inherited from cacWriteNotify
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 106 of file syncGroup.h.

Member Typedef Documentation

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

Definition at line 109 of file syncGroup.h.

Constructor & Destructor Documentation

syncGroupWriteNotify::syncGroupWriteNotify ( struct CASG sgIn,
PRecycleFunc  pRecycleFuncIn,
chid  pChan 
)
protected

Definition at line 27 of file syncGroupWriteNotify.cpp.

28  :
29  chan ( pChan ), pRecycleFunc ( pRecycleFuncIn ),
30  sg ( sgIn ), magic ( CASG_MAGIC ),
31  id ( 0u ), idIsValid ( false ), ioComplete ( false )
32 {
33 }
syncGroupWriteNotify::~syncGroupWriteNotify ( )
protectedvirtual

Definition at line 73 of file syncGroupWriteNotify.cpp.

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

Member Function Documentation

void syncGroupWriteNotify::begin ( epicsGuard< epicsMutex > &  guard,
unsigned  type,
arrayElementCount  count,
const void *  pValueIn 
)

Definition at line 35 of file syncGroupWriteNotify.cpp.

38 {
39  this->chan->eliminateExcessiveSendBacklog ( guard );
40  this->ioComplete = false;
41  boolFlagManager mgr ( this->idIsValid );
42  this->chan->write ( guard, type, count,
43  pValueIn, *this, &this->id );
44  mgr.release ();
45 }
void write(epicsGuard< epicsMutex > &, unsigned type, arrayElementCount count, const void *pValue, cacWriteNotify &, cacChannel::ioid *pId=0)
void eliminateExcessiveSendBacklog(epicsGuard< epicsMutex > &)
Definition: oldAccess.h:468
void syncGroupWriteNotify::cancel ( CallbackGuard cbGuard,
epicsGuard< epicsMutex > &  guard 
)
virtual

Implements syncGroupNotify.

Definition at line 47 of file syncGroupWriteNotify.cpp.

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

Implements syncGroupNotify.

Definition at line 64 of file syncGroupWriteNotify.cpp.

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

Definition at line 57 of file syncGroupWriteNotify.cpp.

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

Implements syncGroupNotify.

Definition at line 258 of file syncGroup.h.

260 {
261  return ! this->ioComplete;
262 }
void syncGroupWriteNotify::show ( epicsGuard< epicsMutex > &  ,
unsigned  level 
) const
virtual

Implements syncGroupNotify.

Definition at line 108 of file syncGroupWriteNotify.cpp.

110 {
111  ::printf ( "pending write sg op\n" );
112  if ( level > 0u ) {
113  ::printf ( "pending sg op: magic=%u sg=%p\n",
114  this->magic, static_cast < void * > ( &this->sg ) );
115  }
116 }
#define printf
Definition: epicsStdio.h:41

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