| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DybNextEntryPolicyTool Class Reference

An entry policy tools that monotonically increases the entry by 1. More...

#include <DybNextEntryPolicyTool.h>

Inheritance diagram for DybNextEntryPolicyTool:

[legend]
Collaboration diagram for DybNextEntryPolicyTool:
[legend]
List of all members.

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 DybNextEntryPolicyTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~DybNextEntryPolicyTool ()
StatusCode queryInterface (const InterfaceID &riid, void **ppvIf)
virtual StatusCode initialize ()
int set_entries (int entries)
int next_entry ()
virtual StatusCode finalize ()
INTupleSvcntupleSvc () const
INTupleSvcevtColSvc () const
IDataProviderSvcdetSvc () const
IDataProviderSvcevtSvc () const
IIncidentSvcincSvc () const
IChronoStatSvcchronoSvc () const
IHistogramSvchistoSvc () const
IAlgContextSvccontextSvc () const
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
StatusCode release (const IInterface *interface) const
virtual unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual unsigned long addRef ()
virtual const std::string & name () const
virtual const std::string & type () const
virtual const IInterfaceparent () const
virtual StatusCode configure ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
virtual const std::string & type () const =0
virtual const IInterfaceparent () const =0
virtual StatusCode configure ()=0
virtual StatusCode start ()=0
virtual StatusCode stop ()=0
virtual StatusCode finalize ()=0
virtual StatusCode terminate ()=0
virtual StatusCode reinitialize ()=0
virtual StatusCode restart ()=0
virtual Gaudi::StateMachine::State FSMState () const =0
virtual StatusCode sysInitialize ()=0
virtual StatusCode sysStart ()=0
virtual StatusCode sysStop ()=0
virtual StatusCode sysFinalize ()=0
virtual StatusCode sysReinitialize ()=0
virtual StatusCode sysRestart ()=0
virtual unsigned long refCount () const =0
virtual const std::string & name () const =0
virtual unsigned long addRef ()=0
virtual unsigned long release ()=0

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
int outputLevel () const
virtual unsigned long refCount () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Attributes

int m_entries
int m_entry
int m_step
std::string m_modeName
int m_mode
Rndm::Numbers m_rand
int m_last

Detailed Description

An entry policy tools that monotonically increases the entry by 1.

Brett Viren <bv@bnl.gov> Mon Nov 15 13:25:03 2010

Definition at line 24 of file DybNextEntryPolicyTool.h.


Constructor & Destructor Documentation

DybNextEntryPolicyTool::DybNextEntryPolicyTool ( const std::string &  type,
const std::string &  name,
const IInterface parent 
)

Definition at line 4 of file DybNextEntryPolicyTool.cc.

00007     : GaudiTool(type,name,parent)
00008     , m_entries(-1)
00009     , m_entry(0)
00010     , m_step(1)
00011     , m_last(-1)
00012 {
00013     declareInterface<IDybEntryPolicyTool>(this);
00014     declareProperty("Start",m_entry=0, "Entry to start at");
00015     declareProperty("Step",m_step=1, "Number of entries to step");
00016     declareProperty("Mode",m_modeName="random","Loading mode: random or sequential");
00017 }

DybNextEntryPolicyTool::~DybNextEntryPolicyTool (  )  [virtual]

Definition at line 19 of file DybNextEntryPolicyTool.cc.

00020 {
00021 
00022 }


Member Function Documentation

StatusCode DybNextEntryPolicyTool::queryInterface ( const InterfaceID riid,
void **  ppvIf 
) [virtual]

Reimplemented from GaudiTool.

Definition at line 24 of file DybNextEntryPolicyTool.cc.

00025 {
00026     if ( riid == IDybEntryPolicyTool::interfaceID() )  {
00027         *ppvIf = (IDybEntryPolicyTool*)this;
00028         addRef();
00029         return StatusCode::SUCCESS;
00030     }
00031     return AlgTool::queryInterface( riid, ppvIf );
00032 }

StatusCode DybNextEntryPolicyTool::initialize (  )  [virtual]

Reimplemented from GaudiTool.

Definition at line 34 of file DybNextEntryPolicyTool.cc.

00035 {
00036   IRndmGenSvc *rgs = 0;
00037   if (service("RndmGenSvc",rgs,true).isFailure()) {
00038     fatal() << "Failed to get random service" << endreq;
00039     return StatusCode::FAILURE;
00040   }
00041 
00042   StatusCode sc;
00043   if (m_rand.initialize(rgs, Rndm::Flat(0,1)).isFailure()) {
00044     fatal() << "Failed to initialize flat random numbers" << endreq;
00045     return StatusCode::FAILURE;
00046   }
00047 
00048   if( m_modeName=="random" ) {
00049     m_mode=1;
00050   }
00051   if( m_modeName=="sequential" ) {
00052     m_mode=2;
00053   }
00054   info()<<"Running mode: "<<m_modeName<<" "<<m_mode<<endreq;
00055   return StatusCode::SUCCESS;
00056 }

int DybNextEntryPolicyTool::set_entries ( int  entries  )  [virtual]

Implements IDybEntryPolicyTool.

Definition at line 58 of file DybNextEntryPolicyTool.cc.

00059 {
00060   m_entries = entries;
00061   return m_entries;
00062 }

int DybNextEntryPolicyTool::next_entry (  )  [virtual]

Implements IDybEntryPolicyTool.

Definition at line 64 of file DybNextEntryPolicyTool.cc.

00065 {
00066   int ret;
00067   
00068   // [0,entries-1]
00069   if( m_mode==1 ) {
00070       do {
00071           ret = int( m_rand() * m_entries );
00072       }
00073       while (ret == m_last);    // don't pick the same one twice in a row
00074   }
00075 
00076   if( m_mode==2 ) {
00077     ret = m_entry;
00078     m_entry += m_step;
00079     if( m_entries>0 ) m_entry = m_entry % m_entries;
00080   }
00081  
00082   m_last = ret;
00083   return ret;
00084 }

const InterfaceID & IDybEntryPolicyTool::interfaceID (  )  [static, inherited]

Reimplemented from IAlgTool.

Definition at line 7 of file IDybEntryPolicyTool.cc.

00008 {
00009     return IID_IDybEntryPolicyTool; 
00010 }


Member Data Documentation

int DybNextEntryPolicyTool::m_entries [private]

Definition at line 45 of file DybNextEntryPolicyTool.h.

int DybNextEntryPolicyTool::m_entry [private]

Definition at line 46 of file DybNextEntryPolicyTool.h.

int DybNextEntryPolicyTool::m_step [private]

Definition at line 46 of file DybNextEntryPolicyTool.h.

std::string DybNextEntryPolicyTool::m_modeName [private]

Definition at line 49 of file DybNextEntryPolicyTool.h.

int DybNextEntryPolicyTool::m_mode [private]

Definition at line 50 of file DybNextEntryPolicyTool.h.

Rndm::Numbers DybNextEntryPolicyTool::m_rand [private]

Definition at line 54 of file DybNextEntryPolicyTool.h.

int DybNextEntryPolicyTool::m_last [private]

Definition at line 55 of file DybNextEntryPolicyTool.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 Mon Apr 11 20:47:46 2011 for DybIO by doxygen 1.4.7