MTMCSim  0.5
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
sptrWrapper.h
Go to the documentation of this file.
1 #ifndef _SPTRWRAPPER_H_INCLUDED
2 #define _SPTRWRAPPER_H_INCLUDED
3 
4 #include <boost/shared_ptr.hpp>
5 
6 template<class T>
7  class sptrWrapper
8  {
9  public:
11  sptrWrapper()
12  {}
13 
14  sptrWrapper(const T& inner)
15  {
16  sptr = inner.clone();
17  }
18 
20  ~sptrWrapper()
21  {}
22 
23  sptrWrapper(const sptrWrapper<T>& original)
24  {
25  if (original.sptr !=0)
26  DataPtr = original.DataPtr->clone();
27  else
28  DataPtr=0;
29  }
30 Wrapper& operator=(const Wrapper<T>& original)
31 {
32 if (this != &original)
33 {
34 if (DataPtr!=0)
35 delete DataPtr;
36 DataPtr = (original.DataPtr !=0) ?
37 original.DataPtr->clone() : 0;
38 }
39 return *this;
40 }
41 T& operator*()
42 {
43 return *DataPtr;
44 }
45 const T& operator*() const
46 {
47 return *DataPtr;
48 }
49 const T* const operator->() const
50 {
51 return DataPtr;
52 }
53 
54 
55  private:
56  shard_ptr<T> sptr;
57 
58 
59 #endif