dbus service: remove unused attribute of cloudeebus.Agent ('srvName')
[contrib/cloudeebus.git] / doc / agent / server.html
index df81774..7952612 100644 (file)
@@ -4,10 +4,10 @@
         <script src="../../lib/autobahn.min.js"></script>
         <script src="../../cloudeebus/cloudeebus.js"></script>
         <script type="text/javascript">
-               function evalScript() {
+               function evalScript(field) {
                        eval(
                                "var lambda = function() {" +
-                                       document.getElementById('script').value +
+                                       document.getElementById(field).value +
                                "};" + 
                                "lambda();"
                        );
    <body>
         <center><h1>cloudeebus</h1></center>
         <br>
-               <textarea style="width:80%" rows="32" id="script">var sampleXml= '<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"\n"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">\n<node><interface name="org.cloudeebus.Sample1"><method name="Release"></method><method name="Add"><arg type="i" name="arg1"/><arg type="i" name="arg2"/><arg type="i" name="result" direction="out"/></method><method name="Variant"><arg type="a{sv}" name="arg1"/><arg type="a{sv}" name="result" direction="out"/></method><signal name="ResultChanged"><arg type="v" name="result"/></signal></interface><interface name="org.cloudeebus.Sample2"><method name="Div"><arg type="d" name="arg1"/><arg type="d" name="arg2"/><arg type="d" name="result" direction="out"/></method></interface></node>';
+               <textarea style="width:80%" rows="32" id="script">
+var manifest = {
+       name: "cloudeebus",
+       key: "secret",
+       services: [
+               "org.cloudeebus.Sample"
+       ]
+};
+
+
+var sampleXml= '<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"\n"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">\n<node><interface name="org.cloudeebus.Sample"><method name="Add"><arg type="i" name="arg1"/><arg type="i" name="arg2"/><arg type="i" name="result" direction="out"/></method><method name="Div"><arg type="d" name="arg1"/><arg type="d" name="arg2"/><arg type="d" name="result" direction="out"/></method><method name="Variant"><arg type="a{sv}" name="arg1"/><arg type="a{sv}" name="result" direction="out"/></method><signal name="ResultChanged"><arg type="v" name="result"/></signal></interface></node>';
+
 cloudeebus.log = function(msg) {
   document.getElementById("log").innerHTML += msg + "\n";
 }
@@ -40,65 +51,44 @@ sampleObjectHandler = {
     cloudeebus.log("Get and return :" + JSON.stringify(a));
     return a;
   }, 
-  Release: function() {
-    cloudeebus.SessionBus().service.delAgent("/org/cloudeebus/Sample", logCB, errorCB);
-    cloudeebus.SessionBus().service.remove(logCB, errorCB);
-  },
-  interfaceProxies : {
-    "org.cloudeebus.Sample2" : {
-      Div: function(a,b) {
-        cloudeebus.log("Div " + a + " / " + b);
-       this.ResultChanged(a/b);
-        return a/b;
-      } 
-    }
-  }
-};
-
-sampleObjectHandler2 = {
-  interfaceProxies : {
-    "org.cloudeebus.Sample1" : {
-         Add: function(a,b) {
-       this.interfaceProxies["org.cloudeebus.Sample1"].ResultChanged(a+b);
-       return a+b;
-      }, 
-  Variant: function(a) {
-    cloudeebus.log("Get and return :" + JSON.stringify(a));
-    return a;
-  }, 
-      Release: function() {
-        cloudeebus.SessionBus().service.delAgent("/org/cloudeebus/Sample", logCB, errorCB);
-        cloudeebus.SessionBus().service.remove(logCB, errorCB);
-      },
-    },
-    "org.cloudeebus.Sample2" : {
-      Div: function(a,b) {
-        return a/b;
-      } 
-    }
+  Div: function(a,b) {
+    cloudeebus.log("Div " + a + " / " + b);
+       this.ResultChanged(a/b);
+    return a/b;
   }
 };
 
-function addAgents(service) {
-  var agent1 = new cloudeebus.Agent(service.name, "/org/cloudeebus/Sample", sampleObjectHandler, sampleXml);
-  cloudeebus.log("Adding agent " + agent1.name + " on " + service.name + "and mapped on Javascript object: 'sampleObjectHandler");
-  service.addAgent(agent1, logCB, errorCB);
-  
-  var agent2 = new cloudeebus.Agent(service.name, "/org/cloudeebus/Sample2", sampleObjectHandler2, sampleXml);
-  cloudeebus.log("Adding agent " + agent2.name + " on " + service.name + "and mapped on Javascript object: 'sampleObjectHandler2");
-  service.addAgent(agent2, logCB, errorCB);
+function addAgent(service) {
+  window.gService = service;
+  var agent = new cloudeebus.Agent("/org/cloudeebus/Sample", sampleObjectHandler, sampleXml);
+  cloudeebus.log("Adding agent " + agent.objectPath + " on " + service.name + ", mapped on Javascript object: 'sampleObjectHandler");
+  service.addAgent(agent).then(logCB, errorCB);
+  window.gAgent = agent;
 }
 
 function connectSuccess() {
-  cloudeebus.SessionBus().addService("org.cloudeebus.Sample").then(addAgents, errorCB);
+  cloudeebus.SessionBus().addService("org.cloudeebus.Sample").then(addAgent, errorCB);
 }
 
-cloudeebus.connect("ws://localhost:9003", null, connectSuccess, errorCB);
+if (!window.gService)
+  cloudeebus.connect("ws://localhost:9003", manifest, connectSuccess, errorCB);
 </textarea>
                <br>
--              <input type="button" value="run script" onclick="evalScript()"/>
+-              <input type="button" value="run script" onclick="evalScript('script')"/>
                <input type="button" value="clear log" onclick="document.getElementById('log').innerHTML='';"/>
                <br>
+<textarea style="width:80%" rows="7" id="removeCmd">
+function removeService() {
+       window.gService.remove();
+    cloudeebus.log("Service removed");
+       window.gService = null;
+}
+
+window.gService.removeAgent(window.gAgent).then(removeService, null);
+</textarea>
+               <br>
+               <input type="button" value="Unregister service" onclick="evalScript('removeCmd')"/>
+               <br>
                <pre id="log" style="height: 20em; overflow-x: auto; overflow-y: auto; background-color: #faa;"></pre>
    </body>
 </html>