Browse Source

add reply() function, and return the sequence numbers

git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@138 e5f2f494-b856-4b98-b285-d166d9295462
Michael Graff 15 years ago
parent
commit
7838982c2d
2 changed files with 34 additions and 2 deletions
  1. 17 1
      src/lib/cc/python/ISC/CC/session.py
  2. 17 1
      src/lib/cc/ruby/lib/cc/session.rb

+ 17 - 1
src/lib/cc/python/ISC/CC/session.py

@@ -114,15 +114,17 @@ class Session:
         })
         })
 
 
     def group_sendmsg(self, msg, group, instance = "*", to = "*"):
     def group_sendmsg(self, msg, group, instance = "*", to = "*"):
+        seq = self._next_sequence()
         self.sendmsg({
         self.sendmsg({
             "type": "send",
             "type": "send",
             "from": self._lname,
             "from": self._lname,
             "to": to,
             "to": to,
             "group": group,
             "group": group,
             "instance": instance,
             "instance": instance,
-            "seq": self._next_sequence(),
+            "seq": seq,
             "msg": Message.to_wire(msg),
             "msg": Message.to_wire(msg),
         })
         })
+        return seq
 
 
     def group_recvmsg(self, nonblock = True):
     def group_recvmsg(self, nonblock = True):
         msg = self.recvmsg(nonblock)
         msg = self.recvmsg(nonblock)
@@ -131,6 +133,20 @@ class Session:
         data = Message.from_wire(msg["msg"])
         data = Message.from_wire(msg["msg"])
         return (data, msg)
         return (data, msg)
 
 
+    def group_reply(self, routing, msg):
+        seq = self._next_sequence()
+        self.sendmsg({
+            "type": "send",
+            "from": self._lname,
+            "to": routing["from"],
+            "group": routing["group"],
+            "instance": routing["instance"],
+            "seq": seq,
+            "reply": routing["seq"],
+            "msg": Message.to_wire(msg),
+        })
+        return seq
+
 if __name__ == "__main__":
 if __name__ == "__main__":
     import doctest
     import doctest
     doctest.testmod()
     doctest.testmod()

+ 17 - 1
src/lib/cc/ruby/lib/cc/session.rb

@@ -115,14 +115,30 @@ class Session
   end
   end
 
 
   def group_sendmsg(msg, group, instance = "*", to = "*")
   def group_sendmsg(msg, group, instance = "*", to = "*")
+    seq = next_sequence
     sendmsg({ :type => "send",
     sendmsg({ :type => "send",
               :from => @lname,
               :from => @lname,
               :to => to,
               :to => to,
               :group => group,
               :group => group,
               :instance => instance,
               :instance => instance,
-              :seq => next_sequence,
+              :seq => seq,
               :msg => CC::Message.to_wire(msg),
               :msg => CC::Message.to_wire(msg),
             })
             })
+    seq
+  end
+
+  def group_sendmsg(routing, msg)
+    seq = next_sequence
+    sendmsg({ :type => "send",
+              :from => @lname,
+              :to => routing["from"],
+              :group => routing["group"],
+              :instance => routing["instance"],
+              :seq => seq,
+              :reply => fouring["seq"],
+              :msg => CC::Message.to_wire(msg),
+            })
+    seq
   end
   end
 
 
   def group_recvmsg(nonblock = true)
   def group_recvmsg(nonblock = true)