919caa96d9e82c0be24def23af2ebdd0650a08f4
[bgpcep.git] / framework / src / main / java / org / opendaylight / protocol / framework / ProtocolMessageEncoder.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  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 package org.opendaylight.protocol.framework;
9
10 import io.netty.buffer.ByteBuf;
11 import io.netty.channel.ChannelHandler.Sharable;
12 import io.netty.channel.ChannelHandlerContext;
13 import io.netty.handler.codec.MessageToByteEncoder;
14
15 import java.util.Arrays;
16
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19
20 @Sharable
21 final class ProtocolMessageEncoder extends MessageToByteEncoder<ProtocolMessage> {
22
23         private final static Logger logger = LoggerFactory.getLogger(ProtocolMessageEncoder.class);
24
25         private final ProtocolMessageFactory factory;
26
27         public ProtocolMessageEncoder(final ProtocolMessageFactory factory) {
28                 this.factory = factory;
29         }
30
31         @Override
32         protected void encode(final ChannelHandlerContext ctx, final ProtocolMessage msg, final ByteBuf out) throws Exception {
33                 logger.debug("Sent to encode : {}", Arrays.toString(ctx.channel().pipeline().names().toArray()));
34                 out.writeBytes(this.factory.put(msg));
35         }
36 }