picloud next iteration
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
#ifndef PICLOUDCLIENT_H
|
||||
#define PICLOUDCLIENT_H
|
||||
|
||||
#include "pip_cloud_export.h"
|
||||
#include "picloudtcp.h"
|
||||
#include "piethernet.h"
|
||||
|
||||
|
||||
@@ -35,15 +35,19 @@ public:
|
||||
explicit PICloudClient(const PIString & path = PIString(), PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);
|
||||
virtual ~PICloudClient();
|
||||
|
||||
void setServerName(const PIString & server_name);
|
||||
|
||||
protected:
|
||||
bool openDevice();
|
||||
bool closeDevice();
|
||||
|
||||
private:
|
||||
int readDevice(void * read_to, int max_size);
|
||||
int writeDevice(const void * data, int max_size);
|
||||
|
||||
private:
|
||||
EVENT_HANDLER2(void, readed, uchar * , data, int, size);
|
||||
|
||||
PIEthernet eth;
|
||||
PICloud::TCP tcp;
|
||||
};
|
||||
|
||||
#endif // PICLOUDCLIENT_H
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#ifndef PICLOUDSERVER_H
|
||||
#define PICLOUDSERVER_H
|
||||
|
||||
#include "pip_cloud_export.h"
|
||||
#include "picloudtcp.h"
|
||||
#include "piethernet.h"
|
||||
|
||||
|
||||
@@ -55,11 +55,10 @@ protected:
|
||||
|
||||
private:
|
||||
EVENT_HANDLER2(void, readed, uchar * , data, int, size);
|
||||
void sendStart();
|
||||
|
||||
PIEthernet eth;
|
||||
PIVector<Client> clients;
|
||||
|
||||
PICloud::TCP tcp;
|
||||
};
|
||||
|
||||
#endif // PICLOUDSERVER_H
|
||||
|
||||
@@ -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