00001 /* === S Y N F I G ========================================================= */ 00021 /* ========================================================================= */ 00022 00023 /* === S T A R T =========================================================== */ 00024 00025 #ifndef __SYNFIG_MODULE_H 00026 #define __SYNFIG_MODULE_H 00027 00028 /* === H E A D E R S ======================================================= */ 00029 00030 #include <ETL/handle> 00031 00032 /* === M A C R O S ========================================================= */ 00033 00034 /* === T Y P E D E F S ===================================================== */ 00035 00036 /* === C L A S S E S & S T R U C T S ======================================= */ 00037 00038 namespace studio { 00039 00040 class Module : public etl::shared_object 00041 { 00042 bool status_; 00043 00044 protected: 00045 Module(); 00046 00047 public: 00048 virtual ~Module(); 00049 00050 bool start(); 00051 00052 bool stop(); 00053 00054 bool get_status()const; 00055 00056 protected: 00057 00058 virtual bool start_vfunc()=0; 00059 virtual bool stop_vfunc()=0; 00060 }; 00061 00062 00063 }; // END of namespace studio 00064 00065 /* === E N D =============================================================== */ 00066 00067 #endif