Reorganize mappingservice.implementation
[lispflowmapping.git] / mappingservice / southbound / src / main / java / org / opendaylight / lispflowmapping / southbound / LfmControlPlaneRpc.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc.  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
9 package org.opendaylight.lispflowmapping.southbound;
10
11 import java.nio.ByteBuffer;
12 import java.util.concurrent.Future;
13
14 import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer;
15 import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer;
16 import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer;
17 import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LfmControlPlaneService;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapNotifyInput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapRegisterInput;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapReplyInput;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapRequestInput;
23 import org.opendaylight.yangtools.yang.common.RpcResult;
24 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
27
28 import com.google.common.util.concurrent.Futures;
29
30 /**
31  * This class holds all RPCs methods for LispSouthbound Plugin.
32  *
33  * <p>
34  * @author Florin Coras (fcoras@cisco.com)
35  * @author Lorand Jakab (lojakab@cisco.com)
36  */
37
38 public class LfmControlPlaneRpc implements LfmControlPlaneService {
39
40     protected static final Logger LOG = LoggerFactory.getLogger(LfmControlPlaneRpc.class);
41
42     private final String MAP_NOTIFY = "MapNotify";
43     private final String MAP_REPlY = "MapReply";
44     private final String MAP_REQUEST = "MapRequest";
45     private final String MAP_REGISTER = "MapRegister";
46     private final LispSouthboundPlugin lispSbPlugin;
47
48     public LfmControlPlaneRpc(LispSouthboundPlugin lispSbPlugin) {
49         this.lispSbPlugin = lispSbPlugin;
50     }
51
52
53     @Override
54     public Future<RpcResult<Void>> sendMapNotify(SendMapNotifyInput mapNotifyInput) {
55         LOG.trace("sendMapNotify called!!");
56         if (mapNotifyInput != null) {
57             ByteBuffer outBuffer = MapNotifySerializer.getInstance().serialize(mapNotifyInput.getMapNotify());
58             lispSbPlugin.handleSerializedLispBuffer(mapNotifyInput.getTransportAddress(), outBuffer, MAP_NOTIFY);
59         } else {
60             LOG.warn("MapNotify was null");
61             return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
62         }
63         return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
64     }
65
66     @Override
67     public Future<RpcResult<Void>> sendMapReply(SendMapReplyInput mapReplyInput) {
68         LOG.trace("sendMapReply called!!");
69         if (mapReplyInput != null) {
70             ByteBuffer outBuffer = MapReplySerializer.getInstance().serialize(mapReplyInput.getMapReply());
71             lispSbPlugin.handleSerializedLispBuffer(mapReplyInput.getTransportAddress(), outBuffer, MAP_REPlY);
72         } else {
73             LOG.warn("MapReply was null");
74             return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
75         }
76         return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
77     }
78
79     @Override
80     public Future<RpcResult<Void>> sendMapRequest(SendMapRequestInput mapRequestInput) {
81         LOG.trace("sendMapRequest called!!");
82         if (mapRequestInput != null) {
83             ByteBuffer outBuffer = MapRequestSerializer.getInstance().serialize(mapRequestInput.getMapRequest());
84             lispSbPlugin.handleSerializedLispBuffer(mapRequestInput.getTransportAddress(), outBuffer, MAP_REQUEST);
85         } else {
86             LOG.debug("MapRequest was null");
87             return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
88         }
89         return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
90     }
91
92     @Override
93     public Future<RpcResult<Void>> sendMapRegister(SendMapRegisterInput mapRegisterInput) {
94         LOG.trace("sendMapRegister called!!");
95         if (mapRegisterInput != null) {
96             ByteBuffer outBuffer = MapRegisterSerializer.getInstance().serialize(mapRegisterInput.getMapRegister());
97             lispSbPlugin.handleSerializedLispBuffer(mapRegisterInput.getTransportAddress(), outBuffer, MAP_REGISTER);
98         } else {
99             LOG.debug("MapRegister was null");
100             return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
101         }
102         return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
103     }
104 }