HoneyNode Java 11 support for 221 devices
[transportpce.git] / tests / honeynode / 2.2.1 / netconf-impl / src / main / java / org / opendaylight / netconf / impl / osgi / NetconfMonitoringServiceImpl.java
diff --git a/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java b/tests/honeynode/2.2.1/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfMonitoringServiceImpl.java
new file mode 100644 (file)
index 0000000..ff0bc5c
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netconf.impl.osgi;
+
+import com.google.common.base.Optional;
+import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
+import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
+import org.opendaylight.netconf.api.monitoring.SessionListener;
+import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
+import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
+
+public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, AutoCloseable {
+
+    private final NetconfCapabilityMonitoringService capabilityMonitoring;
+    private final NetconfSessionMonitoringService sessionMonitoring;
+
+    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider) {
+        this(opProvider, Optional.absent(), 0);
+    }
+
+    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
+                                        ScheduledThreadPool threadPool,
+                                        long updateInterval) {
+        this(opProvider, Optional.fromNullable(threadPool), updateInterval);
+    }
+
+    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactory opProvider,
+                                        Optional<ScheduledThreadPool> threadPool,
+                                        long updateInterval) {
+        this.capabilityMonitoring = new NetconfCapabilityMonitoringService(opProvider);
+        this.sessionMonitoring = new NetconfSessionMonitoringService(threadPool, updateInterval);
+
+    }
+
+    @Override
+    public Sessions getSessions() {
+        return sessionMonitoring.getSessions();
+    }
+
+    @Override
+    public SessionListener getSessionListener() {
+        return sessionMonitoring;
+    }
+
+    @Override
+    public Schemas getSchemas() {
+        return capabilityMonitoring.getSchemas();
+    }
+
+    @Override
+    public String getSchemaForCapability(String moduleName, Optional<String> revision) {
+        return capabilityMonitoring.getSchemaForModuleRevision(moduleName, revision);
+    }
+
+    @Override
+    public Capabilities getCapabilities() {
+        return capabilityMonitoring.getCapabilities();
+    }
+
+    @Override
+    public AutoCloseable registerCapabilitiesListener(CapabilitiesListener listener) {
+        return capabilityMonitoring.registerListener(listener);
+    }
+
+    @Override
+    public AutoCloseable registerSessionsListener(SessionsListener listener) {
+        return sessionMonitoring.registerListener(listener);
+    }
+
+    public void setNotificationPublisher(BaseNotificationPublisherRegistration notificationPublisher) {
+        this.capabilityMonitoring.setNotificationPublisher(notificationPublisher);
+    }
+
+    @Override
+    public void close() {
+        capabilityMonitoring.close();
+        sessionMonitoring.close();
+    }
+}