CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
InitMsgCollection.h
Go to the documentation of this file.
1 // $Id: InitMsgCollection.h,v 1.13 2011/03/07 15:31:32 mommsen Exp $
3 
4 #ifndef EventFilter_StorageManager_InitMsgCollection_h
5 #define EventFilter_StorageManager_InitMsgCollection_h
6 
8 
9 #include "boost/shared_ptr.hpp"
10 #include "boost/thread/thread.hpp"
11 #include <vector>
12 #include <map>
13 #include <string>
14 #include <utility>
15 
16 namespace stor
17 {
18 
29  typedef std::vector<unsigned char> InitMsgBuffer;
30  typedef boost::shared_ptr<InitMsgBuffer> InitMsgSharedPtr;
31 
33  {
34 
35  public:
36 
41 
46 
62  bool addIfUnique(InitMsgView const& initMsgView);
63 
83  InitMsgSharedPtr getElementForOutputModule(const std::string& requestedOMLabel) const;
84 
92 
100  InitMsgSharedPtr getElementAt(const unsigned int index) const;
101 
105  void clear();
106 
112  size_t size() const;
113 
120  size_t initMsgCount(const std::string& outputModuleLabel) const;
121 
128  size_t maxMsgCount() const;
129 
135  std::string getSelectionHelpString() const;
136 
143  std::string getOutputModuleName(const uint32_t outputModuleId) const;
144 
155  static std::string stringsToText(Strings const& list,
156  unsigned int maxCount = 0);
157 
158  private:
159 
165  void add(InitMsgView const& initMsgView);
166 
167  typedef std::pair<InitMsgSharedPtr, size_t> InitMsgPtrAndCount;
168  typedef std::vector<InitMsgPtrAndCount> InitMsgList;
170 
171  typedef std::map<uint32_t, std::string> OutModTable;
174  };
175 
176  typedef boost::shared_ptr<InitMsgCollection> InitMsgCollectionPtr;
177 
178 } //namespace stor
179 
180 #endif // EventFilter_StorageManager_InitMsgCollection_h
181 
182 
std::vector< unsigned char > InitMsgBuffer
InitMsgSharedPtr getElementAt(const unsigned int index) const
static boost::mutex mutex
Definition: LHEProxy.cc:11
std::vector< std::string > Strings
Definition: MsgTools.h:18
void add(InitMsgView const &initMsgView)
boost::shared_ptr< InitMsgBuffer > InitMsgSharedPtr
size_t initMsgCount(const std::string &outputModuleLabel) const
std::string getOutputModuleName(const uint32_t outputModuleId) const
std::pair< InitMsgSharedPtr, size_t > InitMsgPtrAndCount
InitMsgSharedPtr getElementForOutputModule(const std::string &requestedOMLabel) const
boost::shared_ptr< InitMsgCollection > InitMsgCollectionPtr
std::string getSelectionHelpString() const
std::vector< InitMsgPtrAndCount > InitMsgList
std::map< uint32_t, std::string > OutModTable
bool addIfUnique(InitMsgView const &initMsgView)
InitMsgSharedPtr getLastElement() const
static std::string stringsToText(Strings const &list, unsigned int maxCount=0)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run