[svn] commit: r215 - in /experiments/jelte-configuration: data.cc session.cc test.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Oct 30 01:08:31 UTC 2009


Author: mgraff
Date: Fri Oct 30 01:08:31 2009
New Revision: 215

Log:
it lives

Modified:
    experiments/jelte-configuration/data.cc
    experiments/jelte-configuration/session.cc
    experiments/jelte-configuration/test.cc

Modified: experiments/jelte-configuration/data.cc
==============================================================================
--- experiments/jelte-configuration/data.cc (original)
+++ experiments/jelte-configuration/data.cc Fri Oct 30 01:08:31 2009
@@ -540,7 +540,7 @@
     buf[len] = 0;
     item_length -= len;
 
-    return std::string(buf);
+    return std::string(buf, len);
 }
 
 ElementPtr
@@ -553,9 +553,10 @@
         throw DecodeError();
     }
     buf[item_length] = 0;
+
+    std::string s = std::string(buf, item_length);
     item_length -= item_length;
 
-    std::string s = std::string(buf);
     delete [] buf;
     return Element::create(s);
 }

Modified: experiments/jelte-configuration/session.cc
==============================================================================
--- experiments/jelte-configuration/session.cc (original)
+++ experiments/jelte-configuration/session.cc Fri Oct 30 01:08:31 2009
@@ -103,6 +103,7 @@
     wire_stream <<wire;
 
     msg = Element::from_wire(wire_stream, length);
+
     return (true);
     // XXXMLG handle non-block here, and return false for short reads
 }
@@ -110,7 +111,8 @@
 void
 Session::subscribe(std::string group, std::string instance, std::string subtype)
 {
-    ElementPtr env;
+    ElementPtr env = Element::create(std::map<std::string, ElementPtr>());
+
     env->set("type", Element::create("subscribe"));
     env->set("group", Element::create(group));
     env->set("instance", Element::create(instance));
@@ -122,7 +124,8 @@
 void
 Session::unsubscribe(std::string group, std::string instance)
 {
-    ElementPtr env;
+    ElementPtr env = Element::create(std::map<std::string, ElementPtr>());
+
     env->set("type", Element::create("unsubscribe"));
     env->set("group", Element::create(group));
     env->set("instance", Element::create(instance));
@@ -133,7 +136,8 @@
 unsigned int
 Session::group_sendmsg(ElementPtr& msg, std::string group, std::string instance, std::string to)
 {
-    ElementPtr env;
+    ElementPtr env = Element::create(std::map<std::string, ElementPtr>());
+
     env->set("type", Element::create("send"));
     env->set("from", Element::create(lname));
     env->set("to", Element::create(to));
@@ -141,6 +145,7 @@
     env->set("instance", Element::create(instance));
     env->set("seq", Element::create(sequence));
     env->set("msg", Element::create(msg->to_wire()));
+
     sendmsg(env);
 
     return (sequence++);
@@ -155,13 +160,15 @@
     }
 
     msg = Element::from_wire(envelope->get("msg")->string_value());
+
     return (true);
 }
 
 unsigned int
 Session::reply(ElementPtr& envelope, ElementPtr& newmsg)
 {
-    ElementPtr env;
+    ElementPtr env = Element::create(std::map<std::string, ElementPtr>());
+
     env->set("type", Element::create("send"));
     env->set("from", Element::create(lname));
     env->set("to", Element::create(envelope->get("from")->string_value()));
@@ -170,6 +177,7 @@
     env->set("seq", Element::create(sequence));
     env->set("msg", Element::create(newmsg->to_wire()));
     env->set("reply", Element::create(envelope->get("seq")->string_value()));
+
     sendmsg(env);
 
     return (sequence++);

Modified: experiments/jelte-configuration/test.cc
==============================================================================
--- experiments/jelte-configuration/test.cc (original)
+++ experiments/jelte-configuration/test.cc Fri Oct 30 01:08:31 2009
@@ -120,5 +120,23 @@
     ISC::CC::Session session;
     session.establish();
 
+    session.subscribe("test");
+
+    int counter = 0;
+
+    ElementPtr env = Element::create(std::map<std::string, ElementPtr>());
+    env->set("counter", Element::create(counter++));
+
+    while (true) {
+        env->set("counter", Element::create(counter++));
+
+        session.group_sendmsg(env, "test", "foo");
+
+        ElementPtr routing, data;
+        session.group_recvmsg(routing, data, false);
+        cout << "routing: " << routing << endl;
+        cout << "data: " << data << endl;
+    }
+
     return 0;
 }




More information about the bind10-changes mailing list