Lifecycle management for sockets.

This commit is contained in:
Robin Davies
2024-10-05 02:14:30 -04:00
parent 6f268daec9
commit 46669cfda9
3 changed files with 20 additions and 6 deletions
+11 -3
View File
@@ -81,7 +81,6 @@ class WebServerImpl;
class SocketHandler {
friend class WebServerImpl;
public:
class IWriteCallback {
public:
virtual void close() = 0;
@@ -100,6 +99,7 @@ public:
}
public:
virtual void onSocketClosed() = 0;
virtual void onReceive(const std::string_view&text) = 0;
public:
std::string getFromAddress() const { return writeCallback_->getFromAddress(); }
@@ -112,12 +112,20 @@ public:
writeCallback_->writeCallback(text);
}
}
virtual void OnSocketClosed()
{
writeCallback_ = nullptr;
}
virtual void Close()
{
writeCallback_->close();
if (writeCallback_ != nullptr)
{
writeCallback_->close();
writeCallback_ = nullptr;
}
}
virtual ~SocketHandler() = default;
virtual ~SocketHandler() {}
virtual void onAttach() { }