E-MailRelay
|
An interface used by ServerProtocol to send protocol responses. More...
#include <gsmtpserversender.h>
Public Member Functions | |
virtual void | protocolSend (const std::string &s, bool flush)=0 |
Called when the server protocol class wants to send data down the socket. More... | |
virtual void | protocolSecure ()=0 |
Called when the protocol class wants a secure connection to be initiated. More... | |
virtual void | protocolShutdown (int how)=0 |
Called on receipt of a quit command after the quit response has been sent. More... | |
virtual void | protocolExpect (std::size_t n)=0 |
Requests that the next call to ServerProtocol::apply() carries exactly 'n' bytes of binary data rather than a line of text. More... | |
virtual | ~ServerSender ()=default |
Destructor. | |
An interface used by ServerProtocol to send protocol responses.
The RFC-2920 PIPELINING extension defines how SMTP input requests and output responses should be batched up. At this interface that means that protocolSend() has a 'flush' parameter to mark the end of an output batch.
Definition at line 40 of file gsmtpserversender.h.
|
pure virtual |
Requests that the next call to ServerProtocol::apply() carries exactly 'n' bytes of binary data rather than a line of text.
This only called if the protocol config item 'with_chunking' is true.
|
pure virtual |
Called when the protocol class wants a secure connection to be initiated.
ServerProtocol::secure() should be called when complete.
|
pure virtual |
Called when the server protocol class wants to send data down the socket.
The data should be batched up if 'flush' is false. The 'flush' parameter will always be true if the server protocol is not using pipelining.
If the server protocol is using pipelining then calls to protocolSend() might come in quick succession, so the implementation must queue up the output if the socket applies flow control. There is no need to tell the protocol when flow control is released.
|
pure virtual |
Called on receipt of a quit command after the quit response has been sent.
The implementation should normally do a socket shutdown if the parameter is 0, 1 or 2. See also Socket::shutdown().