Repair Doxygen build infrastructure
[vpp.git] / src / vpp-api / java / jvpp-core / io / fd / vpp / jvpp / core / test / CallbackJVppFacadeNotificationTest.java
1 /*
2  * Copyright (c) 2016 Cisco and/or its affiliates.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package io.fd.vpp.jvpp.core.test;
18
19 import io.fd.vpp.jvpp.JVppRegistry;
20 import io.fd.vpp.jvpp.JVppRegistryImpl;
21 import io.fd.vpp.jvpp.VppCallbackException;
22 import io.fd.vpp.jvpp.core.JVppCore;
23 import io.fd.vpp.jvpp.core.JVppCoreImpl;
24 import io.fd.vpp.jvpp.core.callback.WantInterfaceEventsCallback;
25 import io.fd.vpp.jvpp.core.callfacade.CallbackJVppCoreFacade;
26 import io.fd.vpp.jvpp.core.dto.WantInterfaceEventsReply;
27
28 public class CallbackJVppFacadeNotificationTest {
29
30     private static void testCallbackFacade() throws Exception {
31         System.out.println("Testing CallbackJVppFacade for notifications");
32
33         try (final JVppRegistry registry = new JVppRegistryImpl("CallbackFacadeTest");
34              final JVppCore jvpp = new JVppCoreImpl()) {
35             final CallbackJVppCoreFacade jvppCallbackFacade = new CallbackJVppCoreFacade(registry, jvpp);
36             System.out.println("Successfully connected to VPP");
37
38             final AutoCloseable notificationListenerReg =
39                 jvppCallbackFacade.getNotificationRegistry().registerSwInterfaceSetFlagsNotificationCallback(
40                     NotificationUtils::printNotification
41                 );
42
43             jvppCallbackFacade.wantInterfaceEvents(NotificationUtils.getEnableInterfaceNotificationsReq(),
44                 new WantInterfaceEventsCallback() {
45                     @Override
46                     public void onWantInterfaceEventsReply(final WantInterfaceEventsReply reply) {
47                         System.out.println("Interface events started");
48                     }
49
50                     @Override
51                     public void onError(final VppCallbackException ex) {
52                         System.out.printf("Received onError exception: call=%s, context=%d, retval=%d%n",
53                             ex.getMethodName(), ex.getCtxId(), ex.getErrorCode());
54                     }
55                 });
56
57             System.out.println("Changing interface configuration");
58             NotificationUtils.getChangeInterfaceState().send(jvpp);
59
60             Thread.sleep(1000);
61
62             jvppCallbackFacade.wantInterfaceEvents(NotificationUtils.getDisableInterfaceNotificationsReq(),
63                 new WantInterfaceEventsCallback() {
64                     @Override
65                     public void onWantInterfaceEventsReply(final WantInterfaceEventsReply reply) {
66                         System.out.println("Interface events stopped");
67                     }
68
69                     @Override
70                     public void onError(final VppCallbackException ex) {
71                         System.out.printf("Received onError exception: call=%s, context=%d, retval=%d%n",
72                             ex.getMethodName(), ex.getCtxId(), ex.getErrorCode());
73                     }
74                 });
75
76             notificationListenerReg.close();
77
78             Thread.sleep(2000);
79             System.out.println("Disconnecting...");
80         }
81         Thread.sleep(1000);
82     }
83
84     public static void main(String[] args) throws Exception {
85         testCallbackFacade();
86     }
87 }