00001 #ifndef SAMPLE_HANDLER_SAMPLE_PTR_HH
00002 #define SAMPLE_HANDLER_SAMPLE_PTR_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <SampleHandler/Global.h>
00015
00016 #include <memory>
00017
00018 namespace SH
00019 {
00030 class SamplePtr
00031 {
00032
00033
00034
00035
00040 public:
00041 void testInvariant () const;
00042
00043
00048 public:
00049 SamplePtr ();
00050
00051
00056 public:
00057 SamplePtr (Sample *val_sample);
00058
00059
00064 public:
00065 explicit SamplePtr (std::unique_ptr<Sample> val_sample);
00066
00067
00072 public:
00073 SamplePtr (const SamplePtr& that);
00074
00075
00080 public:
00081 ~SamplePtr ();
00082
00083
00088 public:
00089 SamplePtr& operator = (const SamplePtr& that);
00090
00091
00097 public:
00098 bool empty () const;
00099
00100
00106 public:
00107 Sample *get () const;
00108
00109
00116 public:
00117 Sample *operator -> () const;
00118
00119
00126 public:
00127 Sample& operator * () const;
00128
00129
00130
00131
00132
00133
00134
00136 private:
00137 Sample *m_sample;
00138 };
00139 }
00140
00141 #endif