summaryrefslogtreecommitdiff
path: root/grid
diff options
context:
space:
mode:
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);