![]() |
|
|||
File indexing completed on 2025-02-21 10:00:31
0001 /***********************************************************************************\ 0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations * 0003 * * 0004 * This software is distributed under the terms of the Apache version 2 licence, * 0005 * copied verbatim in the file "LICENSE". * 0006 * * 0007 * In applying this licence, CERN does not waive the privileges and immunities * 0008 * granted to it by virtue of its status as an Intergovernmental Organization * 0009 * or submit itself to any jurisdiction. * 0010 \***********************************************************************************/ 0011 #ifndef GAUDIKERNEL_IHIVEWHITEBOARD_H 0012 #define GAUDIKERNEL_IHIVEWHITEBOARD_H 0013 0014 // Framework include files 0015 #include "GaudiKernel/DataObjID.h" 0016 #include "GaudiKernel/IInterface.h" 0017 0018 // C++ include files 0019 #include <string> 0020 0021 /**@class IHiveWhiteBoard IHiveWhiteBoard.h GaudiKernel/IHiveWhiteBoard.h 0022 * 0023 * @author Pere Mato 0024 * @author Danilo Piparo 0025 * @version 1.0 0026 */ 0027 class GAUDI_API IHiveWhiteBoard : public extend_interfaces<IInterface> { 0028 public: 0029 /// InterfaceID 0030 DeclareInterfaceID( IHiveWhiteBoard, 2, 0 ); 0031 0032 /** Activate an given 'slot' for all subsequent calls within the 0033 * same thread id. 0034 * 0035 * @param partition [IN] Partition number (event slot) * 0036 * @return Status code indicating failure or success. 0037 */ 0038 virtual StatusCode selectStore( size_t partitionIndex ) = 0; 0039 0040 /** Clear an given 'slot'. 0041 * 0042 * @param partition [IN] Partition number (event slot) * 0043 * @return Status code indicating failure or success. 0044 */ 0045 virtual StatusCode clearStore( size_t partitionIndex ) = 0; 0046 0047 /** Set the number of 'slots'. 0048 * 0049 * @param partition [IN] Partition number (event slot) * 0050 * @return Status code indicating failure or success. 0051 */ 0052 virtual StatusCode setNumberOfStores( size_t slots ) = 0; 0053 0054 /** Get the number of 'slots'. 0055 * 0056 * @return Number of event stores allocated in the whiteboard 0057 */ 0058 virtual size_t getNumberOfStores() const = 0; 0059 0060 /** Check if a data object exists in store. 0061 * TODO: remove the method ASA a cross-experiment 0062 * event data store interface emerges 0063 * 0064 * @return boolean 0065 */ 0066 virtual bool exists( const DataObjID& ) = 0; 0067 0068 /** Allocate a store partition for new event 0069 * 0070 * @param evtnumber [IN] Event number 0071 * @return Partition number (npos to indicate an error). 0072 */ 0073 virtual size_t allocateStore( int evtnumber ) = 0; 0074 0075 /** Free a store partition 0076 * 0077 * @param partition [IN] Partition number 0078 * @return Status code indicating failure or success. 0079 */ 0080 virtual StatusCode freeStore( size_t partitionIndex ) = 0; 0081 0082 /** Get the partition number corresponding to a given event 0083 * 0084 * @param evtnumber [IN] Event number 0085 * @return Partition number (npos to indicate an error). 0086 */ 0087 virtual size_t getPartitionNumber( int eventnumber ) const = 0; 0088 0089 /// Get free slots number 0090 virtual size_t freeSlots() = 0; 0091 }; 0092 #endif // GAUDIKERNEL_IHIVEWHITEBOARD_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |