00001 #ifndef FASTSHOWER_SAMPLERPTR_H 00002 #define FASTSHOWER_SAMPLERPTR_H 00003 00004 #ifndef FASTSHOWER_DEBUGBASE_H 00005 #include "FastShowerUtils/DebugBase.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_ISAMPLER_H 00009 #include "FastShowerUtils/ISampler.h" 00010 #endif 00011 00012 00013 #ifndef FASTSHOWER_PARTICLEPARAMETERS_H 00014 #include "FastShowerUtils/ParticleParameters.h" 00015 #endif 00016 00017 #ifndef FASTSHOWER_SP_H 00018 #include "FastShowerUtils/SP.h" 00019 #endif 00020 00021 #ifndef STD_STRING_H 00022 #define STD_STRING_H 00023 #include <string> 00024 #endif 00025 00026 #include <algorithm> 00027 00028 namespace FastShower{ 00033 class IPinger; 00034 class SamplerPtr: public ISampler, private DebugBase{ 00035 public: 00036 // 00037 SamplerPtr(ISampler* s, std::string s=""); 00038 SamplerPtr(const SamplerPtr &); 00039 SamplerPtr& operator=(const SamplerPtr& s); 00040 ~SamplerPtr(){}; 00041 00045 virtual ISampler* clone() const; 00046 virtual void sample(const PolyArgs&, CoreSamples&) const; 00047 virtual double lastValue(const CoreSamples& cs) const; 00048 00052 virtual void ping(IPinger&) const; 00053 virtual void components(IDebug::Cpts& ) const; 00054 private: 00055 SP<ISampler> m_pointee; 00056 }; 00057 } 00058 #endif 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071