[DO NOT MERGE]
[controller.git] / opendaylight / ping / service / src / main / java / org / opendaylight / controller / ping / service / api / PingServiceAPI.java
1 package org.opendaylight.controller.ping.service.api;
2
3
4 public interface PingServiceAPI {
5
6     public enum PingResult {
7         InProgress(0),
8         GotResponse(1),
9         NoResponse(2),
10         Error(3);
11
12         int value;
13         static java.util.Map<java.lang.Integer, PingResult> valueMap;
14
15         static {
16             valueMap = new java.util.HashMap<>();
17             for (PingResult enumItem : PingResult.values())
18             {
19                 valueMap.put(enumItem.value, enumItem);
20             }
21         }
22
23         private PingResult(int value) {
24             this.value = value;
25         }
26
27         /**
28          * @return integer value
29          */
30         public int getIntValue() {
31             return value;
32         }
33
34         /**
35          * @param valueArg
36          * @return corresponding EchoResult item
37          */
38         public static PingResult forValue(int valueArg) {
39             return valueMap.get(valueArg);
40         }
41     }
42
43     /**
44      * pingDestinationSync
45      *
46      * Will block caller until ping operation is finished.
47      *
48      * @param address An IPv4 address to be pinged
49      * @return PingResult enum. Will never return InProgress.
50      */
51     PingResult pingDestinationSync(String address);
52
53     /**
54      * pingDestinationAsync
55      *
56      * Will return last known state for given address.
57      *
58      * @param address An IPv4 address to be pinged
59      * @return PingResult enum.
60      */
61     PingResult pingDestinationAsync(String address);
62
63     /**
64      * pingAsyncStop
65      *
66      * Will stop async ping for given address.
67      *
68      * @param address An IPv4 address to be pinged
69      */
70     void pingAsyncStop(String address);
71 }
72