Files
qad/cd_utils/cdutils_core.h

66 lines
1.3 KiB
C++

#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<int, PIMap<int, KSection> > k_sections; // [enum KSection][index] = CDUtils::KSection
};
static __Core_Initializer__ __Core_initializer__;
}
#endif // CDUTILS_CORE_H