/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
FanCycler Class Reference

#include <FanCycler.h>

Inheritance diagram for FanCycler:
Inheritance graph
[legend]
Collaboration diagram for FanCycler:
Collaboration graph
[legend]

List of all members.

Public Types

typedef std::deque< Data * >
::iterator 
Iterator

Public Member Functions

 FanCycler (const std::string &name)
virtual ~FanCycler ()
virtual bool initialize ()
virtual bool finalize ()
virtual EvtObjectnext (int nth=1)
virtual PhyEventexpand ()
PhyEventBufdataBuffer ()
const std::string & name ()
bool setOption (const std::string &option, Type &var)
Iterator begin ()
Iterator current ()
Iterator end ()
Iterator find (const Data *data)
Iterator seek (int pos)
Data * curEvt ()
Data * seekEvt (int pos)
int totalSize ()
int forwardSize ()
int backwardSize ()
void clear ()
void clear ()
void clear ()

Protected Member Functions

virtual void pushBack (PhyEvent *evt)
virtual void trimDated ()
virtual void fillFresh ()

Protected Attributes

ICyclerm_is
PhyEventm_cur
PhyEventm_theBeyond
UserBufMgrm_userBufMgr
std::vector< double > m_window
std::string m_name
unsigned int m_iCur
std::deque< Data * > m_dBuf

Private Member Functions

virtual PhyEventtheNext ()

Private Attributes

PhyEventBufm_buffer
std::vector< IFanTagBase * > m_tags

Detailed Description

Definition at line 9 of file FanCycler.h.


Constructor & Destructor Documentation

FanCycler::FanCycler ( const std::string &  name)

Definition at line 10 of file FanCycler.cc.

    : NormCycler(name)
{
    m_name = "FanCycler";  //to avoid naming confusion

    ToolMgr* _toolMgr = ToolMgr::instance();
    std::vector<std::string> tags;
    setOption("Tags", tags);
    for(std::vector<std::string>::iterator it = tags.begin(); it != tags.end(); ++it) {
        IFanTagBase* tag = _toolMgr->get<IFanTagBase>(*it, true);
        if ( tag != 0 ) {
            m_tags.push_back(tag);
        }
        else {
            std::string msg = std::string("@ FanCycler constructor: invalid tool ") + *it;
            throw LafException(msg);
        }
    }
}
FanCycler::~FanCycler ( ) [virtual]

Definition at line 30 of file FanCycler.cc.

{
}

Member Function Documentation

bool FanCycler::initialize ( ) [virtual]

Reimplemented from NormCycler.

Definition at line 34 of file FanCycler.cc.

{
    if ( NormCycler::initialize() ) {
        m_is = SvcMgr::get<ICycler>("SelCycler");
        m_buffer = SvcMgr::get<PhyEventBuf>("SelCycler");
        return true;
    }
    return false;
}
PhyEvent * FanCycler::theNext ( ) [private, virtual]

Reimplemented from NormCycler.

Definition at line 44 of file FanCycler.cc.

{
    int nTag = m_tags.size();
    PhyEvent* _next = 0;
    while ( (_next=(PhyEvent*)(m_is->next())) != 0 ) {
        for ( int i = 0; i < nTag; ++i ) {
            if ( m_tags[i]->tag(m_buffer) ) {
                _next->ReleaseInstance();  //delete _next;
                _next = 0;
                break;
            }
        }
        if ( _next != 0 ) break;
    }
    return _next;
}

Member Data Documentation

Definition at line 22 of file FanCycler.h.

std::vector<IFanTagBase*> FanCycler::m_tags [private]

Definition at line 23 of file FanCycler.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:50:53 for FanCycler by doxygen 1.7.4