Search in sources :

Example 6 with BaseMessage

use of io.nuls.protocol.message.base.BaseMessage in project nuls by nuls-io.

the class MessageProcessor method analysisMessage.

private List<BaseMessage> analysisMessage(ByteBuf buffer) throws NulsException {
    List<BaseMessage> messageList;
    try {
        messageList = new ArrayList<>();
        byte[] bytes = new byte[buffer.readableBytes()];
        buffer.readBytes(bytes);
        NulsByteBuffer byteBuffer = new NulsByteBuffer(bytes);
        while (!byteBuffer.isFinished()) {
            MessageHeader header = byteBuffer.readNulsData(new MessageHeader());
            byteBuffer.setCursor(byteBuffer.getCursor() - header.size());
            BaseMessage message = getMessageBusService().getMessageInstance(header.getModuleId(), header.getMsgType()).getData();
            message = byteBuffer.readNulsData(message);
            messageList.add(message);
        }
    } catch (Exception e) {
        throw new NulsException(KernelErrorCode.DATA_ERROR, e);
    } finally {
        buffer.clear();
    }
    return messageList;
}
Also used : BaseMessage(io.nuls.protocol.message.base.BaseMessage) NulsException(io.nuls.kernel.exception.NulsException) MessageHeader(io.nuls.protocol.message.base.MessageHeader) NulsException(io.nuls.kernel.exception.NulsException) NulsByteBuffer(io.nuls.kernel.utils.NulsByteBuffer)

Aggregations

BaseMessage (io.nuls.protocol.message.base.BaseMessage)6 MessageHeader (io.nuls.protocol.message.base.MessageHeader)2 NulsException (io.nuls.kernel.exception.NulsException)1 Transaction (io.nuls.kernel.model.Transaction)1 NulsByteBuffer (io.nuls.kernel.utils.NulsByteBuffer)1 SAXException (org.xml.sax.SAXException)1