Updated ZeroMQ implementation
[controller.git] / opendaylight / md-sal / test / zeromq-test-consumer / src / main / java / org / opendaylight / controller / sample / zeromq / consumer / ExampleConsumer.java
diff --git a/opendaylight/md-sal/test/zeromq-test-consumer/src/main/java/org/opendaylight/controller/sample/zeromq/consumer/ExampleConsumer.java b/opendaylight/md-sal/test/zeromq-test-consumer/src/main/java/org/opendaylight/controller/sample/zeromq/consumer/ExampleConsumer.java
new file mode 100644 (file)
index 0000000..a56a7de
--- /dev/null
@@ -0,0 +1,51 @@
+package org.opendaylight.controller.sample.zeromq.consumer;
+
+import java.net.URI;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import org.opendaylight.controller.sal.core.api.AbstractConsumer;
+import org.opendaylight.controller.sal.core.api.Broker.ConsumerSession;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.osgi.framework.BundleContext;
+
+public class ExampleConsumer extends AbstractConsumer {
+
+    private final URI namespace = URI.create("http://cisco.com/example");
+    private final QName QNAME = new QName(namespace,"heartbeat");
+    
+    ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
+    private ConsumerSession session;
+    
+    
+    @Override
+    public void onSessionInitiated(ConsumerSession session) {
+        this.session = session;
+        executor.scheduleAtFixedRate(new Runnable() {
+            
+            @Override
+            public void run() {
+                int count = 0;
+                try {
+                    Future<RpcResult<CompositeNode>> future = ExampleConsumer.this.session.rpc(QNAME, null);
+                    RpcResult<CompositeNode> result = future.get();
+                    System.out.println("Result received. Status is :" + result.isSuccessful());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                
+            }
+        }, 0, 10, TimeUnit.SECONDS);
+    }
+    
+    @Override
+    protected void stopImpl(BundleContext context) {
+        // TODO Auto-generated method stub
+        super.stopImpl(context);
+        executor.shutdown();
+    }
+}