Update Tomas's name
[netconf.git] / netconf / netconf-mapping-api / src / main / java / org / opendaylight / netconf / mapping / api / NetconfOperationServiceFactory.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netconf.mapping.api;
9
10 import java.util.Set;
11 import org.eclipse.jdt.annotation.NonNull;
12 import org.opendaylight.netconf.api.capability.Capability;
13 import org.opendaylight.netconf.api.monitoring.CapabilityListener;
14 import org.opendaylight.yangtools.concepts.Registration;
15
16 /**
17  * Factory that must be registered in OSGi service registry in order to be used
18  * by netconf-impl. Responsible for creating per-session instances of
19  * {@link NetconfOperationService}.
20  */
21 public interface NetconfOperationServiceFactory {
22     /**
23      * Get capabilities supported by current operation service.
24      */
25     @NonNull Set<Capability> getCapabilities();
26
27     /**
28      * Supported capabilities may change over time, registering a listener allows for push based information
29      * retrieval about current notifications.
30      */
31     @NonNull Registration registerCapabilityListener(CapabilityListener listener);
32
33     @NonNull NetconfOperationService createService(String netconfSessionIdForReporting);
34 }