summaryrefslogtreecommitdiff
path: root/grid
diff options
context:
space:
mode:
authorDwight <dmerriman@gmail.com>2008-03-24 18:04:22 -0400
committerDwight <dmerriman@gmail.com>2008-03-24 18:04:22 -0400
commit8cdedebc9c653bfced237db6c46dfe6453b35114 (patch)
treefa96d457d77714a7d749d60f898c6a69d8e120b6 /grid
parentc316b49774669ba42d28aa7319741a8400ebc8a1 (diff)
downloadmongo-8cdedebc9c653bfced237db6c46dfe6453b35114.tar.gz
jnicallback
Diffstat (limited to 'grid')
-rw-r--r--grid/message.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/grid/message.h b/grid/message.h
index 4dfdcdef06c..92691b65f61 100644
--- a/grid/message.h
+++ b/grid/message.h
@@ -20,7 +20,12 @@ private:
int port;
};
-class MessagingPort {
+class AbstractMessagingPort {
+public:
+ virtual void reply(Message& received, Message& response) = 0;
+};
+
+class MessagingPort : public AbstractMessagingPort {
public:
MessagingPort(int sock, SockAddr& farEnd);
MessagingPort();
@@ -82,6 +87,16 @@ public:
SockAddr from;
MsgData *data;
+ Message& operator=(Message& r) {
+ assert( data == 0 );
+ data = r.data;
+ assert( r.freeIt );
+ r.freeIt = false;
+ r.data = 0;
+ freeIt = true;
+ return *this;
+ }
+
void reset() {
if( freeIt && data )
free(data);