DABC (Data Acquisition Backbone Core)
2.9.9
|
Base class for user-derived code, implementing main loop. More...
#include <dabc/ModuleSync.h>
Public Member Functions | |
virtual const char * | ClassName () const |
Returns class name. More... | |
Public Member Functions inherited from dabc::Module | |
std::string | GetInfoParName () const |
Public Member Functions inherited from dabc::Worker | |
bool | ActivateTimeout (double tmout_sec) |
Method used to produce timeout events in the worker. More... | |
Command | Assign (Command cmd) |
! Assign command with processor before command be submitted to other processor This produce ReplyCommand() call when command execution is finished Command itself returned if operation was successful, otherwise null() command More... | |
void | AssignAddon (WorkerAddon *addon) |
Assigns addon to the worker Should be called before worker assigned to the thread. More... | |
bool | AssignToThread (ThreadRef thrd, bool sync=true) |
Assign worker to thread, worker becomes active immediately. More... | |
bool | CanSubmitCommand () const |
Returns true if command can be submitted to worker. More... | |
RecordField | Cfg (const std::string &name, Command cmd=nullptr) const |
Returns configuration field of specified name Configuration value of specified name searched in following places: More... | |
bool | DettachFromThread () |
Detach worker from the thread, later worker can be assigned to some other thread Method especially useful to normally finish object recursion (if it possible). More... | |
bool | Execute (Command cmd, double tmout=-1.) |
Execute command in the processor. More... | |
bool | Execute (const std::string &cmd, double tmout=-1.) |
bool | HasThread () const |
Indicates if pointer on thread is not zero; thread-safe. More... | |
bool | IsOwnThread () const |
Returns true if called from thread. More... | |
bool | MakeThreadForWorker (const std::string &thrdname="") |
Creates appropriate thread for worker and assign worker to the thread. More... | |
Parameter | Par (const std::string &name) const |
Returns reference on worker parameter object. More... | |
virtual std::string | RequiredThrdClass () const |
Method returns name of required thread class for processor. More... | |
void | SetWorkerPriority (int nq) |
bool | Submit (Command cmd) |
Submit command for execution in the processor. More... | |
ThreadRef | thread () |
Return reference on the worker thread; thread-safe. More... | |
std::string | ThreadName () const |
Returns name of the worker thread; thread-safe More... | |
Worker (Reference parent, const std::string &name) | |
std::string | WorkerAddress (bool full=true) |
Return address, which can be used to submit command to the worker If full specified, command can be submitted from any node, which has connection to this node. More... | |
uint32_t | WorkerId () const |
int | WorkerPriority () const |
virtual | ~Worker () |
Public Member Functions inherited from dabc::Object | |
bool | AddChild (Object *child, bool withmutex=true) throw () |
Add object to list of child objects, thread safe More... | |
bool | AddChildAt (Object *child, unsigned pos, bool withmutex=true) |
Add object to list of child objects at specified position. More... | |
Object * | FindChild (const char *name) const |
returns pointer on child object with given name More... | |
Reference | FindChildRef (const char *name, bool force=false) const throw () |
returns reference on child object with given name More... | |
bool | GetAllChildRef (ReferencesVector *vect) const |
Object * | GetChild (unsigned n) const |
returns pointer on child object More... | |
Reference | GetChildRef (unsigned n) const |
returns reference on child object More... | |
Reference | GetFolder (const std::string &name, bool force=false) throw () |
Return folder of specified name, no special symbols allowed. More... | |
const char * | GetName () const |
Returns name of the object, thread safe More... | |
Object * | GetParent () const |
Returns pointer on parent object, thread safe More... | |
Reference | GetParentRef () const |
bool | IsChildsHidden () const |
Return true if object wants to hide childs from hierarchy scan, thread safe More... | |
bool | IsHidden () const |
Return true if object wants to be hidden from hierarchy scan, thread safe More... | |
bool | IsLogging () const |
Return true if object selected for logging, thread safe More... | |
bool | IsName (const char *str) const |
Checks if object name is same as provided string, thread safe More... | |
bool | IsName (const char *str, int len) const |
Checks if object name is same as provided, thread safe More... | |
bool | IsName (const std::string &str) const |
Checks if object name is same as provided string, thread safe More... | |
bool | IsNameMatch (const std::string &mask) const |
Check if object name match to the mask. More... | |
bool | IsOwner () const |
Returns true if object is owner of its children, thread safe More... | |
bool | IsParent (Object *obj) const |
Checks if specified argument is in the list of object parents. More... | |
bool | IsTopXmlLevel () const |
Return true if object should be searched in the top level of the xml file, thread safe More... | |
std::string | ItemName (bool compact=true) const |
Produce string, which can be used as name argument in dabc::mgr.FindItem(name) call. More... | |
unsigned | NumChilds () const |
returns number of child objects More... | |
Object (const std::string &name, unsigned flags=flIsOwner) | |
Resolve problem with child-parent mutex locking. More... | |
Object (Reference parent, const std::string &name, unsigned flags=flIsOwner) | |
virtual void | Print (int lvl=0) |
Print object content on debug output. More... | |
bool | RemoveChild (Object *child, bool cleanup=true) throw () |
Detach child from parent object If cleanup==true and parent is owner of child, child will be destroyed. More... | |
bool | RemoveChildAt (unsigned n, bool cleanup=true) throw () |
Detach child object from parent at specified position If cleanup==true and object is owner of child, child will be destroyed. More... | |
bool | RemoveChilds (bool cleanup=true) |
Remove all childs. More... | |
void | SetLogging (bool on=true) |
Sets logging flag, thread safe More... | |
virtual | ~Object () |
Protected Member Functions | |
bool | CanRecv (unsigned indx=0) const |
Method return true if receiving from specified port can be done. More... | |
bool | IsDisconnectExcept () const |
Returns true if disconnect exception should be generated by module. More... | |
bool | IsSyncCommands () const |
Returns true if commands should be executed synchronous in main loop. More... | |
bool | IsTmoutExcept () const |
Returns true if timeout exception generation is configured. More... | |
virtual void | MainLoop ()=0 |
Main execution function of SyncModule. More... | |
ModuleSync (const std::string &name, Command cmd=nullptr) | |
Normal constructor. More... | |
bool | ModuleWorking (double timeout=0.) |
Returns true when module in running state. More... | |
virtual void | ObjectCleanup () |
Internal DABC method. More... | |
Buffer | Recv (unsigned indx=0, double timeout=-1) |
Receive buffer from input port. More... | |
Buffer | RecvFromAny (unsigned *port=0, double timeout=-1) |
Receive buffer from any input port. More... | |
bool | Send (Buffer &buf, double timeout=-1) |
Send buffer via first output port. More... | |
bool | Send (unsigned indx, Buffer &buf, double timeout=-1) |
Send buffer via specified output port. More... | |
void | SetDisconnectExcept (bool on=true) |
Set if disconnect exception should be generated by module. More... | |
void | SetSyncCommands (bool on=true) |
Set if commands should be executed synchronous in main loop. More... | |
void | SetTmoutExcept (bool on=true) |
Set if exception should be generated when any operation is timeout. More... | |
void | StopUntilRestart () |
Call this method from main loop if one want suspend of module execution until new Start of the module is called from outside. More... | |
Buffer | TakeBuffer (unsigned pool=0, double timeout=-1) |
Take buffer from memory pool. More... | |
bool | WaitConnect (const std::string &name, double timeout=-1) |
Waits for connection for specified port. More... | |
uint16_t | WaitEvent (double timeout=-1) |
Waits for any event. More... | |
bool | WaitInput (unsigned indx, unsigned minqueuesize=1, double timeout=-1) |
Waits until input port has specified number of buffers in the queue. More... | |
virtual | ~ModuleSync () |
Destructor. More... | |
Protected Member Functions inherited from dabc::Module | |
virtual void | AfterModuleStop () |
virtual void | BeforeModuleStart () |
bool | BindPorts (const std::string &inpname, const std::string &outname) |
Bind input and output ports that both will share same connection. More... | |
virtual void | BuildFieldsMap (RecordFieldsMap *cont) |
Fill fields map, which is relevant for the object Objects hierarchy produced from dabc::Manager. More... | |
bool | CanSendToAllOutputs (bool exclude_disconnected=true) const |
EventId | ConstructUserItemEvent (unsigned indx=0) |
unsigned | CreateInput (const std::string &name, unsigned queue=10) |
unsigned | CreateOutput (const std::string &name, unsigned queue=10) |
virtual Parameter | CreatePar (const std::string &name, const std::string &kind="") |
unsigned | CreatePoolHandle (const std::string &poolname, unsigned queue=10) |
Creates handle for memory pool, which preserves reference on memory pool and provides fast access to memory pool functionality. More... | |
unsigned | CreateTimer (const std::string &name, double period_sec=-1., bool synchron=false) |
unsigned | CreateUserItem (const std::string &name) |
void | DisconnectAllPorts (bool witherr=false) |
Method disconnects all module ports, should be called only from Module thread. More... | |
bool | DisconnectPort (const std::string &name, bool witherr=false) |
Disconnect port from transport. More... | |
virtual bool | DoStart () |
virtual bool | DoStop () |
void | EnsurePorts (unsigned numinp=0, unsigned numout=0, const std::string &poolname="") |
Method ensure that at least specified number of input and output ports will be created. More... | |
virtual int | ExecuteCommand (Command cmd) |
Main method where commands are executed. More... | |
virtual bool | Find (ConfigIO &cfg) |
Method to locate object in xml file. More... | |
unsigned | FindInput (const std::string &name) const |
unsigned | FindOutput (const std::string &name) const |
unsigned | FindPool (const std::string &name) const |
PortRef | FindPort (const std::string &name) const |
unsigned | FindTimer (const std::string &name) |
unsigned | FindUserItem (const std::string &name) |
ModuleItem * | GetItem (unsigned id) const |
std::string | InputName (unsigned indx=0, bool fullname=false) const |
unsigned | InputQueueCapacity (unsigned indx=0) const |
bool | InputQueueFull (unsigned indx=0) const |
bool | IsAutoPool (unsigned indx=0) const |
Returns true when handle automatically delivers buffers via the connection. More... | |
bool | IsInputConnected (unsigned indx=0) const |
bool | IsOutputConnected (unsigned indx=0) const |
bool | IsPoolConnected (unsigned indx=0) const |
bool | IsPortConnected (const std::string &name) const |
bool | IsRunning () const |
Returns true if module if running. More... | |
bool | IsValidInput (unsigned indx=0) const |
bool | IsValidOutput (unsigned indx=0) const |
bool | IsValidPool (unsigned indx=0) const |
bool | IsValidTimer (unsigned indx) const |
bool | IsValidUserItem (unsigned indx) const |
virtual void | ModuleCleanup () |
Method, which can be reimplemented by user and should cleanup all references on buffers and other objects. More... | |
unsigned | NumInputs () const |
unsigned | NumOutputs () const |
unsigned | NumPools () const |
unsigned | NumTimers () const |
virtual void | OnThreadAssigned () |
std::string | OutputName (unsigned indx=0, bool fullname=false) const |
unsigned | OutputQueueCapacity (unsigned indx=0) const |
std::string | PoolName (unsigned indx=0, bool fullname=false) const |
unsigned | PortQueueCapacity (const std::string &name) const |
virtual void | ProcessConnectionActivated (const std::string &name, bool on) |
virtual void | ProcessEvent (const EventId &) |
virtual double | ProcessTimeout (double last_diff) |
void | ProduceInputEvent (unsigned indx=0, unsigned cnt=1) |
void | ProduceOutputEvent (unsigned indx=0, unsigned cnt=1) |
void | ProducePoolEvent (unsigned indx=0, unsigned cnt=1) |
void | ProduceUserItemEvent (unsigned indx=0, unsigned cnt=1) |
virtual bool | ReplyCommand (Command cmd) |
Reimplement this method to react on command reply Return true if command can be destroyed by framework. More... | |
void | SendToAllOutputs (Buffer &buf) |
void | SetAutoStop (bool on=true) |
If set, module will be automatically stopped when all i/o ports are disconnected. More... | |
void | SetInfoParName (const std::string &name) |
virtual void | SetModulePriority (int pri=-1) |
bool | SetPortLoopLength (const std::string &name, unsigned cnt) |
bool | SetPortRatemeter (const std::string &name, const Parameter &ref) |
bool | SetPortSignaling (const std::string &name, Port::EventsProducing signal) |
void | ShootTimer (const std::string &name, double delay_sec=0.) |
void | ShootTimer (unsigned indx, double delay_sec=0.) |
bool | Start () |
Starts execution of the module code. More... | |
bool | Stop () |
Stops execution of the module code. More... | |
bool | SubmitCommandToTransport (const std::string &portname, Command cmd) |
Submits command to transport, assigned with the port. More... | |
std::string | TimerName (unsigned n=0, bool fullname=false) const |
std::string | UserItemName (unsigned indx=0, bool fullname=false) const |
Protected Member Functions inherited from dabc::Worker | |
bool | _FireDoNothingEvent () |
bool | _FireEvent (uint16_t evid) |
bool | _FireEvent (uint16_t evid, uint32_t arg, int pri=-1) |
bool | _IsFireEvent () const |
bool | ActivateMainLoop () |
virtual void | BeforeHierarchyScan (Hierarchy &h) |
Method called before publisher makes next snapshot of hierarchy. More... | |
void | CancelCommands () |
void | CleanupPublisher (bool sync=true) |
Release reference on publisher and unsubscribe/unpublish all registered entries. More... | |
CommandDefinition | CreateCmdDef (const std::string &name) |
virtual bool | DestroyByOwnThread () |
Inherited method from Object, invoked at the moment when worker requested to be destroyed by its thread. More... | |
bool | DestroyPar (const std::string &name) |
Method must be used if worker wants to destroy parameter. More... | |
bool | ExecuteIn (Worker *dest, Command cmd) |
Executes command in specified worker. More... | |
bool | FireEvent (uint16_t evid) |
bool | FireEvent (uint16_t evid, uint32_t arg, int pri=-1) |
Reference | GetPublisher () |
Return reference on publisher. More... | |
bool | IsWorkerActive () const |
Method indicates if worker is running in the thread and accepts normal events. More... | |
virtual void | ObjectDestroyed (Object *) |
Method to clear object reference, will be called from thread context (when possible) More... | |
virtual void | ProcessParameterEvent (const ParameterEvent &evnt) |
Interface method to retrieve subscribed parameter events. More... | |
virtual bool | Publish (const Hierarchy &h, const std::string &path) |
virtual bool | PublishPars (const std::string &path) |
bool | RegisterForParameterEvent (const std::string &mask, bool onlychangeevent=true) |
Subscribe to parameter events from local or remote node. More... | |
void | SetParValue (const std::string &name, const RecordField &v) |
Set parameter value and sync with worker hierarchy. More... | |
void | SetWorkerCfgId (int id=-1) |
Set identifier which can be used in XML configuration ${}# formula It means that correspondent to the ID element of array will be extracted. More... | |
bool | SingleLoop (double tmout) |
virtual bool | Subscribe (const std::string &path) |
virtual bool | Unpublish (const Hierarchy &h, const std::string &path) |
bool | UnregisterForParameterEvent (const std::string &mask) |
Unsubscribe to parameter events from local or remote node. More... | |
virtual bool | Unsubscribe (const std::string &path) |
Worker (const ConstructorPair &pair) | |
Special constructor, designed for inherited classes. More... | |
void | WorkerSleep (double tmout) |
Protected Member Functions inherited from dabc::Object | |
virtual void | _ChildsChanged () |
Method called when new childs are add or old are removed. More... | |
virtual bool | _DoDeleteItself () |
This method is called at the moment when DecReference think that object can be destroyed and wants to return true. More... | |
bool | _IsNormalState () |
Same as IsNormalState() but without mutex lock - user should lock mutex himself. More... | |
virtual Object * | CreateInstance (const std::string &name) |
Method used to create new item to be placed as child of the object. More... | |
void | DeleteThis () |
Method should be used by the object to delete itself. More... | |
bool | DestroyCalledFromOwnThread () |
Internal DABC method, should be called by thread which was requested to destroy object. More... | |
void | FillFullName (std::string &fullname, Object *upto, bool exclude_top_parent=false) const |
Method used to produce full item name,. More... | |
bool | GetFlag (unsigned fl) const |
Return value of selected flag, not thread safe More... | |
bool | IsNormalState () |
Return true if object is in normal state. More... | |
unsigned | NumReferences () |
Return number of references on the object. More... | |
Object (const ConstructorPair &pair, unsigned flags=flIsOwner) | |
Mutex * | ObjectMutex () const |
Returns mutex, used for protection of Object data members. More... | |
void | SetAutoDestroy (bool on=true) |
Set autodestroy flag for the object Once enabled, object will be destroyed when last reference will be cleared. More... | |
void | SetFlag (unsigned fl, bool on=true) |
Change value of selected flag, not thread safe More... | |
void | SetName (const char *name) |
Changes object name. More... | |
void | SetNameDirect (const char *name) |
Changes object name disregard of existing references. More... | |
void | SetOwner (bool on=true) |
Specifies if object will be owner of its new childs. More... | |
Private Member Functions | |
void | AsyncProcessCommands () |
Internal - process commands which are submitted to sync queue. More... | |
virtual void | DoWorkerAfterMainLoop () |
Internal - function executed after leaving main loop. More... | |
virtual void | DoWorkerMainLoop () |
Internal - entrance function for main loop execution. More... | |
virtual int | PreviewCommand (Command cmd) |
Internal - preview command before execution. More... | |
virtual void | ProcessItemEvent (ModuleItem *item, uint16_t evid) |
Internal - central method of events processing. More... | |
bool | WaitItemEvent (double &tmout, ModuleItem *item=0, uint16_t *resevid=0, ModuleItem **resitem=0) |
Private Attributes | |
bool | fDisconnectExcept |
Flag indicates if disconnect exception should be generated. More... | |
bool | fInsideMainLoop |
Flag indicates if main loop is executing. More... | |
CommandsQueue * | fNewCommands |
List of commands, submitted to the module. More... | |
bool | fSyncCommands |
Flag indicates if commands will be executed synchronously. More... | |
bool | fTmoutExcept |
Flag indicates if timeout exception should be generated. More... | |
uint16_t | fWaitId |
Internal variable, used in wait event. More... | |
ModuleItem * | fWaitItem |
Current item, waiting for the event. More... | |
bool | fWaitRes |
Result of event waiting. More... | |
Additional Inherited Members | |
Public Types inherited from dabc::Worker | |
enum | EPriotiryLevels { priorityMaximum = 0 , priorityMinimum = -1 , priorityDefault = -7 , priorityMagic = -77 } |
enum | EWorkerEventsCodes { evntFirstCore = 1 , evntFirstAddOn = 100 , evntFirstSystem = 200 , evntFirstUser = 1000 } |
Static Public Member Functions inherited from dabc::Worker | |
static int | cmd_bool (bool v) |
Static Public Member Functions inherited from dabc::Object | |
static void | Destroy (Object *obj) throw () |
User method for object destroyment. More... | |
static void | InspectGarbageCollector () |
\ brief Methods to inspect how many objects pointers are remained More... | |
static bool | NameMatch (const std::string &name, const std::string &mask) |
Check if name matches to specified mask. More... | |
static bool | NameMatchM (const std::string &name, const std::string &mask) |
Check if name matches to specified mask. More... | |
static unsigned | NumInstances () |
Static variable counts total number of objects instances. More... | |
Protected Types inherited from dabc::Object | |
enum | EFlags { flStateMask = 0x000f , flIsOwner = 0x0010 , flCleanup = 0x0020 , flHasThread = 0x0040 , flAutoDestroy = 0x0080 , flLogging = 0x0100 , flNoMutex = 0x0200 , flHidden = 0x0400 , flChildsHidden = 0x0800 , flTopXmlLevel = 0x1000 } |
Static Protected Member Functions inherited from dabc::Object | |
static ConstructorPair | MakePair (const std::string &fullname, bool withmanager=true) |
Internal DABC method, used to produce pair - object parent and object name, which is typically should be used as argument in class constructor. More... | |
static ConstructorPair | MakePair (Object *prnt, const std::string &fullname, bool withmanager=true) |
Internal DABC method, used to produce pair - object parent and object name, which is typically should be used as argument in class constructor. More... | |
static ConstructorPair | MakePair (Reference prnt, const std::string &fullname, bool withmanager=true) |
Internal DABC method, used to produce pair - object parent and object name, which is typically should be used as argument in class constructor. More... | |
Protected Attributes inherited from dabc::Module | |
bool | fAutoStop |
module will automatically stop when all i/o ports will be disconnected More... | |
dabc::Reference | fDfltPool |
direct reference on memory pool, used when no pool handles are not created More... | |
std::string | fInfoParName |
full name of parameter, used as info More... | |
std::vector< InputPort * > | fInputs |
array of input ports More... | |
std::vector< ModuleItem * > | fItems |
map for fast search of module items More... | |
std::vector< OutputPort * > | fOutputs |
array of output ports More... | |
std::vector< PoolHandle * > | fPools |
array of pools More... | |
std::string | fPublishPars |
path where module pars will be published More... | |
bool | fRunState |
true if module in the running state More... | |
unsigned | fSysTimerIndex |
index of timer, which will be used with module itself More... | |
std::vector< Timer * > | fTimers |
array of timers More... | |
std::vector< ModuleItem * > | fUsers |
array of user items More... | |
Protected Attributes inherited from dabc::Worker | |
WorkerAddonRef | fAddon |
extension of worker for some special events More... | |
Reference | fPublisher |
reference on publisher, once found, remain until end of object live More... | |
ThreadRef | fThread |
reference on the thread, once assigned remain whole time More... | |
Mutex * | fThreadMutex |
pointer on main thread mutex More... | |
bool | fWorkerActive |
indicates if worker can submit events to the thread More... | |
int | fWorkerCfgId |
special ID, can be used in XML configuration in ${}# formula More... | |
CommandsQueue | fWorkerCommands |
all kinds of commands, processed by the worker More... | |
int | fWorkerCommandsLevel |
Number of process commands recursion. More... | |
unsigned | fWorkerFiredEvents |
indicate current balance between fired and processed events, used to correctly halt worker More... | |
Hierarchy | fWorkerHierarchy |
place for publishing of worker parameters More... | |
uint32_t | fWorkerId |
worker id in thread list, used for events submit More... | |
int | fWorkerPriority |
priority of events, submitted by worker to the thread More... | |
Protected Attributes inherited from dabc::Object | |
int | fObjectBlock |
counter for blocking calls, as long as non-zero, non of child can be removed More... | |
ReferencesVector * | fObjectChilds |
list of the child objects More... | |
unsigned | fObjectFlags |
flag, protected by the mutex More... | |
Mutex * | fObjectMutex |
mutex protects all private property of the object More... | |
std::string | fObjectName |
object name More... | |
Reference | fObjectParent |
reference on the parent object More... | |
int | fObjectRefCnt |
accounts how many references existing on the object, thread safe More... | |
Base class for user-derived code, implementing main loop.
Allows to use explicit main loop of the module Provides blocking operation (Recv, Send, TakeBuffer, ...) with timeouts. If timeout is happening, either exception is produced or function returns with false result. One can specify usage of timeout exception by SetTmoutExcept() method (default - false). Another source of exceptions - disconnecting of module ports. Will be produced when port, used in operation (Send or Recv), disconnected. Execution of module main loop can be suspended by Stop() function and resumed again by Start() function. This can only happens in some of ModuleSync methods like Send, TakeBuffer and so on. In case when module is destroyed, MainLoop will be leaved by stop exception Exception::IsStop(). User can catch this exception, but MUST throw it again that module can be safely deleted afterwards. Typical MainLoop of the ModuleSync should look like this:
ModuleWorking() function tests if module should continue to work, and will execute commands, submitted to module. To execute commands immediately, synchron modus must be specified by SetSyncCommands(true) call. In case when main loop contains no any methods like Recv or Send, it will consume 100% of CPU resources, therefore one better should use WaitEvent() call for waiting on any events which may happen in module.
Definition at line 60 of file ModuleSync.h.
|
protected |
Normal constructor.
Definition at line 18 of file ModuleSync.cxx.
|
protectedvirtual |
Destructor.
Definition at line 31 of file ModuleSync.cxx.
|
privatevirtual |
Internal - entrance function for main loop execution.
Reimplemented from dabc::Worker.
Definition at line 334 of file ModuleSync.cxx.
|
privatevirtual |
Internal - function executed after leaving main loop.
Reimplemented from dabc::Worker.
Definition at line 350 of file ModuleSync.cxx.
|
private |
Definition at line 291 of file ModuleSync.cxx.
|
private |
Internal - process commands which are submitted to sync queue.
Definition at line 260 of file ModuleSync.cxx.
|
privatevirtual |
Internal - preview command before execution.
Reimplemented from dabc::Module.
Definition at line 195 of file ModuleSync.cxx.
|
privatevirtual |
Internal - central method of events processing.
Reimplemented from dabc::Module.
Definition at line 274 of file ModuleSync.cxx.
|
protected |
Call this method from main loop if one want suspend of module execution until new Start of the module is called from outside.
Definition at line 234 of file ModuleSync.cxx.
|
protectedvirtual |
Internal DABC method.
Called when module will be destroyed
Reimplemented from dabc::Module.
Definition at line 248 of file ModuleSync.cxx.
|
protected |
Returns true when module in running state.
Normally should be used like:
Definition at line 176 of file ModuleSync.cxx.
|
protectedpure virtual |
Main execution function of SyncModule.
Here user code MUST be implemented.
|
protected |
Waits for any event.
Definition at line 186 of file ModuleSync.cxx.
|
protected |
Waits for connection for specified port.
Definition at line 46 of file ModuleSync.cxx.
|
protected |
Waits until input port has specified number of buffers in the queue.
Definition at line 157 of file ModuleSync.cxx.
|
inlineprotected |
Method return true if receiving from specified port can be done.
Definition at line 155 of file ModuleSync.h.
|
protected |
Receive buffer from input port.
Blocks until buffer is arrived. If timeout value specified, can return without buffer.
Definition at line 91 of file ModuleSync.cxx.
|
protected |
Send buffer via specified output port.
Definition at line 67 of file ModuleSync.cxx.
|
inlineprotected |
Send buffer via first output port.
Definition at line 167 of file ModuleSync.h.
|
protected |
Receive buffer from any input port.
One also can obtain index of port
Definition at line 126 of file ModuleSync.cxx.
|
protected |
Take buffer from memory pool.
Definition at line 112 of file ModuleSync.cxx.
|
inlineprotected |
Set if exception should be generated when any operation is timeout.
Definition at line 178 of file ModuleSync.h.
|
inlineprotected |
Returns true if timeout exception generation is configured.
Definition at line 181 of file ModuleSync.h.
|
inlineprotected |
Set if disconnect exception should be generated by module.
Definition at line 184 of file ModuleSync.h.
|
inlineprotected |
Returns true if disconnect exception should be generated by module.
Definition at line 187 of file ModuleSync.h.
|
inlineprotected |
Set if commands should be executed synchronous in main loop.
Definition at line 190 of file ModuleSync.h.
|
inlineprotected |
Returns true if commands should be executed synchronous in main loop.
Definition at line 193 of file ModuleSync.h.
|
inlinevirtual |
|
private |
Flag indicates if timeout exception should be generated.
Definition at line 63 of file ModuleSync.h.
|
private |
Flag indicates if disconnect exception should be generated.
Definition at line 66 of file ModuleSync.h.
|
private |
Flag indicates if commands will be executed synchronously.
When true, all commands submitted to the module, executed inside ModuleWorking() method
Definition at line 70 of file ModuleSync.h.
|
private |
List of commands, submitted to the module.
Definition at line 73 of file ModuleSync.h.
|
private |
Current item, waiting for the event.
It should be input/output port or pool handle.
Definition at line 77 of file ModuleSync.h.
|
private |
Internal variable, used in wait event.
Definition at line 80 of file ModuleSync.h.
|
private |
Result of event waiting.
Definition at line 83 of file ModuleSync.h.
|
private |
Flag indicates if main loop is executing.
Definition at line 86 of file ModuleSync.h.