src/Socket.h
branchv_0
changeset 27 e6e5780339bd
parent 18 e16fa75135ad
child 31 17cea3a6d33f
equal deleted inserted replaced
26:07949ba141b7 27:e6e5780339bd
    49 
    49 
    50 static const char MODE_STREAM[] = "stream";
    50 static const char MODE_STREAM[] = "stream";
    51 static const char MODE_DATAGRAM[] = "datagram";
    51 static const char MODE_DATAGRAM[] = "datagram";
    52 }
    52 }
    53 
    53 
       
    54 class Message {
       
    55 public:
       
    56 	std::string data;
       
    57 
       
    58 	Message() {
       
    59 	}
       
    60 
       
    61 	Message(const std::string& data) : data(data) {
       
    62 	}
       
    63 
       
    64 	virtual ~Message() = default;
       
    65 
       
    66 
       
    67 };
       
    68 
       
    69 class IncomingMessage : public Message {
       
    70 public:
       
    71 
       
    72 	IncomingMessage(const std::string& data) : Message(data) {
       
    73 	}
       
    74 
       
    75 };
       
    76 
       
    77 class OutgoingMessage : public Message {
       
    78 public:
       
    79 
       
    80 	OutgoingMessage(const std::string& data) : Message(data) {
       
    81 	}
       
    82 
       
    83 	std::string remoteHost;
       
    84 	std::string remotePort;
       
    85 	pid_t remotePID;
       
    86 	uid_t remoteUID;
       
    87 	gid_t remoteGID;
       
    88 };
       
    89 
    54 class Socket {
    90 class Socket {
    55 public:
    91 public:
    56 	virtual ~Socket() = default;
    92 	virtual ~Socket() = default;
    57 	virtual void send(const std::string& message) = 0;
    93 	virtual void send(const OutgoingMessage& message) = 0;
    58 	virtual const std::string receive() = 0;
    94 	virtual const IncomingMessage receive() = 0;
    59 };
    95 };
    60 
    96 
    61 class SocketOption {
    97 class SocketOption {
    62 public:
    98 public:
    63 	const std::string name;
    99 	const std::string name;