Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

CBufferMonitor< T > Class Template Reference

#include <CBufferMonitor.h>

Inheritance diagram for CBufferMonitor< T >:

CEventMonitor CRegisteredObject CNamedObject List of all members.

Public Member Functions

 CBufferMonitor (bool am_fTimedWait=true)
 CBufferMonitor (const STD(string)&rName, bool am_fTimedWait=true)
 CBufferMonitor (const char *pName, bool am_fTimedWait=true)
 ~CBufferMonitor ()
DAQBuffer< T > & getBuffer ()
list< LinkInfogetLinks () const
DAQLinkMgr getLinkMgr () const
virtual CEventMonitor::result operator() ()
virtual int AddLink (const STD(string)&URL, int tag=COS_MAXBUFTAG, int mask=COS_ALLBITS, bool fReliable=true)
void RemoveLink (int linkid)
void RemoveLink (LinkIterator link)
template<typename LinkMatchPredicate>
LinkIterator FindLink (LinkMatchPredicate &rPredicate, LinkIterator startat)
LinkIterator beginLinks ()
LinkIterator endLinks ()
Pointer< DAQBuffer< T >, T > getBufferPointer (int nOffset=0)
void SetBufferTag (int tag=COS_ALLBITS)
void SetBufferMask (int nMask)
 STD (string) DescribeSelf()

Protected Member Functions

void setBuffer (const DAQBuffer< T > am_Buffer)
void setLinks (const list< LinkInfo > am_lLinks)
void setLinkMgr (const DAQLinkMgr am_daq_link_mgr)

Private Member Functions

 CBufferMonitor (const CBufferMonitor< T > &aCBufferMonitor)
CBufferMonitor< T > operator= (const CBufferMonitor< T > &aCBufferMonitor)

Private Attributes

DAQBuffer< T > m_Buffer
list< LinkInfom_lLinks
DAQLinkMgr daq_link_mgr
int m_nTag
int m_nMask

template<class T>
class CBufferMonitor< T >


Constructor & Destructor Documentation

template<class T>
CBufferMonitor< T >::CBufferMonitor bool  am_fTimedWait = true  )  [inline]
 

template<class T>
CBufferMonitor< T >::CBufferMonitor const STD(string)&  rName,
bool  am_fTimedWait = true
[inline]
 

template<class T>
CBufferMonitor< T >::CBufferMonitor const char *  pName,
bool  am_fTimedWait = true
[inline]
 

template<class T>
CBufferMonitor< T >::~CBufferMonitor  )  [inline]
 

template<class T>
CBufferMonitor< T >::CBufferMonitor const CBufferMonitor< T > &  aCBufferMonitor  )  [private]
 


Member Function Documentation

template<class T>
virtual int CBufferMonitor< T >::AddLink const STD(string)&  URL,
int  tag = COS_MAXBUFTAG,
int  mask = COS_ALLBITS,
bool  fReliable = true
[virtual]
 

template<class T>
LinkIterator CBufferMonitor< T >::beginLinks  ) 
 

Operation Type: Selector

Purpose: Returns an iterator to the beginning of the link list.

Definition at line 464 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::m_lLinks.

template<class T>
LinkIterator CBufferMonitor< T >::endLinks  ) 
 

Operation Type: Selector

Purpose: Returns an iterator suitable for determining end of iteration through the link list.

Definition at line 481 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::m_lLinks.

template<class T>
template<class LinkMatchPredicate>
LinkIterator CBufferMonitor< T >::FindLink LinkMatchPredicate &  rPredicate,
LinkIterator  startat
 

Operation Type: Selector

Purpose: Locates the first link that satisfies a given predicate. Predefined predicates include: MatchURL - matches URL only MatchAll - Matches URL, tag and mask. A LinkMatchPredicate is a function object implementing: bool operator()(LinkInfo) which returns TRUE if the link satisfies the predicate. Returns an iterator 'pointing' to the first match, or end() if there is no match.

Definition at line 442 of file CBufferMonitor.cpp.

References LinkIterator, and CBufferMonitor< T >::m_lLinks.

template<class T>
DAQBuffer<T>& CBufferMonitor< T >::getBuffer  )  [inline]
 

Definition at line 447 of file CBufferMonitor.h.

template<class T>
Pointer< DAQBuffer< T >, T > CBufferMonitor< T >::getBufferPointer int  nOffset = 0  ) 
 

Operation Type: Selector

Purpose: Returns a pointer to the DAQ Buffer.

Definition at line 498 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::m_Buffer.

Referenced by CBufferReactor< T >::OnEvent().

template<class T>
DAQLinkMgr CBufferMonitor< T >::getLinkMgr  )  const [inline]
 

Definition at line 457 of file CBufferMonitor.h.

template<class T>
list<LinkInfo> CBufferMonitor< T >::getLinks  )  const [inline]
 

Definition at line 452 of file CBufferMonitor.h.

template<class T>
CEventMonitor::result CBufferMonitor< T >::operator()  )  [virtual]
 

Operation Type: override

