| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Private Types | Private Attributes | List of all members
PartitionSwitchAlg Class Reference

Small algorith, which switches the partition of a configurable multi-service. More...

Inheritance diagram for PartitionSwitchAlg:
[legend]
Collaboration diagram for PartitionSwitchAlg:
[legend]

## Public Member Functions
| PartitionSwitchAlg (CSTR name, ISvcLocator *pSvcLocator)
| Standard algorithm constructor.
virtual | ~PartitionSwitchAlg ()
| Standard Destructor.
virtual STATUS | initialize ()
| Initialize.
virtual STATUS | finalize ()
| Finalize.
virtual STATUS | execute ()
| Execute procedure.
void | _check (STATUS sc, CSTR msg) const
virtual STATUS | create (CSTR nam, CSTR typ)
| Create a partition object. The name identifies the partition uniquely.
virtual STATUS | create (CSTR nam, CSTR typ, IInterface *&pPartition)
| Create a partition object. The name identifies the partition uniquely.
virtual STATUS | drop (CSTR nam)
| Drop a partition object. The name identifies the partition uniquely.
virtual STATUS | drop (IInterface *pPartition)
| Drop a partition object. The name identifies the partition uniquely.
virtual STATUS | activate (CSTR nam)
| Activate a partition object. The name identifies the partition uniquely.
virtual STATUS | activate (IInterface *pPartition)
| Activate a partition object.
virtual STATUS | get (CSTR nam, IInterface *&pPartition) const
| Access a partition object. The name identifies the partition uniquely.
virtual STATUS | activePartition (std::string &nam, IInterface *&pPartition) const
| Access the active partition object.
Public Member Functions inherited from extends1< Algorithm, IPartitionControl >
| extends1 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends1 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends1 (A1 a1)
| Templated constructor with 1 argument.
| extends1 ()
| Default constructor.
virtual void * | i_cast (const InterfaceID &tid) const
| Implementation of IInterface::i_cast.
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)
| Implementation of IInterface::queryInterface.
virtual std::vector< std::string > | getInterfaceNames () const
| Implementation of IInterface::getInterfaceNames.
virtual | ~extends1 ()
| Virtual destructor.
Public Member Functions inherited from Algorithm
| Algorithm (const std::string &name, ISvcLocator *svcloc, const std::string &version=PACKAGE_VERSION)
| Constructor.
virtual | ~Algorithm ()
| Destructor.
virtual StatusCode | sysStart ()
| Reinitialization method invoked by the framework.
virtual StatusCode | sysInitialize ()
| Initialization method invoked by the framework.
virtual StatusCode | sysReinitialize ()
| Reinitialization method invoked by the framework.
virtual StatusCode | sysRestart ()
| Restart method invoked by the framework.
virtual StatusCode | sysExecute ()
| The actions to be performed by the algorithm on an event.
virtual StatusCode | sysStop ()
| System stop.
virtual StatusCode | sysFinalize ()
| System finalization.
virtual StatusCode | sysBeginRun ()
| beginRun method invoked by the framework.
virtual StatusCode | sysEndRun ()
| endRun method invoked by the framework.
virtual const std::string & | name () const
| The identifying name of the algorithm object.
virtual const std::string & | version () const
virtual StatusCode | configure ()
| Dummy implementation of IStateful::configure() method.
virtual StatusCode | terminate ()
| Dummy implementation of IStateful::terminate() method.
virtual StatusCode | start ()
| the default (empty) implementation of IStateful::start() method
virtual StatusCode | stop ()
| the default (empty) implementation of IStateful::stop() method
virtual StatusCode | reinitialize ()
| the default (empty) implementation of IStateful::reinitialize() method
virtual StatusCode | restart ()
| the default (empty) implementation of IStateful::restart() method
virtual bool | isExecuted () const
| Has this algorithm been executed since the last reset?
virtual void | setExecuted (bool state)
| Set the executed flag to the specified state.
virtual void | resetExecuted ()
| Reset the executed state of the Algorithm for the duration of the current event.
virtual StatusCode | beginRun ()
| Algorithm begin run.
virtual StatusCode | endRun ()
| Algorithm end run. This method is called at the end of the event loop.
virtual Gaudi::StateMachine::State | FSMState () const
| returns the current state of the algorithm
virtual Gaudi::StateMachine::State | targetFSMState () const
| returns the state the algorithm will be in after the ongoing transition
virtual bool | isEnabled () const
| Is this algorithm enabled or disabled?
virtual bool | filterPassed () const
| Did this algorithm pass or fail its filter criterion for the last event?
virtual void | setFilterPassed (bool state)
| Set the filter passed flag to the specified state.
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist.
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name")
void | setOutputLevel (int level)
| Set the output level for current algorithm.
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked.
SmartIF< IChronoStatSvc > & | chronoSvc () const
| The standard Chrono & Stat service, Return a pointer to the service if present.
SmartIF< IChronoStatSvc > & | chronoStatService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IDataProviderSvc > & | detSvc () const
| The standard detector data service.
SmartIF< IDataProviderSvc > & | detDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IConversionSvc > & | detCnvSvc () const
| The standard detector data persistency conversion service.
SmartIF< IConversionSvc > & | detDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IDataProviderSvc > & | eventSvc () const
| The standard event data service.
SmartIF< IDataProviderSvc > & | evtSvc () const
| shortcut for method eventSvc
SmartIF< IDataProviderSvc > & | eventDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IConversionSvc > & | eventCnvSvc () const
| The standard event data persistency conversion service.
SmartIF< IConversionSvc > & | eventDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IHistogramSvc > & | histoSvc () const
| The standard histogram service.
SmartIF< IHistogramSvc > & | histogramDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service.
SmartIF< IMessageSvc > & | messageService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< INTupleSvc > & | ntupleSvc () const
| The standard N tuple service.
SmartIF< INTupleSvc > & | ntupleService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IRndmGenSvc > & | randSvc () const
| AIDA-based NTuple service Returns a pointer to the AIDATuple service if present.
SmartIF< IToolSvc > & | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present.
SmartIF< IExceptionSvc > & | exceptionSvc () const
| Get the exception Service.
SmartIF< IAlgContextSvc > & | contextSvc () const
| get Algorithm Context Service
SmartIF< ISvcLocator > & | serviceLocator () const
| The standard service locator.
SmartIF< ISvcLocator > & | svcLoc () const
| shortcut for method serviceLocator
bool | registerContext () const
| register for Algorithm Context Service?
StatusCode | createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
| Create a sub algorithm.
std::vector< Algorithm * > * | subAlgorithms () const
| List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.
virtual StatusCode | setProperty (const Property &p)
| Implementation of IProperty::setProperty.
virtual StatusCode | setProperty (const std::string &s)
| Implementation of IProperty::setProperty.
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
| Implementation of IProperty::setProperty.
virtual StatusCode | getProperty (Property *p) const
| Implementation of IProperty::getProperty.
virtual const Property & | getProperty (const std::string &name) const
| Implementation of IProperty::getProperty.
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
| Implementation of IProperty::getProperty.
virtual const std::vector < Property * > & | getProperties () const
| Implementation of IProperty::getProperties.
StatusCode | setProperties ()
| Set the algorithm's properties.
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
SmartIF< IMonitorSvc > & | monitorSvc () const
| Access the monitor service.
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information.
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case)
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value
Public Member Functions inherited from extend_interfaces1< IPartitionControl >
virtual | ~extend_interfaces1 ()
| Virtual destructor.
Public Member Functions inherited from IPartitionControl
| DeclareInterfaceID (IPartitionControl, 1, 0)
| InterfaceID.
virtual StatusCode | create (const std::string &name, const std::string &type)=0
| Create a partition object. The name identifies the partition uniquely.
virtual StatusCode | create (const std::string &name, const std::string &type, IInterface *&pPartition)=0
| Create a partition object. The name identifies the partition uniquely.
virtual StatusCode | drop (const std::string &name)=0
| Drop a partition object. The name identifies the partition uniquely.
virtual StatusCode | activate (const std::string &name)=0
| Activate a partition object. The name identifies the partition uniquely.
virtual StatusCode | get (const std::string &name, IInterface *&pPartition) const =0
| Access a partition object. The name identifies the partition uniquely.
Public Member Functions inherited from IInterface
virtual unsigned long | addRef ()=0
| Increment the reference count of Interface instance.
virtual unsigned long | release ()=0
| Release Interface instance.
virtual unsigned long | refCount () const =0
| Current reference count.
virtual | ~IInterface ()
| Virtual destructor.

