20 #include "mongo/util/net/message.h"
21 #include "mongo/util/net/sock.h"
28 typedef AtomicUInt MSGID;
34 virtual void reply(
Message& received,
Message& response, MSGID responseTo) = 0;
38 virtual unsigned remotePort()
const = 0;
40 long long connectionId()
const {
return _connectionId; }
41 void setConnectionId(
long long connectionId );
50 long long _connectionId;
66 void setSocketTimeout(
double timeout);
74 void reply(
Message& received,
Message& response, MSGID responseTo);
78 void say(
Message& toSend,
int responseTo = -1);
91 void piggyBack(
Message& toSend ,
int responseTo = -1 );
93 unsigned remotePort()
const {
return psock->remotePort(); }
96 boost::shared_ptr<Socket> psock;
98 void send(
const char * data ,
int len,
const char *context ) {
99 psock->send( data, len, context );
101 void send(
const vector< pair< char *, int > > &data,
const char *context ) {
102 psock->send( data, context );
105 return psock->connect( farEnd );
113 void secure( SSLManagerInterface* ssl ) {
114 psock->secure( ssl );
118 bool isStillConnected() {
119 return psock->isStillConnected();
122 uint64_t getSockCreationMicroSec()
const {
123 return psock->getSockCreationMicroSec();
128 PiggyBackData * piggyBackData;
135 static void closeAllSockets(
unsigned tagMask = 0xffffffff);
137 friend class PiggyBackData;