aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/net/TCPSocket.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/net/TCPSocket.h')
-rw-r--r--src/lib/net/TCPSocket.h17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/net/TCPSocket.h b/src/lib/net/TCPSocket.h
index 1006f88..2889135 100644
--- a/src/lib/net/TCPSocket.h
+++ b/src/lib/net/TCPSocket.h
@@ -19,14 +19,15 @@
#pragma once
#include "net/IDataSocket.h"
+#include "net/ISocketMultiplexerJob.h"
#include "io/StreamBuffer.h"
#include "mt/CondVar.h"
#include "mt/Mutex.h"
#include "arch/IArchNetwork.h"
+#include <memory>
class Mutex;
class Thread;
-class ISocketMultiplexerJob;
class IEventQueue;
class SocketMultiplexer;
@@ -59,8 +60,7 @@ public:
virtual void connect(const NetworkAddress&);
- virtual ISocketMultiplexerJob*
- newJob();
+ virtual std::unique_ptr<ISocketMultiplexerJob> newJob();
protected:
enum EJobResult {
@@ -74,7 +74,8 @@ protected:
virtual EJobResult doRead();
virtual EJobResult doWrite();
- void setJob(ISocketMultiplexerJob*);
+ void removeJob();
+ void setJob(std::unique_ptr<ISocketMultiplexerJob>&& job);
bool isReadable() { return m_readable; }
bool isWritable() { return m_writable; }
@@ -93,12 +94,8 @@ private:
void onOutputShutdown();
void onDisconnected();
- ISocketMultiplexerJob*
- serviceConnecting(ISocketMultiplexerJob*,
- bool, bool, bool);
- ISocketMultiplexerJob*
- serviceConnected(ISocketMultiplexerJob*,
- bool, bool, bool);
+ MultiplexerJobStatus serviceConnecting(ISocketMultiplexerJob*, bool, bool, bool);
+ MultiplexerJobStatus serviceConnected(ISocketMultiplexerJob*, bool, bool, bool);
protected:
bool m_readable;