|
Eris
1.4.0
|
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. | |
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 |
| boost::asio::streambuf * | mWriteBuffer |
| Buffer used to write data to be sent. More... | |
| boost::asio::streambuf * | mSendBuffer |
| Buffer of data which is being sent. More... | |
| boost::asio::streambuf | mReadBuffer |
| Buffer for data being read from the socket. | |
| std::istream | mInStream |
| Stream for data being received. | |
| std::ostream | mOutStream |
| Stream for data being sent out. | |
| bool | mShouldSend |
| True if we should send again as soon as an ongoing async_write operation completes. | |
| bool | mIsSending |
| True if we're currently sending through an async_write (and thus shouldn't touch mSendBuffer). | |
| Atlas::Net::StreamConnect * | _sc |
| negotiation object (NULL after connection!) | |
| boost::asio::deadline_timer | _negotiateTimer |
| boost::asio::deadline_timer | _connectTimer |
| Atlas::Codec * | m_codec |
| 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.
| void Eris::StreamSocket::detach | ( | ) |
Detaches the callbacks.
Call this when the owner instance is destroyed, or you otherwise don't want any callbacks.
| Atlas::Codec & Eris::StreamSocket::getCodec | ( | ) |
Gets the codec object.
| Atlas::Objects::ObjectsEncoder & Eris::StreamSocket::getEncoder | ( | ) |
Gets the encoder object.
|
protected |
Buffer of data which is being sent.
This should not be touched until the async_write call completes.
Referenced by Eris::AsioStreamSocket< ProtocolT >::write().
|
protected |
Buffer used to write data to be sent.
Swapped with mSendBuffer once data is being sent.
Referenced by Eris::AsioStreamSocket< ProtocolT >::write().
1.8.13