#ifndef BC5898D8_C525_4FD9_9609_B2112CB1BE92 #define BC5898D8_C525_4FD9_9609_B2112CB1BE92 /* ******************************************************************************* * INCLUDE ******************************************************************************* */ #include namespace Video { namespace Core { /* ******************************************************************************* * CLASS DECLARE ******************************************************************************* */ class System { protected: System(); public: virtual ~System(); public: static uint64_t timestamp(); template static void registerClass(); protected: virtual uint64_t getTimestamp() = 0; private: static System* _pInstance; }; template inline void System::registerClass() { _pInstance = new T(); } } } #endif