// Path: src/main/java/com/baidu/unbiz/multiengine/codec/ByteBufCodec.java
// public interface ByteBufCodec {
// 
//     /**
//      * 将对象编码成ByteBuf
//      * 
//      * @param object 编码对象
//      * @return byte数组
//      * @throws CodecException
//      */
//     byte[] encode(Object object) throws CodecException;
// 
//     /**
//      * 将ByteBuf解码成对象
//      * 
//      * @param byteBuf 字节缓冲区 @see ByteBuf
//      * @param length 字节长度
//      * @param clazz 对象类型
//      * @return 解码对象
//      * @throws CodecException
//      */
//     <T> T decode(ByteBuf byteBuf, int length, Class<T> clazz) throws CodecException;
// 
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/codec/MsgCodec.java
// public interface MsgCodec {
//     /**
//      * 反序列化
//      *
//      * @param clazz 反序列化后的类定义
//      * @param bytes 字节码
//      * @return 反序列化后的对象
//      * @throws CodecException
//      */
//      <T> T decode(Class<T> clazz, byte[] bytes) throws CodecException;
// 
//     /**
//      * 序列化
//      *
//      * @param object 待序列化的对象
//      * @return 字节码
//      * @throws CodecException
//      */
//     <T> byte[] encode(T object) throws CodecException;
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/exception/CodecException.java
// public class CodecException extends RuntimeException {
// 
//     /**
//      * serialVersionUID
//      */
//     private static final long serialVersionUID = 5196421433506179782L;
// 
//     /**
//      * Creates a new instance of CodecException.
//      */
//     public CodecException() {
//         super();
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      * @param arg1
//      */
//     public CodecException(String arg0, Throwable arg1) {
//         super(arg0, arg1);
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      */
//     public CodecException(String arg0) {
//         super(arg0);
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      */
//     public CodecException(Throwable arg0) {
//         super(arg0);
//     }
// 
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/utils/BufferUtils.java
// public abstract class BufferUtils {
// 
//     /**
//      * 将ByteBuf转化成byte数组
//      * 
//      * @param byteBuf Netty的ByteBuf @see ByteBuf
//      * @return byte数组
//      */
//     public static byte[] bufToBytes(ByteBuf byteBuf) {
//         if (byteBuf == null) {
//             return null;
//         }
// 
//         int length = byteBuf.readableBytes();
//         byte[] array = new byte[length];
//         byteBuf.readBytes(array);
// 
//         return array;
//     }
// 
//     /**
//      * 将ByteBuf转化成byte数组
//      *
//      * @param byteBuf Netty的ByteBuf @see ByteBuf
//      * @param length 长度
//      * @return byte数组
//      */
//     public static byte[] bufToBytes(ByteBuf byteBuf, int length) {
//         if (byteBuf == null) {
//             return null;
//         }
// 
//         byte[] array = new byte[length];
//         byteBuf.readBytes(array);
// 
//         return array;
//     }
// 
// }


import org.slf4j.Logger;
import com.baidu.unbiz.multiengine.codec.ByteBufCodec;
import com.baidu.unbiz.multiengine.codec.MsgCodec;
import com.baidu.unbiz.multiengine.exception.CodecException;
import com.baidu.unbiz.multiengine.utils.BufferUtils;
import com.baidu.unbiz.multitask.log.AopLogFactory;
import io.netty.buffer.ByteBuf;
package com.baidu.unbiz.multiengine.codec.bytebuf;




/**
 * 消息编解码器接口的适配器
 */
public class MsgCodecAdaptor implements ByteBufCodec {

    private static final Logger LOG = AopLogFactory.getLogger(MsgCodecAdaptor.class);

