#include <SGHiveMgrSvc.h>
Definition at line 30 of file SGHiveMgrSvc.h.
 
◆ HiveMgrSvc()
      
        
          | HiveMgrSvc::HiveMgrSvc | ( | const std::string & | name, | 
        
          |  |  | ISvcLocator * | svc | 
        
          |  | ) |  |  | 
      
 
Standard Service Constructor. sets active store to default event store. 
Definition at line 17 of file SGHiveMgrSvc.cxx.
   23   declareProperty(
"NSlots", 
m_nSlots, 
"number of event slots");
 
 
 
 
◆ ~HiveMgrSvc()
  
  | 
        
          | virtual SG::HiveMgrSvc::~HiveMgrSvc | ( |  | ) |  |  | inlinevirtual | 
 
 
◆ allocateStore()
  
  | 
        
          | size_t HiveMgrSvc::allocateStore | ( | int | evtNumber | ) |  |  | overridevirtual | 
 
Allocate a store slot for new event. 
- Parameters
- 
  
    | evtnumber | [IN] Event number |  | slot | [OUT] Returned slot or slot number |  
 
- Returns
- Slot number (npos to indicate an error). 
Definition at line 98 of file SGHiveMgrSvc.cxx.
  100     error() << 
"No slots available for event number " << evtNumber << 
endmsg;
 
  101     return std::string::npos;
 
  106       error() << 
"Attempt to allocate an event slot for an event that is still active: event number " << evtNumber << 
endmsg;
 
  107       return std::string::npos;
 
  111               << 
" allocated to event number "<< evtNumber << 
endmsg;
 
  116   error() << 
"No slots available for event number " << evtNumber << 
endmsg;
 
  117   return std::string::npos;
 
 
 
 
◆ clearStore()
  
  | 
        
          | StatusCode HiveMgrSvc::clearStore | ( | size_t | slotIndex | ) |  |  | overridevirtual | 
 
Clear a given 'slot'. 
- Parameters
- 
  
    | slot | [IN] Slot number (event slot) * |  
 
- Returns
- Status code indicating failure or success. 
Definition at line 57 of file SGHiveMgrSvc.cxx.
   60     rc=
m_slots[slotIndex].pEvtStore->clearStore();
 
   61     if (
rc.isSuccess()) 
debug() << 
"cleared store " << slotIndex << 
endmsg;
 
   63   if (!
rc.isSuccess()) 
error() << 
"could not clear store " << slotIndex << 
endmsg;
 
 
 
 
◆ exists()
  
  | 
        
          | bool HiveMgrSvc::exists | ( | const DataObjID & | id | ) |  |  | overridevirtual | 
 
Check if a data object exists in store. 
TODO: remove the method ASA a cross-experiment event data store interface emerges
- Returns
- boolean 
Definition at line 161 of file SGHiveMgrSvc.cxx.
  164   std::string 
key = 
id.key();
 
  165   key.erase(0,
key.find(
'+')+1);
 
  167   if (
id.clid() == 0) {
 
  171     std::string 
cl = 
id.fullKey();
 
  172     cl.erase(
cl.find(
'/'),
cl.length());
 
  174     DataObjID 
d2(std::move(
cl),
key);
 
 
 
 
◆ finalize()
  
  | 
        
          | StatusCode HiveMgrSvc::finalize | ( |  | ) |  |  | overridevirtual | 
 
Definition at line 220 of file SGHiveMgrSvc.cxx.
  226     CHECK( 
s.pEvtStore->finalize() );
 
  227     s.pEvtStore->release();
 
  230   return StatusCode::SUCCESS;
 
 
 
 
◆ freeSlots()
  
  | 
        
          | size_t HiveMgrSvc::freeSlots | ( |  | ) |  |  | overridevirtual | 
 
 
◆ freeStore()
  
  | 
        
          | StatusCode HiveMgrSvc::freeStore | ( | size_t | slotIndex | ) |  |  | overridevirtual | 
 
Free a store slot. 
- Parameters
- 
  
  
- Returns
- Status code indicating failure or success. 
Definition at line 125 of file SGHiveMgrSvc.cxx.
  129       debug() << 
"Slot " << slotIndex << 
" is already free" << 
endmsg;
 
  132       m_slots[slotIndex].eventNumber = -1;
 
  136     return StatusCode::SUCCESS;
 
  139     return StatusCode::FAILURE;
 
 
 
 
◆ getNumberOfStores()
  
  | 
        
          | size_t HiveMgrSvc::getNumberOfStores | ( |  | ) | const |  | overridevirtual | 
 
Get the number of 'slots'. 
- Returns
- Number of event stores allocated in the whiteboard 
Definition at line 86 of file SGHiveMgrSvc.cxx.
 
 
◆ getPartitionNumber()
  
  | 
        
          | size_t HiveMgrSvc::getPartitionNumber | ( | int | evtNumber | ) | const |  | overridevirtual | 
 
Get the slot number corresponding to a given event. 
- Parameters
- 
  
    | evtnumber | [IN] Event number |  
 
- Returns
- slot number (npos to indicate an error).
- Parameters
- 
  
    | evtNumber | [IN] Event number |  
 
- Returns
- slot number (npos to indicate an error). 
Definition at line 149 of file SGHiveMgrSvc.cxx.
  154   return std::string::npos;
 
 
 
 
◆ initialize()
  
  | 
        
          | StatusCode HiveMgrSvc::initialize | ( |  | ) |  |  | overridevirtual | 
 
Definition at line 182 of file SGHiveMgrSvc.cxx.
  186     fatal() << 
"Unable to initialize base class" << 
endmsg;
 
  187     return StatusCode::FAILURE;
 
  191     fatal() << 
"Unable to get hive event store" << 
endmsg;
 
  192     return StatusCode::FAILURE;
 
  200     std::ostringstream oss;
 
  203         child->initialize().isSuccess() &&
 
  204         0 != (pSG = 
dynamic_cast<SGImplSvc*
>(child)) )
 
  209       fatal() << 