Purpose: Waits for a buffer to be received. Returns one of the following: Occurred - a buffer was received into m_Buffer TimedOut - Timeouts were enabled and no buffer was received during the timeout interval.

Implements CEventMonitor.

Definition at line 306 of file CBufferMonitor.cpp.

References CEventMonitor::getTimedWait(), CEventMonitor::getTimeout(), CBufferMonitor< T >::m_Buffer, CBufferMonitor< T >::m_nMask, and CBufferMonitor< T >::m_nTag.

template<class T>
CBufferMonitor<T> CBufferMonitor< T >::operator= const CBufferMonitor< T > &  aCBufferMonitor  )  [private]
 

template<class T>
void CBufferMonitor< T >::RemoveLink LinkIterator  link  ) 
 

Operation Type: Mutator

Purpose: Removes a link given the iterator to its link structure in the link list. If the iterator is end(), a CNoSuchLinkException is thrown.

Definition at line 407 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::daq_link_mgr, and CBufferMonitor< T >::m_lLinks.

template<class T>
void CBufferMonitor< T >::RemoveLink int  linkid  ) 
 

Operation Type: Mutator

Purpose: If the specified link exists, it is removed from the link list and deleted from the spectrodaq link manager. If the link does not exist, a CNoSuchLinkException is thrown.

Definition at line 376 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::daq_link_mgr, LinkIterator, and CBufferMonitor< T >::m_lLinks.

template<class T>
void CBufferMonitor< T >::setBuffer const DAQBuffer< T >  am_Buffer  )  [inline, protected]
 

Definition at line 465 of file CBufferMonitor.h.

template<class T>
void CBufferMonitor< T >::SetBufferMask int  nMask  ) 
 

Operation Type: Mutator

Purpose: Sets the receive mask associated with the buffer. See SetBufferTag for an explanation of tags and masks and how they interact with link tags and masks and the tag of the incomming buffer to determine receipt.

Definition at line 553 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::m_Buffer, and CBufferMonitor< T >::m_nMask.

template<class T>
void CBufferMonitor< T >::SetBufferTag int  tag = COS_ALLBITS  ) 
 

Operation Type: Mutator

Purpose: Sets the tag matched on receives into the buffer. For each link/buffer pair, tags are used to determine which buffers routed through SpectroDaq will be received by a link or buffer. The logic is that at each stage, the routed buffer's tag is anded with the receiving entity's mask. If this is equal to the receiving entity's tag, the buffer is accepted. So, for a given link (link.mask, link.tag), and our buffer (buffer.mask, buffer.tag): A routed buffer rbuffer.tag is received when:

((rbuffer.tag & link.mask) == link.tag) && ((rbuffer.tag & buffer.mask) == buffer.tag)

Definition at line 528 of file CBufferMonitor.cpp.

References CBufferMonitor< T >::m_Buffer, and CBufferMonitor< T >::m_nTag.

template<class T>
void CBufferMonitor< T >::setLinkMgr const DAQLinkMgr  am_daq_link_mgr  )  [inline, protected]
 

Definition at line 475 of file CBufferMonitor.h.

template<class T>
void CBufferMonitor< T >::setLinks const list< LinkInfo am_lLinks  )  [inline, protected]
 

Definition at line 470 of file CBufferMonitor.h.

template<class T>
CBufferMonitor< T >::STD string   ) 
 

The name of the object

Reimplemented from CNamedObject.


Member Data Documentation

template<class T>
DAQLinkMgr CBufferMonitor< T >::daq_link_mgr [private]
 

List of links.

Definition at line 391 of file CBufferMonitor.h.

Referenced by CBufferMonitor< T >::RemoveLink().

template<class T>
DAQBuffer<T> CBufferMonitor< T >::m_Buffer [private]
 

Definition at line 389 of file CBufferMonitor.h.

Referenced by CBufferMonitor< T >::getBufferPointer(), CBufferMonitor< T >::operator()(), CBufferMonitor< T >::SetBufferMask(), and CBufferMonitor< T >::SetBufferTag().

template<class T>
list<LinkInfo> CBufferMonitor< T >::m_lLinks [private]
 

Encapsulated buffer

Definition at line 390 of file CBufferMonitor.h.

Referenced by CBufferMonitor< T >::beginLinks(), CBufferMonitor< T >::endLinks(), CBufferMonitor< T >::FindLink(), and CBufferMonitor< T >::RemoveLink().

template<class T>
int CBufferMonitor< T >::m_nMask [private]
 

Definition at line 393 of file CBufferMonitor.h.

Referenced by CBufferMonitor< T >::operator()(), and CBufferMonitor< T >::SetBufferMask().

template<class T>
int CBufferMonitor< T >::m_nTag [private]
 

A link manager

Definition at line 392 of file CBufferMonitor.h.

Referenced by CBufferMonitor< T >::operator()(), and CBufferMonitor< T >::SetBufferTag().


The documentation for this class was generated from the following files:
Generated on Thu Jan 6 16:58:43 2005 for Spectrodaq External Event Framework by  doxygen 1.3.9.1