src/Socket.h
branchv_0
changeset 4 8d036e5e5fcc
parent 3 e701e06ff561
child 5 e57e2a2798b2
--- a/src/Socket.h	Thu Jul 28 02:45:11 2022 +0200
+++ b/src/Socket.h	Fri Jul 29 18:03:49 2022 +0200
@@ -32,17 +32,26 @@
 class Socket {
 public:
 	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;
 };
 
+class SocketOption {
+public:
+	const std::string name;
+	const std::string value;
+
+	SocketOption(const std::string name, const std::string value) : name(name), value(value) {
+	}
+
+	virtual ~SocketOption() = default;
+};
+
 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;
+	virtual std::shared_ptr<Socket> open(const std::string& connectionString) = 0;
 	static std::shared_ptr<SocketFactory> find(const std::string& connectionString);
 };