## Private Types
typedef StatusCode | STATUS
typedef const std::string & | CSTR

## Private Attributes
std::string | m_partName
| Job option to set the requested partition name.
std::string | m_toolType
| Job option to set the tool manipulating the multi-service name.
IPartitionControl * | m_actor
| reference to Partition Controller

## Additional Inherited Members
Public Types inherited from extends1< Algorithm, IPartitionControl >
typedef extends1 | base_class
| Typedef to this class.
typedef extend_interfaces1 < IPartitionControl > | extend_interfaces_base
| Typedef to the base of this class.
typedef extend_interfaces_base::ext_iids | interfaces
| MPL set of all the implemented interfaces.
Static Public Member Functions inherited from IInterface
static const InterfaceID & | interfaceID ()
| Return an instance of InterfaceID identifying the interface.
Protected Member Functions inherited from Algorithm
bool | isInitialized () const
| Has the Algorithm already been initialized?
bool | isFinalized () const
| Has the Algorithm already been finalized?
int | outputLevel () const
| retrieve the Algorithm output level
IntegerProperty & | outputLevelProperty ()
| Accessor for the Message level property.
void | initOutputLevel (Property &prop)
| callback for output level property

## Detailed Description

Small algorith, which switches the partition of a configurable multi-service.

The algorithm can be part of a sequence, which allows for e.g. buffer tampering.

