5 #ifndef SRC_IO_SSL_SESSION_H_
6 #define SRC_IO_SSL_SESSION_H_
18 typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket>
SslSocket;
22 bool async_read_ready =
true);
39 tbb::mutex::scoped_lock lock(
mutex_);
48 tbb::mutex::scoped_lock lock(
mutex_);
53 tbb::mutex::scoped_lock lock(
mutex_);
68 size_t ReadSome(boost::asio::mutable_buffer buffer,
69 boost::system::error_code *error);
70 void AsyncWrite(
const uint8_t *data, std::size_t size);
81 tbb::mutex::scoped_lock lock(
mutex_);
86 tbb::mutex::scoped_lock lock(
mutex_);
void SetSslHandShakeSuccess()
static bool IsSocketErrorHard(const boost::system::error_code &ec)
size_t ReadSome(boost::asio::mutable_buffer buffer, boost::system::error_code *error)
bool IsSslHandShakeDelayed()
virtual Socket * socket() const
boost::asio::ssl::stream< boost::asio::ip::tcp::socket > SslSocket
void SetSslHandShakeFailure()
virtual void AsyncReadSome()
bool IsSslHandShakeInProgress()
void AsyncWrite(const uint8_t *data, std::size_t size)
SslSession(SslServer *server, SslSocket *socket, bool async_read_ready=true)
DISALLOW_COPY_AND_ASSIGN(SslSession)
bool ssl_handshake_success_
static void SslHandShakeCallback(SslHandShakeCallbackHandler cb, SslSessionPtr, const boost::system::error_code &error)
size_t ssl_last_read_len_
virtual Task * CreateReaderTask(boost::asio::mutable_buffer, size_t)
void SetSslHandShakeInProgress(bool state)
boost::scoped_ptr< SslSocket > ssl_socket_
bool ssl_handshake_delayed_
bool IsSslHandShakeSuccess()
virtual size_t GetReadBufferSize() const
void TriggerSslHandShake(SslHandShakeCallbackHandler)
bool IsSslHandShakeSuccessLocked()
static void TriggerSslHandShakeInternal(SslSessionPtr ptr, SslHandShakeCallbackHandler cb)
bool ssl_handshake_in_progress_
Task is a wrapper over tbb::task to support policies.
boost::asio::ip::tcp::socket Socket
boost::intrusive_ptr< SslSession > SslSessionPtr
boost::function< void(SslSessionPtr, const boost::system::error_code &error)> SslHandShakeCallbackHandler