--- 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();
-
-};
}
}