1 #ifndef __RTFX_CLIENT__
2 #define __RTFX_CLIENT__
18 #include "RTFXParcel.h"
19 #include "RTFXMailbox.h"
24 using boost::asio::ip::tcp;
40 RTFXClient( boost::asio::io_service &_ioService, tcp::resolver::iterator _endpointIterator,
char * _mailboxName ) : ioService( _ioService ), socket( _ioService )
42 compressionType =
NONE;
44 areYouKeepingDataAtServer =
true;
46 isBeingDeleted =
false;
48 hasMailboxNameBeenSent =
false;
49 wasIDReceived =
false;
50 isNewDataAvailable =
false;
53 mailboxName =
new char[16];
54 memcpy( mailboxName, _mailboxName, 16 *
sizeof(
char ) );
56 tcp::endpoint endpoint_ = *_endpointIterator;
58 socket.async_connect( endpoint_,
59 boost::bind( &RTFXClient::HandleConnect,
this,
60 boost::asio::placeholders::error, ++_endpointIterator ) );
66 isBeingDeleted =
true;
67 delete [] mailboxName;
77 void SetArchiveType(
bool _isBinaryData )
79 isBinaryData = _isBinaryData;
95 void Send(
string &_dataToSend,
bool _isDataRTFX );
106 boost::lock_guard<boost::mutex> lock( clientLock );
107 return mailbox.GetPointerToMailbox();
111 void SetID( boost::uuids::uuid _id ) {
id = _id; }
114 boost::uuids::uuid
GetID() {
return id; }
117 void SetMailboxName(
string _mailboxName )
127 void SetFrame( AXISFRAME _frame )
153 compressionType = _tmp;
154 mailbox.SetDefaultCompressionType( _tmp );
161 void SetServerKeepData(
bool _keepData )
163 areYouKeepingDataAtServer = _keepData;
167 bool GetServerKeepData()
169 return areYouKeepingDataAtServer;
187 void HandleConnect(
const boost::system::error_code &_error, tcp::resolver::iterator _endpointIterator );
190 void HandleReadHeader(
const boost::system::error_code &_error );
193 void HandleReadBody(
const boost::system::error_code &_error );
199 void HandleWrite(
const boost::system::error_code &_error );
224 boost::uuids::uuid
id;