PICloud with streampacker

This commit is contained in:
2021-04-07 14:38:32 +03:00
parent fcf9f0f80e
commit 1fd9851068
13 changed files with 90 additions and 67 deletions

View File

@@ -28,6 +28,7 @@
class PIEthernet;
class PIStreamPacker;
namespace PICloud {
@@ -40,27 +41,28 @@ public:
};
enum Role {
InvalidRole = 0,
Server = 1,
Client = 2,
};
enum Type {
Invalid = 0,
InvalidType = 0,
Connect = 1,
Disconnect = 2,
Data = 3,
};
TCP();
TCP(PIStreamPacker * s);
void setRole(Role r);
Role role() const {return (Role)header.role;}
void setServerName(const PIString & server_name);
void sendStart(PIEthernet * eth);
void sendConnected(PIEthernet * eth, uint client_id);
void sendDisconnected(PIEthernet * eth, uint client_id);
void sendData(PIEthernet * eth, const PIByteArray & data);
int sendData(PIEthernet * eth, const PIByteArray & data, uint client_id);
void sendStart();
void sendConnected(uint client_id);
void sendDisconnected(uint client_id);
void sendData(const PIByteArray & data);
int sendData(const PIByteArray & data, uint client_id);
PIPair<PICloud::TCP::Type, PICloud::TCP::Role> parseHeader(PIByteArray & ba);
PIByteArray parseData(PIByteArray & ba);
PIPair<uint, PIByteArray> parseDataServer(PIByteArray & ba);
@@ -78,6 +80,7 @@ private:
Header header;
PIString sname;
PIStreamPacker * streampacker;
};
}