#include <RealmConnection.h>
Public Member Functions | |
RealmConnection (const std::string &ca_file, const std::string &address, int port, bool tls, const std::string &cookie, UT_uint64 doc_id, bool master, const std::string &session_id, boost::function< void(boost::shared_ptr< RealmConnection >)> sig) | |
bool | connect () |
void | disconnect () |
bool | isConnected () |
void | addBuddy (RealmBuddyPtr buddy_ptr) |
void | removeBuddy (UT_uint8 realm_connection_id) |
RealmBuddyPtr | getBuddy (UT_uint8 realm_connection_id) |
std::vector< RealmBuddyPtr > & | getBuddies () |
UT_uint64 | user_id () |
UT_uint8 | connection_id () |
UT_uint64 | doc_id () |
bool | master () |
void | promote () |
const std::string & | session_id () |
PD_Document * | getDocument () |
void | setDocument (PD_Document *pDoc) |
SynchronizedQueue < realm::protocolv1::PacketPtr > & | queue () |
asio::ip::tcp::socket & | socket () |
void | loadDocumentStart (AP_Dialog_GenericProgress *pDlg, PD_Document **pDoc_, XAP_Frame *pFrame_, const std::string &filename_, bool bLocallyOwned_) |
boost::shared_ptr < PendingDocumentProperties > | getPendingDocProps () |
void | loadDocumentEnd () |
Private Member Functions | |
void | _disconnect () |
void | _signal () |
bool | _login () |
UserJoinedPacketPtr | _receiveUserJoinedPacket () |
void | _receive () |
void | _message (const asio::error_code &e, std::size_t bytes_transferred, boost::shared_ptr< std::string > msg_ptr) |
void | _complete_packet (realm::protocolv1::PacketPtr packet_ptr) |
void | _complete (const asio::error_code &e, std::size_t bytes_transferred, realm::protocolv1::PacketPtr packet_ptr) |
Private Attributes | |
asio::io_service | m_io_service |
std::string | m_ca_file |
std::string | m_address |
int | m_port |
int | m_tls |
asio::ip::tcp::socket | m_socket |
boost::shared_ptr< asio::thread > | m_thread_ptr |
std::string | m_cookie |
UT_uint64 | m_user_id |
UT_uint8 | m_connection_id |
UT_uint64 | m_doc_id |
bool | m_master |
std::string | m_session_id |
PD_Document * | m_pDoc |
realm::GrowBuffer | m_buf |
SynchronizedQueue < realm::protocolv1::PacketPtr > | m_packet_queue |
boost::function< void(boost::shared_ptr < RealmConnection >)> | m_sig |
std::vector< RealmBuddyPtr > | m_buddies |
boost::shared_ptr < PendingDocumentProperties > | m_pdp_ptr |
boost::shared_ptr < tls_tunnel::ClientProxy > | m_tls_tunnel_ptr |
abicollab::mutex | m_mutex |
RealmConnection::RealmConnection | ( | const std::string & | ca_file, | |
const std::string & | address, | |||
int | port, | |||
bool | tls, | |||
const std::string & | cookie, | |||
UT_uint64 | doc_id, | |||
bool | master, | |||
const std::string & | session_id, | |||
boost::function< void(boost::shared_ptr< RealmConnection >)> | sig | |||
) |
void RealmConnection::_complete | ( | const asio::error_code & | e, | |
std::size_t | bytes_transferred, | |||
realm::protocolv1::PacketPtr | packet_ptr | |||
) | [private] |
References _complete_packet(), _disconnect(), realm::GrowBuffer::commit(), m_buf, and UT_DEBUGMSG.
Referenced by _complete_packet().
void RealmConnection::_complete_packet | ( | realm::protocolv1::PacketPtr | packet_ptr | ) | [private] |
References _complete(), _receive(), realm::GrowBuffer::data(), abicollab::service::error(), m_buf, m_packet_queue, m_socket, realm::GrowBuffer::prepare(), SynchronizedQueue< T >::push(), realm::GrowBuffer::size(), UT_DEBUGMSG, and UT_return_if_fail.
Referenced by _complete(), and _message().
void RealmConnection::_disconnect | ( | ) | [private] |
References m_io_service, m_mutex, m_packet_queue, m_socket, m_thread_ptr, m_tls_tunnel_ptr, Synchronizer::signal(), and UT_DEBUGMSG.
Referenced by _complete(), _message(), and connect().
bool RealmConnection::_login | ( | ) | [private] |
References _receiveUserJoinedPacket(), realm::protocol::HANDSHAKE_BAD_IDENTIFIER, realm::protocol::HANDSHAKE_INVALID_COOKIE, realm::protocol::HANDSHAKE_OK, realm::protocol::HANDSHAKE_RESERVED, realm::protocol::HANDSHAKE_UNSUPPORTED_PROTOCOL, m_connection_id, m_cookie, m_socket, m_user_id, ServiceAccountHandler::parseUserInfo(), tls_tunnel::read(), UT_ASSERT_HARMLESS, UT_DEBUGMSG, UT_return_val_if_fail, UT_SHOULD_NOT_HAPPEN, and tls_tunnel::write().
Referenced by connect().
void RealmConnection::_message | ( | const asio::error_code & | e, | |
std::size_t | bytes_transferred, | |||
boost::shared_ptr< std::string > | msg_ptr | |||
) | [private] |
References _complete_packet(), _disconnect(), realm::protocolv1::Packet::construct(), and UT_DEBUGMSG.
Referenced by _receive().
void RealmConnection::_receive | ( | ) | [private] |
References _message(), realm::GrowBuffer::clear(), m_buf, m_socket, and UT_DEBUGMSG.
Referenced by _complete_packet(), and connect().
UserJoinedPacketPtr RealmConnection::_receiveUserJoinedPacket | ( | ) | [private] |
References m_socket, realm::protocolv1::PACKET_USERJOINED, and tls_tunnel::read().
Referenced by _login().
void RealmConnection::_signal | ( | ) | [private] |
References m_sig.
void RealmConnection::addBuddy | ( | RealmBuddyPtr | buddy_ptr | ) |
References m_buddies.
bool RealmConnection::connect | ( | ) |
UT_uint8 RealmConnection::connection_id | ( | ) | [inline] |
References m_connection_id.
void RealmConnection::disconnect | ( | void | ) |
References m_mutex, m_socket, and UT_DEBUGMSG.
std::vector<RealmBuddyPtr>& RealmConnection::getBuddies | ( | ) | [inline] |
References m_buddies.
RealmBuddyPtr RealmConnection::getBuddy | ( | UT_uint8 | realm_connection_id | ) |
References m_buddies, and UT_continue_if_fail.
PD_Document* RealmConnection::getDocument | ( | void | ) | [inline] |
References m_pDoc.
boost::shared_ptr<PendingDocumentProperties> RealmConnection::getPendingDocProps | ( | ) | [inline] |
References m_pdp_ptr.
bool RealmConnection::isConnected | ( | ) |
References m_socket.
void RealmConnection::loadDocumentEnd | ( | ) | [inline] |
References m_pdp_ptr.
void RealmConnection::loadDocumentStart | ( | AP_Dialog_GenericProgress * | pDlg, | |
PD_Document ** | pDoc_, | |||
XAP_Frame * | pFrame_, | |||
const std::string & | filename_, | |||
bool | bLocallyOwned_ | |||
) | [inline] |
References m_pdp_ptr, and UT_return_if_fail.
bool RealmConnection::master | ( | ) | [inline] |
References m_master.
void RealmConnection::promote | ( | ) |
References m_buddies, m_master, UT_continue_if_fail, and UT_DEBUGMSG.
SynchronizedQueue<realm::protocolv1::PacketPtr>& RealmConnection::queue | ( | ) | [inline] |
References m_packet_queue.
void RealmConnection::removeBuddy | ( | UT_uint8 | realm_connection_id | ) |
References m_buddies, UT_ASSERT_HARMLESS, UT_continue_if_fail, and UT_SHOULD_NOT_HAPPEN.
const std::string& RealmConnection::session_id | ( | ) | [inline] |
References m_session_id.
void RealmConnection::setDocument | ( | PD_Document * | pDoc | ) | [inline] |
References m_pDoc.
asio::ip::tcp::socket& RealmConnection::socket | ( | ) | [inline] |
References m_socket.
std::string RealmConnection::m_address [private] |
Referenced by connect().
std::vector<RealmBuddyPtr> RealmConnection::m_buddies [private] |
Referenced by addBuddy(), getBuddies(), getBuddy(), promote(), and removeBuddy().
realm::GrowBuffer RealmConnection::m_buf [private] |
Referenced by _complete(), _complete_packet(), and _receive().
std::string RealmConnection::m_ca_file [private] |
Referenced by connect().
UT_uint8 RealmConnection::m_connection_id [private] |
Referenced by _login(), and connection_id().
std::string RealmConnection::m_cookie [private] |
Referenced by _login().
UT_uint64 RealmConnection::m_doc_id [private] |
Referenced by doc_id().
asio::io_service RealmConnection::m_io_service [private] |
Referenced by _disconnect(), and connect().
bool RealmConnection::m_master [private] |
abicollab::mutex RealmConnection::m_mutex [private] |
Referenced by _disconnect(), and disconnect().
Referenced by _complete_packet(), _disconnect(), and queue().
PD_Document* RealmConnection::m_pDoc [private] |
Referenced by getDocument(), and setDocument().
boost::shared_ptr<PendingDocumentProperties> RealmConnection::m_pdp_ptr [private] |
Referenced by getPendingDocProps(), loadDocumentEnd(), and loadDocumentStart().
int RealmConnection::m_port [private] |
Referenced by connect().
std::string RealmConnection::m_session_id [private] |
Referenced by session_id().
boost::function<void (boost::shared_ptr<RealmConnection>)> RealmConnection::m_sig [private] |
Referenced by _signal().
asio::ip::tcp::socket RealmConnection::m_socket [private] |
Referenced by _complete_packet(), _disconnect(), _login(), _receive(), _receiveUserJoinedPacket(), connect(), disconnect(), isConnected(), and socket().
boost::shared_ptr<asio::thread> RealmConnection::m_thread_ptr [private] |
Referenced by _disconnect(), and connect().
int RealmConnection::m_tls [private] |
Referenced by connect().
boost::shared_ptr<tls_tunnel::ClientProxy> RealmConnection::m_tls_tunnel_ptr [private] |
Referenced by _disconnect(), and connect().
UT_uint64 RealmConnection::m_user_id [private] |