00001 #ifndef Handle_H_ 00002 #define Handle_H_ 00003 00004 00005 template< typename T > 00006 class Handle 00007 { 00008 public: 00009 Handle() : _handle(0) {} 00010 virtual ~Handle() { _handle = T(0); } 00011 operator T() { return _handle; } 00012 virtual int IsInit(void) { return 0; } 00013 virtual int Init(int argc,char** argv) { return 0; } 00014 virtual void ShutDown(void) {} 00015 protected: 00016 T _handle; 00017 }; 00018 00019 #endif /* Handle_H_ 00020 */