"Unable to clone event store " << oss.str() << 
endmsg;
 
  210       return StatusCode::FAILURE;
 
  215   Gaudi::Concurrency::ConcurrencyFlags::setNumConcEvents( 
m_nSlots );
 
 
 
 
◆ selectStore()
  
  | 
        
          | StatusCode HiveMgrSvc::selectStore | ( | size_t | slotIndex | ) |  |  | overridevirtual | 
 
Activate an given 'slot' for all subsequent calls within the same thread id. 
- Parameters
- 
  
    | slot | [IN] Slot number (event slot) * |  
 
- Returns
- Status code indicating failure or success. 
Definition at line 46 of file SGHiveMgrSvc.cxx.
   49   return StatusCode::SUCCESS;
 
 
 
 
◆ setNumberOfStores()
  
  | 
        
          | StatusCode HiveMgrSvc::setNumberOfStores | ( | size_t | slots | ) |  |  | overridevirtual | 
 
Set the number of 'slots'. 
- Parameters
- 
  
    | slot | [IN] Slot number (event slot) * |  
 
- Returns
- Status code indicating failure or success. 
Definition at line 72 of file SGHiveMgrSvc.cxx.
   74   if(FSMState() ==  Gaudi::StateMachine::INITIALIZED) {
 
   75     fatal() << 
"Too late to change the number of slots!" << 
endmsg;
 
   76     return StatusCode::FAILURE;
 
   81     Gaudi::Concurrency::ConcurrencyFlags::setNumConcEvents( slots );
 
   82     return StatusCode::SUCCESS;
 
 
 
 
◆ setNumProcs()
  
  | 
        
          | void HiveMgrSvc::setNumProcs | ( | size_t | numProcs | ) |  |  | staticprivate | 
 
Set number of concurrent processes. 
This can only be called by "friends" of this class. Its sole purpose is to have a common entry point within ATLAS to call the private methods of Gaudi::ConcurrencyFlags.
- Parameters
- 
  
    | numProcs | [IN] Number of concurrent processes |  
 
Definition at line 35 of file SGHiveMgrSvc.cxx.
   37   Gaudi::Concurrency::ConcurrencyFlags::setNumProcs(numProcs);
 
 
 
 
◆ start()
  
  | 
        
          | StatusCode HiveMgrSvc::start | ( |  | ) |  |  | overridevirtual | 
 
 
◆ ::HltEventLoopMgr
◆ TestSGHiveMgrSvc
  
  | 
        
          | friend class TestSGHiveMgrSvc |  | friend | 
 
 
◆ m_freeSlots
  
  | 
        
          | std::atomic<size_t> SG::HiveMgrSvc::m_freeSlots {0} |  | private | 
 
 
◆ m_hiveStore
◆ m_mutex
  
  | 
        
          | std::mutex SG::HiveMgrSvc::m_mutex |  | mutableprivate | 
 
 
◆ m_nSlots
  
  | 
        
          | size_t SG::HiveMgrSvc::m_nSlots |  | private | 
 
 
◆ m_slots
The documentation for this class was generated from the following files:
 
StatusCode clone(const IService *parent, const std::string &childName, Service *&child)
given a reference to a parent svc sets a reference to a cloned child