00001
00013 #ifndef MANAGER_H
00014 #define MANAGER_H
00015
00016 #include <stdexcept>
00017 #include <string>
00018 #include <iostream>
00019
00023 template <class T>
00024 class Manager {
00025 protected:
00026 T _t;
00027
00028 public:
00029 Manager() : _t(0), _isOwner(false) {}
00030 Manager<T>(const T t) : _t(t), _isOwner(true) {}
00031 operator T() const {return _t;}
00032
00033 protected:
00034 bool isOwner() const {return _isOwner;}
00035 void release() {_isOwner = false;}
00036
00037 private:
00038 bool _isOwner;
00039 };
00040
00041 #endif