src/Socket.h
branchv_0
changeset 27 e6e5780339bd
parent 18 e16fa75135ad
child 31 17cea3a6d33f
--- a/src/Socket.h	Thu Aug 18 22:42:42 2022 +0200
+++ b/src/Socket.h	Sat Aug 20 00:20:03 2022 +0200
@@ -51,11 +51,47 @@
 static const char MODE_DATAGRAM[] = "datagram";
 }
 
+class Message {
+public:
+	std::string data;
+
+	Message() {
+	}
+
+	Message(const std::string& data) : data(data) {
+	}
+
+	virtual ~Message() = default;
+
+
+};
+
+class IncomingMessage : public Message {
+public:
+
+	IncomingMessage(const std::string& data) : Message(data) {
+	}
+
+};
+
+class OutgoingMessage : public Message {
+public:
+
+	OutgoingMessage(const std::string& data) : Message(data) {
+	}
+
+	std::string remoteHost;
+	std::string remotePort;
+	pid_t remotePID;
+	uid_t remoteUID;
+	gid_t remoteGID;
+};
+
 class Socket {
 public:
 	virtual ~Socket() = default;
-	virtual void send(const std::string& message) = 0;
-	virtual const std::string receive() = 0;
+	virtual void send(const OutgoingMessage& message) = 0;
+	virtual const IncomingMessage receive() = 0;
 };
 
 class SocketOption {