84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
#ifndef CDUTILS_CORE_H
|
|
#define CDUTILS_CORE_H
|
|
|
|
#include "cdutils_types.h"
|
|
#include "cdutils_protocol.h"
|
|
#include "piconnection.h"
|
|
#include "pidatatransfer.h"
|
|
|
|
|
|
namespace CDUtils {
|
|
|
|
class CDCore;
|
|
|
|
|
|
class __Core_Initializer__ {
|
|
public:
|
|
__Core_Initializer__();
|
|
~__Core_Initializer__();
|
|
static int count_;
|
|
static CDCore * __instance__;
|
|
};
|
|
|
|
|
|
class CDCore: public PIObject
|
|
{
|
|
PIOBJECT(CDUtils::CDCore)
|
|
friend class __Core_Initializer__;
|
|
friend class CDSection;
|
|
friend class KInterface;
|
|
public:
|
|
static CDCore * instance() {return __Core_Initializer__::__instance__;}
|
|
|
|
EVENT(K_Sended)
|
|
EVENT(K_SendFail)
|
|
EVENT(K_Received)
|
|
EVENT(K_ReceiveFail)
|
|
EVENT(K_ChangedGlobal)
|
|
EVENT1(K_KeepNamesRequest, bool*, kn)
|
|
EVENT_HANDLER(void, K_Send);
|
|
EVENT_HANDLER(void, K_Request);
|
|
|
|
void k_write(PIIODevice * d);
|
|
void k_read(PIIODevice * d);
|
|
void k_parse(PIIODevice * d);
|
|
void k_update(PIIODevice * d);
|
|
void k_calculate();
|
|
void initApp();
|
|
void initPult();
|
|
void init(const PIString & configuration);
|
|
void startPing();
|
|
bool inProgress() {return sendt.isRunning();}
|
|
|
|
CDSection & k() {return k_;}
|
|
|
|
static PIString pultConfig() {return PIString(pult_config);}
|
|
static PIString appConfig() {return PIString(app_config);}
|
|
|
|
private:
|
|
CDCore();
|
|
~CDCore();
|
|
EVENT_HANDLER2(void, dataReceived, const PIString &, from, const PIByteArray &, data);
|
|
EVENT_HANDLER1(void, dtSendRequest, PIByteArray &, data);
|
|
EVENT_HANDLER1(void, dtReceiveFinished, bool, ok);
|
|
EVENT_HANDLER(void, sendThread);
|
|
EVENT_HANDLER(void, xTimerTick);
|
|
|
|
static const char app_config[], pult_config[];
|
|
PIConnection connection;
|
|
PIDataTransfer datatr;
|
|
PacketHeader wheader;
|
|
PIByteArray send_data;
|
|
PIThread sendt;
|
|
PITimer x_timer;
|
|
CDSection k_;
|
|
|
|
};
|
|
|
|
|
|
static __Core_Initializer__ __Core_initializer__;
|
|
|
|
}
|
|
|
|
#endif // CDUTILS_CORE_H
|