#ifndef CDUTILS_CORE_H #define CDUTILS_CORE_H #include "cdutils_k_types.h" #include "piconnection.h" #include "pidatatransfer.h" namespace CDUtils { class Core; class __Core_Initializer__ { public: __Core_Initializer__(); ~__Core_Initializer__(); static int count_; static Core * __instance__; }; class Core: public PIObject { PIOBJECT(CDUtils::Core) friend class __Core_Initializer__; public: static Core * instance() {return __Core_Initializer__::__instance__;} EVENT(K_Sended) EVENT(K_Received) EVENT_HANDLER(void, K_Send); EVENT_HANDLER(void, K_Request); KSection k_; void k_write(PIIODevice * d); void k_read(PIIODevice * d); private: Core(const char * conf = #ifdef CDPULT pult_config #else app_config #endif ); EVENT_HANDLER2(void, dataReceived, const PIString &, from, const PIByteArray &, data); void k_rec(const PIByteArray & data); void x_rec(const PIByteArray & data); void c_rec(const PIByteArray & data); static const char app_config[], pult_config[]; PIConnection connection; PIMap > k_sections; // [enum KSection][index] = CDUtils::KSection }; static __Core_Initializer__ __Core_initializer__; } #endif // CDUTILS_CORE_H