Fix to allow RESTCONF PUTing of Flows
[controller.git] / opendaylight / md-sal / forwardingrules-manager / src / main / java / org / opendaylight / controller / frm / meter / MeterProvider.xtend
diff --git a/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/meter/MeterProvider.xtend b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/meter/MeterProvider.xtend
new file mode 100644 (file)
index 0000000..75d29d5
--- /dev/null
@@ -0,0 +1,48 @@
+package org.opendaylight.controller.frm.meter
+
+import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService
+import org.opendaylight.yangtools.concepts.Registration
+import org.opendaylight.yangtools.yang.binding.DataObject
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
+import org.slf4j.LoggerFactory
+
+class MeterProvider implements AutoCloseable {
+    
+    @Property
+    DataProviderService dataService;
+    
+    @Property
+    SalMeterService salMeterService;
+    
+    FlowCommitHandler commitHandler
+
+    Registration<DataCommitHandler<InstanceIdentifier<? extends DataObject>,DataObject>> commitHandlerRegistration;
+    
+    static val LOG = LoggerFactory.getLogger(MeterProvider);
+    
+    def void start() {
+        commitHandler = new FlowCommitHandler(salMeterService)
+        val InstanceIdentifier<? extends DataObject> path = InstanceIdentifier.builder(Nodes)
+            .child(Node)
+            .augmentation(FlowCapableNode)
+            .child(Meter)
+            .toInstance();
+        commitHandlerRegistration = dataService.registerCommitHandler(path,commitHandler);
+        LOG.info("Meter Config Provider started.");
+    }
+
+    protected def startChange() {
+        return dataService.beginTransaction;
+    }
+    
+    override close() throws Exception {
+        throw new UnsupportedOperationException("TODO: auto-generated method stub")
+    }
+    
+}