Author
  : M.Frank

Version
  : 1.0

Definition at line 24 of file PartitionSwitchAlg.cpp.

## Member Typedef Documentation

typedef const std::string& PartitionSwitchAlg::CSTR
| private

Definition at line 27 of file PartitionSwitchAlg.cpp.

typedef StatusCode PartitionSwitchAlg::STATUS
| private

Definition at line 26 of file PartitionSwitchAlg.cpp.

## Constructor & Destructor Documentation

PartitionSwitchAlg::PartitionSwitchAlg | ( | CSTR | name,
|  | ISvcLocator * | pSvcLocator
| ) |  |
| inline

Standard algorithm constructor.

Definition at line 41 of file PartitionSwitchAlg.cpp.

: base_class(name, pSvcLocator), m_actor(0)
{
declareProperty("Partition", m_partName);
declareProperty("Tool", m_toolType="PartitionSwitchTool");
}

virtual PartitionSwitchAlg::~PartitionSwitchAlg | ( |  | ) |
| inline virtual

Standard Destructor.

Definition at line 48 of file PartitionSwitchAlg.cpp.

{
}

## Member Function Documentation

void PartitionSwitchAlg::_check | ( | STATUS | sc,
|  | CSTR | msg
| ) |  | const
| inline

Definition at line 98 of file PartitionSwitchAlg.cpp.

{
MsgStream log(msgSvc(), name());
log << MSG::ERROR << msg << " Status=" << sc.getCode() << endmsg;
}

virtual STATUS PartitionSwitchAlg::activate | ( | CSTR | nam | ) |
| inline virtual

Activate a partition object. The name identifies the partition uniquely.

Definition at line 125 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->activate(nam) : NO_INTERFACE;
CHECK(sc, "Cannot activate partition: "+nam);
}

virtual STATUS PartitionSwitchAlg::activate | ( | IInterface * | pPartition | ) |
| inline virtual

Activate a partition object.

Implements IPartitionControl.

Definition at line 130 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->activate(pPartition) : NO_INTERFACE;
CHECK(sc, "Cannot activate partition by Interface.");
}

virtual STATUS PartitionSwitchAlg::activePartition | ( | std::string & | nam,
|  | IInterface *& | pPartition
| ) |  | const
| inline virtual

Access the active partition object.

Implements IPartitionControl.

Definition at line 140 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->activePartition(nam, pPartition) : NO_INTERFACE;
CHECK(sc, "Cannot determine active partition.");
}

virtual STATUS PartitionSwitchAlg::create | ( | CSTR | nam,
|  | CSTR | typ
| ) |  |
| inline virtual

Create a partition object. The name identifies the partition uniquely.

