src/Socket.h
branchv_0
changeset 2 fb399fd4f053
parent 1 e3265afd1111
child 3 e701e06ff561
--- a/src/Socket.h	Tue Jul 26 23:22:18 2022 +0200
+++ b/src/Socket.h	Thu Jul 28 02:03:11 2022 +0200
@@ -30,31 +30,22 @@
 namespace socket {
 
 class Socket {
-private:
 public:
-
-	virtual ~Socket() {
-	}
-
-	void send(const std::string& message) {
+	virtual ~Socket() = default;
+	// virtual void setOption(const std::string& uri, const std::string& value) = 0;
+	virtual void send(const std::string& message) = 0;
+	virtual const std::string receive() = 0;
+};
 
-		struct sockaddr_in a;
-		memset((char *) &a, 0, sizeof (a));
-		a.sin_family = AF_INET;
-		a.sin_addr.s_addr = inet_addr("127.0.0.1"); // TODO: use getaddrinfo() instead (because of error -1 = 255.255.255.255)
-		a.sin_port = htons(1234);
+class SocketFactory {
+public:
+	virtual ~SocketFactory() = default;
+	virtual bool canHandle(const std::string& connectionString) = 0;
+	// virtual void setOption(const std::string& uri, const std::string& value) = 0;
+	virtual Socket* open(const std::string& connectionString) = 0;
+	static SocketFactory* find(const std::string& connectionString);
+};
 
-		int s = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-		sendto(s, message.c_str(), message.size(), 0, (sockaddr*) & a, sizeof (a));
-		
-		close(s);
-
-		// TODO: send message
-	}
-	
-	// virtual const std::string receive();
-
-};
 
 }
 }