DABC (Data Acquisition Backbone Core)  2.9.9
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends
hadaq::NewAddon Class Reference

#include <hadaq/UdpTransport.h>

Inheritance diagram for hadaq::NewAddon:
dabc::SocketAddon hadaq::TransportInfo dabc::WorkerAddon dabc::Object

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...
 
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)
 
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 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

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...
 
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 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...
 

Detailed Description

Definition at line 93 of file UdpTransport.h.

Constructor & Destructor Documentation

◆ NewAddon()

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.

◆ ~NewAddon()

hadaq::NewAddon::~NewAddon ( )
virtual

Definition at line 54 of file UdpTransport.cxx.

Member Function Documentation

◆ ProcessEvent()

void hadaq::NewAddon::ProcessEvent ( const dabc::EventId evnt)
protectedvirtual

Reimplemented from dabc::SocketAddon.

Definition at line 59 of file UdpTransport.cxx.

◆ Notify()

long hadaq::NewAddon::Notify ( const std::string &  msg,
int  arg 
)
protectedvirtual

Light-weight command interface.

Reimplemented from dabc::WorkerAddon.

Definition at line 72 of file UdpTransport.cxx.

◆ ReadUdp()

bool hadaq::NewAddon::ReadUdp ( )
protected

Definition at line 108 of file UdpTransport.cxx.

◆ CloseBuffer()

bool hadaq::NewAddon::CloseBuffer ( )
protected

Definition at line 92 of file UdpTransport.cxx.

◆ HasBuffer()

bool hadaq::NewAddon::HasBuffer ( ) const
inline

Definition at line 128 of file UdpTransport.h.

◆ OpenUdp()

int hadaq::NewAddon::OpenUdp ( const std::string &  host,
int  nport,
int  rcvbuflen 
)
static

Definition at line 227 of file UdpTransport.cxx.

Friends And Related Function Documentation

◆ TerminalModule

friend class TerminalModule
friend

Definition at line 97 of file UdpTransport.h.

◆ NewTransport

friend class NewTransport
friend

Definition at line 98 of file UdpTransport.h.

Field Documentation

◆ fTgtPtr

dabc::Pointer hadaq::NewAddon::fTgtPtr
protected

pointer used to read data

Definition at line 100 of file UdpTransport.h.

◆ fMTU

unsigned hadaq::NewAddon::fMTU
protected

maximal size of packet expected from TRB

Definition at line 101 of file UdpTransport.h.

◆ fMtuBuffer

void* hadaq::NewAddon::fMtuBuffer
protected

buffer used to skip packets when no normal buffer is available

Definition at line 102 of file UdpTransport.h.

◆ fSkipCnt

int hadaq::NewAddon::fSkipCnt
protected

counter used to control buffers skipping

Definition at line 103 of file UdpTransport.h.

◆ fSendCnt

int hadaq::NewAddon::fSendCnt
protected

counter of send buffers since last timeout active

Definition at line 104 of file UdpTransport.h.

◆ fMaxLoopCnt

int hadaq::NewAddon::fMaxLoopCnt
protected

maximal number of UDP packets, read at once

Definition at line 105 of file UdpTransport.h.

◆ fReduce

double hadaq::NewAddon::fReduce
protected

reduce filled buffer size to let reformat data later

Definition at line 106 of file UdpTransport.h.

◆ fLostRate

double hadaq::NewAddon::fLostRate
protected

artificial lost of received UDP packets

Definition at line 107 of file UdpTransport.h.

◆ fLostCnt

int hadaq::NewAddon::fLostCnt
protected

counter used to drop buffers

Definition at line 108 of file UdpTransport.h.

◆ fDebug

bool hadaq::NewAddon::fDebug
protected

when true, produce more debug output

Definition at line 109 of file UdpTransport.h.

◆ fRunning

bool hadaq::NewAddon::fRunning
protected

is transport running

Definition at line 110 of file UdpTransport.h.

◆ fLastProcTm

dabc::TimeStamp hadaq::NewAddon::fLastProcTm
protected

last time when udp reading was performed

Definition at line 111 of file UdpTransport.h.

◆ fMaxProcDist

double hadaq::NewAddon::fMaxProcDist
protected

maximal time between calls to BuildEvent method

Definition at line 112 of file UdpTransport.h.


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