CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/EventFilter/StorageManager/interface/EventStreamConfigurationInfo.h

Go to the documentation of this file.
00001 // $Id: EventStreamConfigurationInfo.h,v 1.12 2011/08/31 20:11:59 wmtan Exp $
00003 
00004 #ifndef EventFilter_StorageManager_EventStreamConfigurationInfo_h
00005 #define EventFilter_StorageManager_EventStreamConfigurationInfo_h
00006 
00007 #include "EventFilter/StorageManager/interface/StreamID.h"
00008 #include "IOPool/Streamer/interface/MsgTools.h"
00009 
00010 #include <boost/shared_ptr.hpp>
00011 
00012 #include <string>
00013 #include <vector>
00014 #include <iosfwd>
00015 
00016 namespace stor
00017 {
00018 
00027   class EventStreamConfigurationInfo
00028   {
00029 
00030   public:
00031 
00032     // Constructor:
00033     EventStreamConfigurationInfo( const std::string& streamLabel,
00034                                   const int maxFileSizeMB,
00035                                   const std::string& triggerSelection,
00036                                   const Strings& eventSelection,
00037                                   const std::string& outputModuleLabel,
00038                                   double fractionToDisk ):
00039       streamLabel_( streamLabel ),
00040       maxFileSizeMB_( maxFileSizeMB ),
00041       triggerSelection_( triggerSelection ),
00042       eventSelection_( eventSelection ),
00043       outputModuleLabel_( outputModuleLabel ),
00044       fractionToDisk_( fractionToDisk ),
00045       streamId_(0)
00046     {}
00047 
00048     // Destructor:
00049     ~EventStreamConfigurationInfo() {}
00050 
00051     // Accessors:
00052     const std::string& streamLabel() const { return streamLabel_; }
00053     const int maxFileSizeMB() const { return maxFileSizeMB_; }
00054     const std::string& triggerSelection() const { return triggerSelection_; }
00055     const Strings& eventSelection() const { return eventSelection_; }
00056     const std::string& outputModuleLabel() const { return outputModuleLabel_; }
00057     double fractionToDisk() const { return fractionToDisk_; }
00058     StreamID streamId() const { return streamId_; }
00059 
00060     // Comparison:
00061     bool operator<(const EventStreamConfigurationInfo&) const;
00062 
00063     // Set stream Id:
00064     void setStreamId( StreamID sid ) { streamId_ = sid; }
00065 
00066     // Output:
00067     friend std::ostream& operator <<
00068       ( std::ostream&, const EventStreamConfigurationInfo& );
00069 
00070   private:
00071 
00072     std::string streamLabel_;
00073     int maxFileSizeMB_;
00074     std::string triggerSelection_;
00075     Strings eventSelection_;
00076     std::string outputModuleLabel_;
00077     double fractionToDisk_;
00078     StreamID streamId_;
00079 
00080   };
00081 
00082   typedef std::vector<EventStreamConfigurationInfo> EvtStrConfigList;
00083   typedef boost::shared_ptr<EvtStrConfigList> EvtStrConfigListPtr;
00084 
00085   std::ostream& operator << ( std::ostream&, const EventStreamConfigurationInfo& );
00086 
00087 } // namespace stor
00088 
00089 #endif // EventFilter_StorageManager_EventStreamConfigurationInfo_h
00090 
00091