picloud next iteration

This commit is contained in:
2021-04-05 17:42:02 +03:00
parent 8eff5d24c9
commit f0d4801d3c
13 changed files with 237 additions and 90 deletions

View File

@@ -27,38 +27,51 @@
#include "pistring.h"
class PIEthernet;
namespace PICloud {
enum Version {
Version_1 = 1,
};
enum HeaderType {
Server = 1,
Client = 2,
};
struct PIP_CLOUD_EXPORT Header {
Header() {
version = Version_1;
}
uchar version; // PICloud::Version
uchar type; // PICloud::HeaderType
PIString sname; // server name
};
class PIP_CLOUD_EXPORT TCP {
public:
enum Version {
Version_1 = 1,
};
enum Role {
Server = 1,
Client = 2,
};
enum Type {
Invalid = 0,
Connect = 1,
Disconnect = 2,
Data = 3,
};
TCP();
void setRole(Role r);
void setServerName(const PIString & server_name);
void sendStart(PIEthernet * eth);
PIPair<PICloud::TCP::Type, PICloud::TCP::Role> parseHeader(PIByteArray & ba);
PIByteArray parseData(PIByteArray & ba);
PIString parseConnect(PIByteArray & ba);
private:
struct Header {
Header();
uchar version; // PICloud::Version
uchar type; // PICloud::Type
uchar role; // PICloud::Role
};
Header header;
PIString sname;
};
}
PIP_CLOUD_EXPORT PIByteArray & operator <<(PIByteArray & s, const PICloud::Header & v);
PIP_CLOUD_EXPORT PIByteArray & operator >>(PIByteArray & s, PICloud::Header & v);
#endif // PICLOUDTCP_H