00001 #ifndef SAMPLE_HANDLER_SAMPLE_COMPOSITE_HH
00002 #define SAMPLE_HANDLER_SAMPLE_COMPOSITE_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <SampleHandler/Global.h>
00015
00016 #include <string>
00017 #include <vector>
00018 #include <SampleHandler/Sample.h>
00019
00020 namespace SH
00021 {
00026 class SampleComposite : public Sample
00027 {
00028
00029
00030
00031
00036 public:
00037 void testInvariant () const;
00038
00039
00047 public:
00048 SampleComposite ();
00049
00050
00058 public:
00059 SampleComposite (const std::string& name);
00060
00061
00070 public:
00071 void add (const SamplePtr& sample);
00072
00073
00074
00075
00076
00077
00078
00080 protected:
00081 virtual std::size_t getNumFiles () const;
00082
00084 protected:
00085 virtual std::string getFileName (std::size_t index) const;
00086
00088 protected:
00089 virtual SamplePtr doMakeLocal () const;
00090
00092 protected:
00093 virtual std::vector<std::string> doMakeFileList () const;
00094
00096 protected:
00097 virtual void
00098 doUpdateLocation (const std::string& from, const std::string& to);
00099
00101 protected:
00102 virtual bool getContains (const std::string& name) const;
00103
00105 protected:
00106 virtual void doAddSamples (SampleHandler& result);
00107
00108
00109
00110
00111
00112
00113
00115 private:
00116 std::vector<SamplePtr> m_samples;
00117
00119 private:
00120 typedef std::vector<SamplePtr>::const_iterator SamplesIter;
00121
00122 ClassDef (SampleComposite, 1);
00123 };
00124 }
00125
00126 #endif