|
eris
1.4.0
A WorldForge client library.
|
Template specialization which uses boost::asio sockets with resolvers (i.e. TCP and UDP, but not domain sockets). More...
#include <StreamSocket.h>


Public Types | |
| enum | Status { INVALID_STATUS = 0 , CONNECTING , CONNECTING_TIMEOUT , CONNECTING_FAILED , NEGOTIATE , NEGOTIATE_TIMEOUT , NEGOTIATE_FAILED , CONNECTED , CONNECTION_FAILED , DISCONNECTED , DISCONNECTING } |
Public Member Functions | |
| ResolvableAsioStreamSocket (boost::asio::io_service &io_service, const std::string &client_name, Atlas::Bridge &bridge, StreamSocket::Callbacks callbacks) | |
| void | connectWithQuery (const typename ProtocolT::resolver::query &query) |
| void | connect (const typename ProtocolT::endpoint &endpoint) |
| void | write () override |
| Send any unsent data. More... | |
| ProtocolT::socket & | getAsioSocket () |
| void | detach () |
| Detaches the callbacks. More... | |
| Atlas::Codec & | getCodec () |
| Gets the codec object. More... | |
| Atlas::Objects::ObjectsEncoder & | getEncoder () |
| Gets the encoder object. More... | |
Protected Types | |
| enum | { read_buffer_size = 2048 } |
Protected Member Functions | |
| void | negotiate_read () override |
| void | negotiate_write () |
| void | do_read () override |
| void | startNegotiation () |
| Atlas::Negotiate::State | negotiate () |
Protected Attributes | |
| ProtocolT::resolver | m_resolver |
| ProtocolT::socket | m_socket |
| boost::asio::io_service & | m_io_service |
| Atlas::Bridge & | _bridge |
| Callbacks | _callbacks |
| std::unique_ptr< boost::asio::streambuf > | mWriteBuffer |
| std::unique_ptr< boost::asio::streambuf > | mSendBuffer |
| boost::asio::streambuf | mReadBuffer |
| std::istream | mInStream |
| std::ostream | mOutStream |
| bool | mShouldSend |
| bool | mIsSending |
| std::unique_ptr< Atlas::Net::StreamConnect > | _sc |
| negotiation object (nullptr after connection!) More... | |
| boost::asio::steady_timer | _negotiateTimer |
| boost::asio::steady_timer | _connectTimer |
| std::unique_ptr< Atlas::Codec > | m_codec |
| std::unique_ptr< Atlas::Objects::ObjectsEncoder > | m_encoder |
| bool | m_is_connected |
Template specialization which uses boost::asio sockets with resolvers (i.e. TCP and UDP, but not domain sockets).
Definition at line 205 of file StreamSocket.h.
|
inherited |
Definition at line 58 of file StreamSocket.h.
|
inherited |
Detaches the callbacks.
Call this when the owner instance is destroyed, or you otherwise don't want any callbacks.
Definition at line 58 of file StreamSocket.cpp.
|
inherited |
Gets the codec object.
Definition at line 123 of file StreamSocket.cpp.
|
inherited |
Gets the encoder object.
Definition at line 128 of file StreamSocket.cpp.
|
overridevirtualinherited |
Send any unsent data.
Implements Eris::StreamSocket.
Definition at line 191 of file StreamSocket_impl.h.
|
protectedinherited |
negotiation object (nullptr after connection!)
Definition at line 166 of file StreamSocket.h.
|
protectedinherited |
Stream for data being received.
Definition at line 149 of file StreamSocket.h.
|
protectedinherited |
True if we're currently sending through an async_write (and thus shouldn't touch mSendBuffer).
Definition at line 164 of file StreamSocket.h.
|
protectedinherited |
Stream for data being sent out.
Definition at line 154 of file StreamSocket.h.
|
protectedinherited |
Buffer for data being read from the socket.
Definition at line 144 of file StreamSocket.h.
|
protectedinherited |
Buffer of data which is being sent. This should not be touched until the async_write call completes.
Definition at line 139 of file StreamSocket.h.
|
protectedinherited |
True if we should send again as soon as an ongoing async_write operation completes.
Definition at line 159 of file StreamSocket.h.
|
protectedinherited |
Buffer used to write data to be sent. Swapped with mSendBuffer once data is being sent.
Definition at line 133 of file StreamSocket.h.