|
eris 1.4.0
A WorldForge client library.
|
Handles the internal socket instance, interacting with the asynchronous io_service calls. More...
#include <StreamSocket.h>


Classes | |
| struct | Callbacks |
| Methods that are used as callbacks. More... | |
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 | |
| StreamSocket (boost::asio::io_service &io_service, const std::string &client_name, Atlas::Bridge &bridge, Callbacks callbacks) | |
| void | detach () |
| Detaches the callbacks. More... | |
| Atlas::Codec & | getCodec () |
| Gets the codec object. More... | |
| Atlas::Objects::ObjectsEncoder & | getEncoder () |
| Gets the encoder object. More... | |
| virtual void | write ()=0 |
| Send any unsent data. More... | |
Protected Types | |
| enum | { read_buffer_size = 2048 } |
Protected Member Functions | |
| virtual void | do_read ()=0 |
| virtual void | negotiate_read ()=0 |
| void | startNegotiation () |
| Atlas::Negotiate::State | negotiate () |
Protected Attributes | |
| 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 |
Handles the internal socket instance, interacting with the asynchronous io_service calls.
Since this will be used to make asynchronous calls it must be wrapped in a shared_ptr. When the owner instance is destroyed it must call "detach" to make sure the connection is severed.
Definition at line 54 of file StreamSocket.h.
|
protected |
Definition at line 121 of file StreamSocket.h.
Definition at line 58 of file StreamSocket.h.
| Eris::StreamSocket::StreamSocket | ( | boost::asio::io_service & | io_service, |
| const std::string & | client_name, | ||
| Atlas::Bridge & | bridge, | ||
| Callbacks | callbacks | ||
| ) |
Definition at line 36 of file StreamSocket.cpp.
| void Eris::StreamSocket::detach | ( | ) |
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.
| Atlas::Codec & Eris::StreamSocket::getCodec | ( | ) |
Gets the codec object.
Definition at line 123 of file StreamSocket.cpp.
| Atlas::Objects::ObjectsEncoder & Eris::StreamSocket::getEncoder | ( | ) |
Gets the encoder object.
Definition at line 128 of file StreamSocket.cpp.
|
protected |
Definition at line 86 of file StreamSocket.cpp.
|
protected |
Definition at line 62 of file StreamSocket.cpp.
|
pure virtual |
Send any unsent data.
Implemented in Eris::AsioStreamSocket< ProtocolT >.
|
protected |
Definition at line 126 of file StreamSocket.h.
|
protected |
Definition at line 127 of file StreamSocket.h.
|
protected |
Definition at line 168 of file StreamSocket.h.
|
protected |
Definition at line 167 of file StreamSocket.h.
|
protected |
negotiation object (nullptr after connection!)
Definition at line 166 of file StreamSocket.h.
|
protected |
Definition at line 169 of file StreamSocket.h.
|
protected |
Definition at line 170 of file StreamSocket.h.
|
protected |
Definition at line 125 of file StreamSocket.h.
|
protected |
Definition at line 171 of file StreamSocket.h.
|
protected |
Stream for data being received.
Definition at line 149 of file StreamSocket.h.
|
protected |
True if we're currently sending through an async_write (and thus shouldn't touch mSendBuffer).
Definition at line 164 of file StreamSocket.h.
|
protected |
Stream for data being sent out.
Definition at line 154 of file StreamSocket.h.
|
protected |
Buffer for data being read from the socket.
Definition at line 144 of file StreamSocket.h.
|
protected |
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.
|
protected |
True if we should send again as soon as an ongoing async_write operation completes.
Definition at line 159 of file StreamSocket.h.
|
protected |
Buffer used to write data to be sent. Swapped with mSendBuffer once data is being sent.
Definition at line 133 of file StreamSocket.h.