Definition at line 105 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->create(nam,typ) : NO_INTERFACE;
CHECK(sc, "Cannot create partition: "+nam+" of type "+typ);
}

virtual STATUS PartitionSwitchAlg::create | ( | CSTR | nam,
|  | CSTR | typ,
|  | IInterface *& | pPartition
| ) |  |
| inline virtual

Create a partition object. The name identifies the partition uniquely.

Definition at line 110 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->create(nam,typ,pPartition) : NO_INTERFACE;
CHECK(sc, "Cannot create partition: "+nam+" of type "+typ);
}

virtual STATUS PartitionSwitchAlg::drop | ( | CSTR | nam | ) |
| inline virtual

Drop a partition object. The name identifies the partition uniquely.

Definition at line 115 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->drop(nam) : NO_INTERFACE;
CHECK(sc, "Cannot drop partition: "+nam);
}

virtual STATUS PartitionSwitchAlg::drop | ( | IInterface * | pPartition | ) |
| inline virtual

Drop a partition object. The name identifies the partition uniquely.

Implements IPartitionControl.

Definition at line 120 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->drop(pPartition) : NO_INTERFACE;
CHECK(sc, "Cannot drop partition by Interface.");
}

virtual STATUS PartitionSwitchAlg::execute | ( |  | ) |
| inline virtual

Execute procedure.

Definition at line 82 of file PartitionSwitchAlg.cpp.

{
if ( m_actor ) {
STATUS sc = m_actor->activate(m_partName);
if ( !sc.isSuccess() ) {
MsgStream log(msgSvc(), name());
log << MSG::ERROR << "Cannot activate partition \""
<< m_partName << "\"!" << endmsg;
}
return sc;
}
MsgStream log(msgSvc(), name());
log << MSG::ERROR << "The partition control tool \"" << name()
<< "." << m_toolType << "\" cannot be accessed!" << endmsg;
return STATUS::FAILURE;
}

virtual STATUS PartitionSwitchAlg::finalize | ( |  | ) |
| inline virtual

Finalize.

Reimplemented from Algorithm.

Definition at line 74 of file PartitionSwitchAlg.cpp.

{
SmartIF<IAlgTool> tool(m_actor);
if ( tool ) toolSvc()->releaseTool(tool);
m_actor = 0;
return STATUS::SUCCESS;
}

virtual STATUS PartitionSwitchAlg::get | ( | CSTR | nam,
|  | IInterface *& | pPartition
| ) |  | const
| inline virtual

Access a partition object. The name identifies the partition uniquely.

Definition at line 135 of file PartitionSwitchAlg.cpp.

{
STATUS sc = m_actor ? m_actor->get(nam, pPartition) : NO_INTERFACE;
CHECK(sc, "Cannot get partition "+nam);
}

virtual STATUS PartitionSwitchAlg::initialize | ( |  | ) |
| inline virtual

Initialize.

Release old tool

Now check if the partition is present. If not: try to create it

Reimplemented from Algorithm.

Definition at line 52 of file PartitionSwitchAlg.cpp.

{
MsgStream log(msgSvc(), name());
SmartIF<IAlgTool> tool(m_actor);
STATUS sc = toolSvc()->retrieveTool(m_toolType,m_actor,this);
if ( sc.isFailure() ) {
log << MSG::ERROR << "Unable to load PartitionSwitchTool "
<< m_toolType << endmsg;
return sc;
}
if ( tool ) toolSvc()->releaseTool(tool);
IInterface* partititon = 0;
sc = m_actor->get(m_partName, partititon);
if ( !sc.isSuccess() ) {
log << MSG::ERROR << "Cannot access partition \""
<< m_partName << "\"" << endmsg;
}
return sc;
}

## Member Data Documentation

IPartitionControl* PartitionSwitchAlg::m_actor
| private

reference to Partition Controller

Definition at line 36 of file PartitionSwitchAlg.cpp.

std::string PartitionSwitchAlg::m_partName
| private

Job option to set the requested partition name.

Definition at line 32 of file PartitionSwitchAlg.cpp.

std::string PartitionSwitchAlg::m_toolType
| private

Job option to set the tool manipulating the multi-service name.

Definition at line 34 of file PartitionSwitchAlg.cpp.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/DataSvc/PartitionSwitchAlg.cpp