picloud next iteration
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user