00001 #ifndef EVENT_LOOP_OUTPUT_STREAM_HH
00002 #define EVENT_LOOP_OUTPUT_STREAM_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00017
00018
00019
00020 #include <EventLoop/Global.h>
00021
00022 #include <vector>
00023 #include <TObject.h>
00024 #include <SampleHandler/MetaObject.h>
00025 #include <SampleHandler/SampleHandler.h>
00026
00027 namespace EL
00028 {
00029 class OutputStream : public TObject
00030 {
00031
00032
00033
00034
00037 public:
00038 void testInvariant () const;
00039
00040
00044 public:
00045 OutputStream ();
00046
00047
00052 public:
00053 OutputStream (const std::string& val_label);
00054
00055
00060 public:
00061 OutputStream (const std::string& val_label, const std::string& val_type);
00062
00063
00067 public:
00068 OutputStream (const OutputStream& that);
00069
00070
00073 public:
00074 ~OutputStream ();
00075
00076
00080 public:
00081 OutputStream& operator = (OutputStream that);
00082
00083
00086 public:
00087 void swap (OutputStream& that);
00088
00089
00094 public:
00095 const std::string& label () const;
00096 void label (const std::string& val_label);
00097
00098
00102 public:
00103 SH::MetaObject *options ();
00104 const SH::MetaObject *options () const;
00105
00106
00110 public:
00111 const SH::DiskOutput *output() const;
00112 void output (SH::DiskOutput *output_swallow);
00113
00114
00115 public:
00116 static const std::string optType;
00117 static const std::string optMergeCmd;
00118 static const std::string optContainerSuffix;
00119
00120
00121
00122
00123
00124
00126 private:
00127 std::string m_label;
00128 private:
00129 SH::MetaObject m_options;
00130 private:
00131 SH::DiskOutput *m_output;
00132
00133 ClassDef (OutputStream, 2);
00134 };
00135 }
00136
00137 #endif