DABC (Data Acquisition Backbone Core)  2.9.9
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends
dabc::ConnectionObject Class Reference

Container for connection parameters. More...

#include <dabc/ConnectionRequest.h>

Inheritance diagram for dabc::ConnectionObject:
dabc::ParameterContainer dabc::RecordContainer dabc::Object

Public Types

enum  EState {
  sInit , sPending , sConnecting , sConnected ,
  sDisconnected , sBroken , sFailed
}
 

Public Member Functions

virtual const char * ClassName () const
 Returns class name of the object instance. More...
 
- Public Member Functions inherited from dabc::ParameterContainer
const std::string & Kind () const
 
- Public Member Functions inherited from dabc::RecordContainer
RecordFieldsMapFields () const
 
virtual void Print (int lvl=0)
 Print object content on debug output. More...
 
virtual ~RecordContainer ()
 
- 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...
 
virtual bool Find (ConfigIO &cfg)
 Method to locate object in xml file. More...
 
ObjectFindChild (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
 
ObjectGetChild (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...
 
ObjectGetParent () 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)
 
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 ()
 

Static Public Member Functions

static const char * GetStateName (EState state)
 
static const char * ObjectName ()
 
- 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 Member Functions

virtual bool _CanChangeField (const std::string &)
 Reimplement virtual method of ParameterContainer to block field change if object in non-init state. More...
 
void ChangeState (EState state, bool force)
 Change state of connection object. More...
 
double CheckDelay (double shift)
 Function accounts time spent and returns true, if delay is not yet finished. More...
 
 ConnectionObject (Reference port, const std::string &localurl)
 
virtual std::string DefaultFiledName () const
 
ConnectionObject::EState GetState ()
 
void SetDelay (double v, bool force=false)
 Set delay how long record is inactive. More...
 
virtual ~ConnectionObject ()
 
- Protected Member Functions inherited from dabc::ParameterContainer
bool _CalcRate (double &value, std::string &svalue)
 
virtual void BuildFieldsMap (RecordFieldsMap *cont)
 Save parameter attributes into container. More...
 
unsigned ConfirmFromWorker ()
 Get confirmation from worker, which monitor parameters changes. More...
 
virtual std::string FieldName (unsigned cnt) const
 
void FireModified (const std::string &svalue)
 Internal method, used to inform system that parameter is modified If configured, also debug output will be produced. More...
 
void FireParEvent (int id)
 
const std::string GetActualUnits () const
 
int GetDebugLevel () const
 
virtual RecordField GetField (const std::string &name) const
 
WorkerGetWorker () const
 
virtual bool HasField (const std::string &name) const
 
bool IsDeliverAllEvents () const
 If true, all events must be delivered to the consumer. More...
 
void Modified ()
 
virtual unsigned NumFields () const
 
virtual void ObjectCleanup ()
 User method to cleanup object content before it will be destroyed Main motivation is to release any references on other objects to avoid any cross-references and as result deadlocks in objects cleanup. More...
 
 ParameterContainer (Reference worker, const std::string &name, const std::string &parkind="", bool hidden=false)
 
void ProcessTimeout (double last_dif)
 Method called from manager thread when parameter configured as asynchronous. More...
 
virtual bool RemoveField (const std::string &name)
 
virtual bool SetField (const std::string &name, const RecordField &v)
 
void SetSynchron (bool on, double interval=1., bool everyevnt=false)
 Specifies that parameter produce 'modified' events synchronous with changes of parameter. More...
 
virtual ~ParameterContainer ()
 
- Protected Member Functions inherited from dabc::RecordContainer
 RecordContainer (const std::string &name, unsigned flags=flIsOwner)
 
 RecordContainer (Reference parent, const std::string &name, unsigned flags=flIsOwner)
 
virtual bool SaveTo (HStore &store, bool create_node=true)
 
void SetFieldsMap (RecordFieldsMap *newmap)
 Replaces existing fields map. More...
 
RecordFieldsMapTakeFieldsMap ()
 Remove map and returns to the user. More...
 
- 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 ObjectCreateInstance (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...
 
virtual bool DestroyByOwnThread ()
 Internal DABC method, used to activate object cleanup via object thread Returns: false - object cannot be cleanup by the thread, true - thread guarantees that DestroyCalledFromOwnThread() will be called from thread context. 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)
 
virtual void ObjectDestroyed (Object *)
 Method called by the manager when registered dependent object is destroyed Should be used in user class to clear all references on the object to let destroy it. More...
 
MutexObjectMutex () 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...
 

Protected Attributes

double fAccDelay
 accounting spent time, when negative - record is active More...
 
std::string fAllowedField
 name of field which is allowed to change in any state More...
 
std::string fClientId
 identifier for client side More...
 
std::string fConnId
 unique id for that connection, defined by the server (can be overwritten by device) More...
 
EState fConnState
 actual state of the connection, is parameter value More...
 
Reference fCustomData
 implementation specific data, managed by the device, cleanuped by the record when connection is destroyed More...
 
int fInlineDataSize
 property of the port, if does not match, will be ruled by the server More...
 
std::string fLocalUrl
 full url of local port More...
 
std::string fPoolName
 pool which should be used for the connections More...
 
int fProgress
 
Command fRemoteCmd
 command from remote, interpretation depends from the state More...
 
std::string fServerId
 identifier for server side More...
 
double fSetDelay
 set value for delay, will be activated first time timeout processing done More...
 
- Protected Attributes inherited from dabc::ParameterContainer
bool fAsynchron
 indicates if parameter can produce events asynchronous to the modification of parameter itself it is a case for ratemeters More...
 
bool fAttrModified
 indicate if attribute was modified since last parameter event More...
 
bool fDeliverAllEvents
 if true, any modification event will be delivered, default off More...
 
double fInterval
 how often modified events are produced TODO: should we move it in the normal record field? More...
 
std::string fKind
 specified kind of parameter (int, double, info, ratemeter), to be used by reference to decide if object can be assigned More...
 
TimeStamp fLastChangeTm
 last time when parameter was modified More...
 
bool fMonitored
 if true parameter change event will be delivered to the worker More...
 
double fRateNumSum
 sum of accumulated counts More...
 
int fRatePrec
 display precision of rate variable More...
 
double fRateTimeSum
 sum of time More...
 
double fRateValueSum
 sum of values More...
 
int fRateWidth
 display width of rate variable More...
 
bool fRecorded
 if true, parameter changes should be reported to worker where it will be recorded More...
 
EStatistic fStatistic
 indicates if statistic is calculated: 0 - off, 1 - rate, 2 - average More...
 
bool fWaitWorker
 if true, waiting confirmation from worker More...
 
- Protected Attributes inherited from dabc::RecordContainer
RecordFieldsMapfFields
 
- Protected Attributes inherited from dabc::Object
int fObjectBlock
 counter for blocking calls, as long as non-zero, non of child can be removed More...
 
ReferencesVectorfObjectChilds
 list of the child objects More...
 
unsigned fObjectFlags
 flag, protected by the mutex More...
 
MutexfObjectMutex
 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...
 

Friends

class ConnectionManager
 
class ConnectionRequest
 
class ConnectionRequestFull
 
class Port
 

Additional Inherited Members

- Protected Types inherited from dabc::ParameterContainer
enum  EStatistic { kindNone , kindRate , kindAverage }
 
- 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...
 

Detailed Description

Container for connection parameters.

Connection object configures properties of connection, which should be established for the port. One can create the only connection object for each port. Connection object is used by connection manager to establish connection with remote nodes. Connection object derived from parameter class and issues events, which can be catched by any worker in dabc. Such features used by connection manager to discover any changes in the connection and recover connection (if it is allowed by the port).

Definition at line 54 of file ConnectionRequest.h.

Member Enumeration Documentation

◆ EState

Enumerator
sInit 

connection in initial state

sPending 

connection is pending (want to be connected)

sConnecting 

connection is in progress

sConnected 

connection is up and working

sDisconnected 

connection is down by user, will not be reconnected

sBroken 

connection is broken and should be reactivated by connection manager

sFailed 

connection cannot be established by connection manager

Definition at line 57 of file ConnectionRequest.h.

Constructor & Destructor Documentation

◆ ConnectionObject()

dabc::ConnectionObject::ConnectionObject ( Reference  port,
const std::string &  localurl 
)
protected

Definition at line 19 of file ConnectionRequest.cxx.

◆ ~ConnectionObject()

dabc::ConnectionObject::~ConnectionObject ( )
protectedvirtual

Definition at line 37 of file ConnectionRequest.cxx.

Member Function Documentation

◆ _CanChangeField()

bool dabc::ConnectionObject::_CanChangeField ( const std::string &  name)
protectedvirtual

Reimplement virtual method of ParameterContainer to block field change if object in non-init state.

In some situation change is allowed via fAllowedField

Reimplemented from dabc::ParameterContainer.

Definition at line 41 of file ConnectionRequest.cxx.

◆ DefaultFiledName()

std::string dabc::ConnectionObject::DefaultFiledName ( ) const
protectedvirtual

Reimplemented from dabc::ParameterContainer.

Definition at line 60 of file ConnectionRequest.cxx.

◆ ChangeState()

void dabc::ConnectionObject::ChangeState ( EState  state,
bool  force 
)
protected

Change state of connection object.

State change can be observed by connection manager and it may start connection establishing. Only accessible by connection manager

Definition at line 85 of file ConnectionRequest.cxx.

◆ GetState()

dabc::ConnectionObject::EState dabc::ConnectionObject::GetState ( )
protected

Definition at line 79 of file ConnectionRequest.cxx.

◆ SetDelay()

void dabc::ConnectionObject::SetDelay ( double  v,
bool  force = false 
)
inlineprotected

Set delay how long record is inactive.

Timeout will be checked in ProcessTimeout routine. If SetDelay is called from this routine, one should specify force=true to reset time counter directly while time is accounted between two calls of ProcessTimeout method.

Definition at line 122 of file ConnectionRequest.h.

◆ CheckDelay()

double dabc::ConnectionObject::CheckDelay ( double  shift)
inlineprotected

Function accounts time spent and returns true, if delay is not yet finished.

Definition at line 135 of file ConnectionRequest.h.

◆ ClassName()

virtual const char* dabc::ConnectionObject::ClassName ( ) const
inlinevirtual

Returns class name of the object instance.

In some cases class name used to correctly locate object in xml file

Reimplemented from dabc::ParameterContainer.

Definition at line 148 of file ConnectionRequest.h.

◆ ObjectName()

static const char* dabc::ConnectionObject::ObjectName ( )
inlinestatic

Definition at line 150 of file ConnectionRequest.h.

◆ GetStateName()

const char * dabc::ConnectionObject::GetStateName ( EState  state)
static

Definition at line 65 of file ConnectionRequest.cxx.

Friends And Related Function Documentation

◆ Port

friend class Port
friend

Definition at line 69 of file ConnectionRequest.h.

◆ ConnectionManager

friend class ConnectionManager
friend

Definition at line 70 of file ConnectionRequest.h.

◆ ConnectionRequest

friend class ConnectionRequest
friend

Definition at line 71 of file ConnectionRequest.h.

◆ ConnectionRequestFull

friend class ConnectionRequestFull
friend

Definition at line 72 of file ConnectionRequest.h.

Field Documentation

◆ fConnState

EState dabc::ConnectionObject::fConnState
protected

actual state of the connection, is parameter value

Definition at line 74 of file ConnectionRequest.h.

◆ fLocalUrl

std::string dabc::ConnectionObject::fLocalUrl
protected

full url of local port

Definition at line 76 of file ConnectionRequest.h.

◆ fPoolName

std::string dabc::ConnectionObject::fPoolName
protected

pool which should be used for the connections

Definition at line 78 of file ConnectionRequest.h.

◆ fProgress

int dabc::ConnectionObject::fProgress
protected

Definition at line 85 of file ConnectionRequest.h.

◆ fServerId

std::string dabc::ConnectionObject::fServerId
protected

identifier for server side

Definition at line 87 of file ConnectionRequest.h.

◆ fClientId

std::string dabc::ConnectionObject::fClientId
protected

identifier for client side

Definition at line 88 of file ConnectionRequest.h.

◆ fCustomData

Reference dabc::ConnectionObject::fCustomData
protected

implementation specific data, managed by the device, cleanuped by the record when connection is destroyed

Definition at line 89 of file ConnectionRequest.h.

◆ fConnId

std::string dabc::ConnectionObject::fConnId
protected

unique id for that connection, defined by the server (can be overwritten by device)

Definition at line 90 of file ConnectionRequest.h.

◆ fRemoteCmd

Command dabc::ConnectionObject::fRemoteCmd
protected

command from remote, interpretation depends from the state

Definition at line 91 of file ConnectionRequest.h.

◆ fInlineDataSize

int dabc::ConnectionObject::fInlineDataSize
protected

property of the port, if does not match, will be ruled by the server

Definition at line 92 of file ConnectionRequest.h.

◆ fAccDelay

double dabc::ConnectionObject::fAccDelay
protected

accounting spent time, when negative - record is active

Definition at line 96 of file ConnectionRequest.h.

◆ fSetDelay

double dabc::ConnectionObject::fSetDelay
protected

set value for delay, will be activated first time timeout processing done

Definition at line 97 of file ConnectionRequest.h.

◆ fAllowedField

std::string dabc::ConnectionObject::fAllowedField
protected

name of field which is allowed to change in any state

Definition at line 99 of file ConnectionRequest.h.


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