Java源码示例:com.alibaba.dubbo.remoting.exchange.support.MultiMessage

示例1
@Override
    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
        int save = buffer.readerIndex();
        MultiMessage result = MultiMessage.create();
        do {
//            com.alibaba.dubbo.remoting.transport.netty4.NettyCodecAdapter.InternalDecoder.decode()
            Object obj = codec.decode(channel, buffer);
            if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
                buffer.readerIndex(save);
                break;
            } else {
                result.addMessage(obj);
                logMessageLength(obj, buffer.readerIndex() - save);
                save = buffer.readerIndex();
            }
        } while (true);
        if (result.isEmpty()) {
            return Codec2.DecodeResult.NEED_MORE_INPUT;
        }
        if (result.size() == 1) {
            return result.get(0);
        }
        return result;
    }
 
示例2
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
    int save = buffer.readerIndex();
    MultiMessage result = MultiMessage.create();
    do {
        Object obj = codec.decode(channel, buffer);
        if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
            buffer.readerIndex(save);
            break;
        } else {
            result.addMessage(obj);
            logMessageLength(obj, buffer.readerIndex() - save);
            save = buffer.readerIndex();
        }
    } while (true);
    if (result.isEmpty()) {
        return Codec2.DecodeResult.NEED_MORE_INPUT;
    }
    if (result.size() == 1) {
        return result.get(0);
    }
    return result;
}
 
示例3
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
    int save = buffer.readerIndex();
    MultiMessage result = MultiMessage.create();
    do {
        Object obj = codec.decode(channel, buffer);
        if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
            buffer.readerIndex(save);
            break;
        } else {
            result.addMessage(obj);
            logMessageLength(obj, buffer.readerIndex() - save);
            save = buffer.readerIndex();
        }
    } while (true);
    if (result.isEmpty()) {
        return Codec2.DecodeResult.NEED_MORE_INPUT;
    }
    if (result.size() == 1) {
        return result.get(0);
    }
    return result;
}
 
示例4
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
    int save = buffer.readerIndex();
    MultiMessage result = MultiMessage.create();
    do {
        Object obj = codec.decode(channel, buffer);
        if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
            buffer.readerIndex(save);
            break;
        } else {
            result.addMessage(obj);
            logMessageLength(obj, buffer.readerIndex() - save);
            save = buffer.readerIndex();
        }
    } while (true);
    if (result.isEmpty()) {
        return Codec2.DecodeResult.NEED_MORE_INPUT;
    }
    if (result.size() == 1) {
        return result.get(0);
    }
    return result;
}
 
示例5
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
    int save = buffer.readerIndex();
    MultiMessage result = MultiMessage.create();
    do {
        Object obj = codec.decode(channel, buffer);
        if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
            buffer.readerIndex(save);
            break;
        } else {
            result.addMessage(obj);
            logMessageLength(obj, buffer.readerIndex() - save);
            save = buffer.readerIndex();
        }
    } while (true);
    if (result.isEmpty()) {
        return Codec2.DecodeResult.NEED_MORE_INPUT;
    }
    if (result.size() == 1) {
        return result.get(0);
    }
    return result;
}
 
示例6
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
    int save = buffer.readerIndex();
    MultiMessage result = MultiMessage.create();
    do {
        Object obj = codec.decode(channel, buffer);
        if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {
            buffer.readerIndex(save);
            break;
        } else {
            result.addMessage(obj);
            logMessageLength(obj, buffer.readerIndex() - save);
            save = buffer.readerIndex();
        }
    } while (true);
    if (result.isEmpty()) {
        return Codec2.DecodeResult.NEED_MORE_INPUT;
    }
    if (result.size() == 1) {
        return result.get(0);
    }
    return result;
}
 
示例7
@SuppressWarnings("unchecked")
    @Override
    public void received(Channel channel, Object message) throws RemotingException {
        if (message instanceof MultiMessage) {
            MultiMessage list = (MultiMessage) message;
            for (Object obj : list) {
//                多条消息处理
                handler.received(channel, obj);
            }
        } else {
//            com.alibaba.dubbo.remoting.transport.dispatcher.all.AllChannelHandler.received
            handler.received(channel, message);
        }
    }
 
示例8
@SuppressWarnings("unchecked")
@Override
   public void received(Channel channel, Object message) throws RemotingException {
       if (message instanceof MultiMessage) {
           MultiMessage list = (MultiMessage)message;
           for(Object obj : list) {
               handler.received(channel, obj);
           }
       } else {
           handler.received(channel, message);
       }
   }
 
示例9
@SuppressWarnings("unchecked")
@Override
   public void received(Channel channel, Object message) throws RemotingException {
       if (message instanceof MultiMessage) {
           MultiMessage list = (MultiMessage)message;
           for(Object obj : list) {
               handler.received(channel, obj);
           }
       } else {
           handler.received(channel, message);
       }
   }
 
示例10
@SuppressWarnings("unchecked")
@Override
   public void received(Channel channel, Object message) throws RemotingException {
       if (message instanceof MultiMessage) {
           MultiMessage list = (MultiMessage)message;
           for(Object obj : list) {
               handler.received(channel, obj);
           }
       } else {
           handler.received(channel, message);
       }
   }
 
示例11
@SuppressWarnings("unchecked")
@Override
   public void received(Channel channel, Object message) throws RemotingException {
       if (message instanceof MultiMessage) {
           MultiMessage list = (MultiMessage)message;
           for(Object obj : list) {
               handler.received(channel, obj);
           }
       } else {
           handler.received(channel, message);
       }
   }
 
示例12
@SuppressWarnings("unchecked")
@Override
   public void received(Channel channel, Object message) throws RemotingException {
       if (message instanceof MultiMessage) {
           MultiMessage list = (MultiMessage)message;
           for(Object obj : list) {
               handler.received(channel, obj);
           }
       } else {
           handler.received(channel, message);
       }
   }