    /**
     * 消息编解码器
     */
// Path: src/main/java/com/baidu/unbiz/multiengine/codec/ByteBufCodec.java
// public interface ByteBufCodec {
// 
//     /**
//      * 将对象编码成ByteBuf
//      * 
//      * @param object 编码对象
//      * @return byte数组
//      * @throws CodecException
//      */
//     byte[] encode(Object object) throws CodecException;
// 
//     /**
//      * 将ByteBuf解码成对象
//      * 
//      * @param byteBuf 字节缓冲区 @see ByteBuf
//      * @param length 字节长度
//      * @param clazz 对象类型
//      * @return 解码对象
//      * @throws CodecException
//      */
//     <T> T decode(ByteBuf byteBuf, int length, Class<T> clazz) throws CodecException;
// 
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/codec/MsgCodec.java
// public interface MsgCodec {
//     /**
//      * 反序列化
//      *
//      * @param clazz 反序列化后的类定义
//      * @param bytes 字节码
//      * @return 反序列化后的对象
//      * @throws CodecException
//      */
//      <T> T decode(Class<T> clazz, byte[] bytes) throws CodecException;
// 
//     /**
//      * 序列化
//      *
//      * @param object 待序列化的对象
//      * @return 字节码
//      * @throws CodecException
//      */
//     <T> byte[] encode(T object) throws CodecException;
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/exception/CodecException.java
// public class CodecException extends RuntimeException {
// 
//     /**
//      * serialVersionUID
//      */
//     private static final long serialVersionUID = 5196421433506179782L;
// 
//     /**
//      * Creates a new instance of CodecException.
//      */
//     public CodecException() {
//         super();
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      * @param arg1
//      */
//     public CodecException(String arg0, Throwable arg1) {
//         super(arg0, arg1);
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      */
//     public CodecException(String arg0) {
//         super(arg0);
//     }
// 
//     /**
//      * Creates a new instance of CodecException.
//      * 
//      * @param arg0
//      */
//     public CodecException(Throwable arg0) {
//         super(arg0);
//     }
// 
// }
// 
// Path: src/main/java/com/baidu/unbiz/multiengine/utils/BufferUtils.java
// public abstract class BufferUtils {
// 
//     /**
//      * 将ByteBuf转化成byte数组
//      * 
//      * @param byteBuf Netty的ByteBuf @see ByteBuf
//      * @return byte数组
//      */
//     public static byte[] bufToBytes(ByteBuf byteBuf) {
//         if (byteBuf == null) {
//             return null;
//         }
// 
//         int length = byteBuf.readableBytes();
//         byte[] array = new byte[length];
//         byteBuf.readBytes(array);
// 
//         return array;
//     }
// 
//     /**
//      * 将ByteBuf转化成byte数组
//      *
//      * @param byteBuf Netty的ByteBuf @see ByteBuf
//      * @param length 长度
//      * @return byte数组
//      */
//     public static byte[] bufToBytes(ByteBuf byteBuf, int length) {
//         if (byteBuf == null) {
//             return null;
//         }
// 
//         byte[] array = new byte[length];
//         byteBuf.readBytes(array);
// 
//         return array;
//     }
// 
// }


// Path: src/main/java/com/baidu/unbiz/multiengine/codec/bytebuf/MsgCodecAdaptor.java
import org.slf4j.Logger;
import com.baidu.unbiz.multiengine.codec.ByteBufCodec;
import com.baidu.unbiz.multiengine.codec.MsgCodec;
import com.baidu.unbiz.multiengine.exception.CodecException;
import com.baidu.unbiz.multiengine.utils.BufferUtils;
import com.baidu.unbiz.multitask.log.AopLogFactory;
import io.netty.buffer.ByteBuf;

package com.baidu.unbiz.multiengine.codec.bytebuf;




/**
 * 消息编解码器接口的适配器
 */
public class MsgCodecAdaptor implements ByteBufCodec {

    private static final Logger LOG = AopLogFactory.getLogger(MsgCodecAdaptor.class);

    /**
     * 消息编解码器
     */
    private MsgCodec messageCodec;