|
DABC (Data Acquisition Backbone Core)
2.9.9
|
#include <hadaq/UdpTransport.h>
Public Member Functions | |
| bool | HasBuffer () const |
| NewAddon (int fd, int nport, int mtu, bool debug, int maxloop, double reduce, double lost) | |
| virtual | ~NewAddon () |
Public Member Functions inherited from dabc::SocketAddon | |
| virtual const char * | ClassName () const |
| Returns class name of the object instance. More... | |
| void | CloseSocket () |
| bool | IsDeliverEventsToWorker () const |
| bool | IsDoingInput () const |
| bool | IsDoingOutput () const |
| bool | IsSocket () const |
| virtual std::string | RequiredThrdClass () const |
| void | SetDeliverEventsToWorker (bool on=true) |
| void | SetIOPriority (int prior=1) |
| Method defines priority level for socket IO events. More... | |
| void | SetSocket (int fd) |
| int | Socket () const |
| SocketAddon (int fd=-1) | |
| int | TakeSocket () |
| int | TakeSocketError () |
| virtual | ~SocketAddon () |
Public Member Functions inherited from dabc::WorkerAddon | |
| WorkerAddon (const std::string &name) | |
| virtual | ~WorkerAddon () |
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 void | BuildFieldsMap (RecordFieldsMap *cont) |
| Fill fields map, which is relevant for the object Objects hierarchy produced from dabc::Manager. More... | |
| virtual bool | Find (ConfigIO &cfg) |
| Method to locate object in xml file. 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 () |
Public Member Functions inherited from hadaq::TransportInfo | |
| void | ClearCounters () |
| std::string | GetDiscard32String () |
| std::string | GetDiscardString () |
| TransportInfo (int port) | |
Static Public Member Functions | |
| static int | OpenUdp (const std::string &host, int nport, int rcvbuflen) |
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 | |
| bool | CloseBuffer () |
| virtual long | Notify (const std::string &, int) |
| Light-weight command interface. More... | |
| virtual void | ProcessEvent (const dabc::EventId &) |
| bool | ReadUdp () |
Protected Member Functions inherited from dabc::SocketAddon | |
| ssize_t | DoRecvBuffer (void *buf, ssize_t len) |
| ssize_t | DoRecvBufferHdr (void *hdr, ssize_t hdrlen, void *buf, ssize_t len, void *srcaddr=0, unsigned srcaddrlen=0) |
| ssize_t | DoSendBuffer (void *buf, ssize_t len) |
| ssize_t | DoSendBufferHdr (void *hdr, ssize_t hdrlen, void *buf, ssize_t len, void *tgtaddr=0, unsigned tgtaddrlen=0) |
| bool | IsDeleteWorkerOnClose () const |
| virtual void | OnSocketError (int msg, const std::string &info) |
| Generic error handler. More... | |
| void | SetDeleteWorkerOnClose (bool on=true) |
| void | SetDoingInput (bool on=true) |
| Call method to indicate that object wants to read data from the socket. More... | |
| void | SetDoingOutput (bool on=true) |
| Call method to indicate that worker wants to write data to the socket. More... | |
Protected Member Functions inherited from dabc::WorkerAddon | |
| bool | ActivateTimeout (double tmout_sec) |
| void | DeleteAddonItself () |
| This is possibility to delete addon itself, invoking worker command. More... | |
| void | DeleteWorker () |
| This is way to delete worker with addon inclusive. More... | |
| void | FireWorkerEvent (unsigned evid) |
| 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... | |
| virtual void | OnThreadAssigned () |
| virtual double | ProcessTimeout (double last_diff) |
| void | SubmitWorkerCmd (Command cmd) |
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... | |
| 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... | |
| 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... | |
Protected Attributes | |
| bool | fDebug |
| when true, produce more debug output More... | |
| dabc::TimeStamp | fLastProcTm |
| last time when udp reading was performed More... | |
| int | fLostCnt |
| counter used to drop buffers More... | |
| double | fLostRate |
| artificial lost of received UDP packets More... | |
| int | fMaxLoopCnt |
| maximal number of UDP packets, read at once More... | |
| double | fMaxProcDist |
| maximal time between calls to BuildEvent method More... | |
| unsigned | fMTU |
| maximal size of packet expected from TRB More... | |
| void * | fMtuBuffer |
| buffer used to skip packets when no normal buffer is available More... | |
| double | fReduce |
| reduce filled buffer size to let reformat data later More... | |
| bool | fRunning |
| is transport running More... | |
| int | fSendCnt |
| counter of send buffers since last timeout active More... | |
| int | fSkipCnt |
| counter used to control buffers skipping More... | |
| dabc::Pointer | fTgtPtr |
| pointer used to read data More... | |
Protected Attributes inherited from dabc::SocketAddon | |
| bool | fDeleteWorkerOnClose |
| if true, worker will be deleted when socket closed or socket in error More... | |
| bool | fDeliverEventsToWorker |
| if true, completion events will be delivered to the worker More... | |
| bool | fDoingInput |
| true if input data are expected More... | |
| bool | fDoingOutput |
| true if data need to be send More... | |
| int | fIOPriority |
| priority of socket I/O events, default 1 More... | |
| int | fSocket |
| socket handle More... | |
Protected Attributes inherited from dabc::WorkerAddon | |
| Reference | fWorker |
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... | |
Friends | |
| class | NewTransport |
| class | TerminalModule |
Additional Inherited Members | |
Public Types inherited from dabc::SocketAddon | |
| enum | ESocketEvents { evntSocketRead = Worker::evntFirstAddOn , evntSocketWrite , evntSocketError , evntSocketStartConnect , evntSocketLast , evntSocketRecvInfo = Worker::evntFirstSystem , evntSocketSendInfo , evntSocketErrorInfo , evntSocketCloseInfo , evntSocketLastInfo } |
Data Fields inherited from hadaq::TransportInfo | |
| int | fNPort |
| upd port number More... | |
| uint64_t | fTotalArtificialLosts |
| uint64_t | fTotalArtificialSkip |
| uint64_t | fTotalDiscard32Packet |
| uint64_t | fTotalDiscardBytes |
| uint64_t | fTotalDiscardPacket |
| uint64_t | fTotalProducedBuffers |
| uint64_t | fTotalRecvBytes |
| uint64_t | fTotalRecvPacket |
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... | |
Definition at line 93 of file UdpTransport.h.
| hadaq::NewAddon::NewAddon | ( | int | fd, |
| int | nport, | ||
| int | mtu, | ||
| bool | debug, | ||
| int | maxloop, | ||
| double | reduce, | ||
| double | lost | ||
| ) |
Definition at line 35 of file UdpTransport.cxx.
|
virtual |
Definition at line 54 of file UdpTransport.cxx.
|
protectedvirtual |
Reimplemented from dabc::SocketAddon.
Definition at line 59 of file UdpTransport.cxx.
|
protectedvirtual |
Light-weight command interface.
Reimplemented from dabc::WorkerAddon.
Definition at line 72 of file UdpTransport.cxx.
|
protected |
Definition at line 108 of file UdpTransport.cxx.
|
protected |
Definition at line 92 of file UdpTransport.cxx.
|
inline |
Definition at line 128 of file UdpTransport.h.
|
static |
Definition at line 227 of file UdpTransport.cxx.
|
friend |
Definition at line 97 of file UdpTransport.h.
|
friend |
Definition at line 98 of file UdpTransport.h.
|
protected |
pointer used to read data
Definition at line 100 of file UdpTransport.h.
|
protected |
maximal size of packet expected from TRB
Definition at line 101 of file UdpTransport.h.
|
protected |
buffer used to skip packets when no normal buffer is available
Definition at line 102 of file UdpTransport.h.
|
protected |
counter used to control buffers skipping
Definition at line 103 of file UdpTransport.h.
|
protected |
counter of send buffers since last timeout active
Definition at line 104 of file UdpTransport.h.
|
protected |
maximal number of UDP packets, read at once
Definition at line 105 of file UdpTransport.h.
|
protected |
reduce filled buffer size to let reformat data later
Definition at line 106 of file UdpTransport.h.
|
protected |
artificial lost of received UDP packets
Definition at line 107 of file UdpTransport.h.
|
protected |
counter used to drop buffers
Definition at line 108 of file UdpTransport.h.
|
protected |
when true, produce more debug output
Definition at line 109 of file UdpTransport.h.
|
protected |
is transport running
Definition at line 110 of file UdpTransport.h.
|
protected |
last time when udp reading was performed
Definition at line 111 of file UdpTransport.h.
|
protected |
maximal time between calls to BuildEvent method
Definition at line 112 of file UdpTransport.h.