42 class SocketContext :
public core::socket::SocketContext {
44 using Super = core::socket::SocketContext;
49 using Super::sendToPeer;
51 void sendToPeer(
const char* chunk, std::size_t chunkLen)
const final;
52 bool streamToPeer(core::pipe::
Source* source)
const;
55 std::size_t readFromPeer(
char* chunk, std::size_t chunklen)
const final;
57 void setTimeout(
const utils::Timeval& timeout)
final;
60 void shutdownWrite(
bool forceClose =
false);
61 void close()
override;
64 virtual void switchSocketContext(SocketContext* newSocketContext);
67 void onWriteError(
int errnum)
override;
68 void onReadError(
int errnum)
override;
71 virtual void onConnected() = 0;
72 virtual void onDisconnected() = 0;
76 template <
typename PhysicalSocketT,
class SocketReaderT,
class SocketWriterT>