64 class SocketContext :
public core::socket::SocketContext {
66 using Super = core::socket::SocketContext;
71 using Super::sendToPeer;
73 void sendToPeer(
const char* chunk, std::size_t chunkLen)
const final;
74 bool streamToPeer(core::pipe::
Source* source)
const;
77 std::size_t readFromPeer(
char* chunk, std::size_t chunklen)
const final;
79 void setTimeout(
const utils::Timeval& timeout)
final;
82 void shutdownWrite(
bool forceClose =
false);
83 void close()
override;
86 virtual void switchSocketContext(SocketContext* newSocketContext);
89 void onWriteError(
int errnum)
override;
90 void onReadError(
int errnum)
override;
93 virtual void onConnected() = 0;
94 virtual void onDisconnected() = 0;
98 template <
typename PhysicalSocketT,
class SocketReaderT,
class SocketWriterT>