1 package org.opendaylight.ovsdb.plugin;
\r
3 import com.fasterxml.jackson.databind.JsonNode;
\r
4 import com.fasterxml.jackson.databind.ObjectMapper;
\r
6 import io.netty.channel.ChannelHandlerContext;
\r
7 import io.netty.channel.ChannelInboundHandlerAdapter;
\r
9 import org.opendaylight.ovsdb.lib.message.EchoResponse;
\r
10 import org.slf4j.Logger;
\r
11 import org.slf4j.LoggerFactory;
\r
13 import java.io.IOException;
\r
14 import java.util.HashMap;
\r
15 import java.util.Map;
\r
16 import java.util.concurrent.Future;
\r
18 public class MessageHandler extends ChannelInboundHandlerAdapter {
\r
19 protected static final Logger logger = LoggerFactory.getLogger(MessageHandler.class);
\r
21 private Map<Long, MessageHandlerFuture> responseFutures = new HashMap<Long, MessageHandlerFuture>();
\r
23 public Future<Object> getResponse(long id) {
\r
24 MessageHandlerFuture responseFuture = new MessageHandlerFuture(Long.valueOf(id));
\r
25 responseFutures.put(Long.valueOf(id), responseFuture);
\r
26 return responseFuture;
\r
30 public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
\r
31 // logger.debug(ctx.channel().alloc().buffer().alloc().directBuffer().toString());
\r
33 logger.info("ChannRead ==> " + msg.toString());
\r
35 ObjectMapper mapper = new ObjectMapper();
\r
36 String strmsg = msg.toString();
\r
38 jsonNode = mapper.readTree(strmsg);
\r
39 } catch (IOException e) {
\r
40 e.printStackTrace();
\r
44 if (jsonNode.has("method")) {
\r
45 String method = jsonNode.get("method").toString();
\r
46 // if (method.contains("echo")) {
\r
47 EchoResponse echoreply = new EchoResponse();
\r
48 JsonNode echoReplyJnode = mapper.valueToTree(echoreply);
\r
49 logger.debug("Echo Reply DP ==>" + msg);
\r
50 ctx.writeAndFlush(echoReplyJnode.toString());
\r
55 public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
\r