diff --git a/src_main/io/pipeer.cpp b/src_main/io/pipeer.cpp index 232268b3..4bcf0e7f 100755 --- a/src_main/io/pipeer.cpp +++ b/src_main/io/pipeer.cpp @@ -19,6 +19,7 @@ #include "pipeer.h" #include "piconfig.h" +#include "pidatatransfer.h" #define _PIPEER_MSG_SIZE 4000 #define _PIPEER_MSG_TTL 100 @@ -33,6 +34,26 @@ #define _PIPEER_TRAFFIC_PORT_E 14000 #define _PIPEER_PING_TIMEOUT 5.0 +class PIPeer::PeerData: public PIObject { + PIOBJECT_SUBCLASS(PeerData, PIObject) +public: + PeerData(const PIString & n); + ~PeerData(); + EVENT_HANDLER1(void, dtSendRequestIn, PIByteArray &, data) {data.push_front(uchar(2)); sendRequest(name(), data);} + EVENT_HANDLER1(void, dtSendRequestOut, PIByteArray &, data) {data.push_front(uchar(3)); sendRequest(name(), data);} + EVENT_HANDLER1(void, dtReceiveFinishedIn, bool, ok) {if (ok) received(name(), dt_in.data());} + EVENT_HANDLER1(void, dtReceiveFinishedOut, bool, ok) {if (ok) received(name(), dt_out.data());} + EVENT_HANDLER(void, dtThread); + EVENT2(received, const PIString &, from, const PIByteArray &, data) + EVENT2(sendRequest, const PIString &, to, const PIByteArray &, data) + bool send(const PIByteArray & d); + void receivedPacket(uchar type, const PIByteArray & d); + void setDist(int dist); + PIByteArray data; + PIThread t; + PIDataTransfer dt_in, dt_out; +}; + PIPeer::PeerData::PeerData(const PIString & n): PIObject(n) { dt_in.setPacketSize(_PIPEER_MSG_SIZE); diff --git a/src_main/io/pipeer.h b/src_main/io/pipeer.h index 7fd75168..9486397b 100755 --- a/src_main/io/pipeer.h +++ b/src_main/io/pipeer.h @@ -25,32 +25,12 @@ #include "piethernet.h" #include "pidiagnostics.h" -#include "pidatatransfer.h" class PIP_EXPORT PIPeer: public PIIODevice { PIIODEVICE(PIPeer) private: - - class PeerData: public PIObject { - PIOBJECT_SUBCLASS(PeerData, PIObject) - public: - PeerData(const PIString & n); - ~PeerData(); - EVENT_HANDLER1(void, dtSendRequestIn, PIByteArray &, data) {data.push_front(uchar(2)); sendRequest(name(), data);} - EVENT_HANDLER1(void, dtSendRequestOut, PIByteArray &, data) {data.push_front(uchar(3)); sendRequest(name(), data);} - EVENT_HANDLER1(void, dtReceiveFinishedIn, bool, ok) {if (ok) received(name(), dt_in.data());} - EVENT_HANDLER1(void, dtReceiveFinishedOut, bool, ok) {if (ok) received(name(), dt_out.data());} - EVENT_HANDLER(void, dtThread); - EVENT2(received, const PIString &, from, const PIByteArray &, data) - EVENT2(sendRequest, const PIString &, to, const PIByteArray &, data) - bool send(const PIByteArray & d); - void receivedPacket(uchar type, const PIByteArray & d); - void setDist(int dist); - PIByteArray data; - PIThread t; - PIDataTransfer dt_in, dt_out; - }; + class PeerData; public: explicit PIPeer(const PIString & name = PIString());