Add netconfnode-state-service
[ccsdk/features.git] / sdnr / wt / netconfnode-state-service / model / src / main / java / org / onap / ccsdk / features / sdnr / wt / netconfnodestateservice / NetconfNodeStateService.java
1 /*******************************************************************************
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  ******************************************************************************/
18
19 package org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice;
20
21 import org.eclipse.jdt.annotation.NonNull;
22 import org.opendaylight.yangtools.concepts.ListenerRegistration;
23 import org.opendaylight.yangtools.concepts.Registration;
24
25 public interface NetconfNodeStateService extends Registration {
26
27     /**
28      * Register for indication that Master NetconNode is entering or leaving Connected state.
29      * @param netconfNodeConnectListener
30      * @return managing object for listener
31      */
32     @NonNull <L extends NetconfNodeConnectListener> ListenerRegistration<L> registerNetconfNodeConnectListener(@NonNull L netconfNodeConnectListener);
33
34     /**
35      * Register for all NetconfNode specific state changes
36      * @param netconfNodeStateListener
37      * @return managing object for listener
38      */
39     @NonNull <L extends NetconfNodeStateListener> ListenerRegistration<L> registerNetconfNodeStateListener(@NonNull L netconfNodeStateListener);
40
41     /**
42      * Register for Ves/DmaaP provided messages
43      * @param netconfNodeStateListener
44      * @return managing object for listener
45      */
46     @NonNull <L extends VesNotificationListener> ListenerRegistration<L> registerVesNotifications(@NonNull L netconfNodeStateListener);
47
48 }