Commit 648d5063 authored by chiaming2000's avatar chiaming2000
Browse files

UDT transport support for protocol 3.0.0.

Please note that is is a prototype implementation and currently only the
simulator and Java API support this transport.
parent f049825d
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -24,8 +24,11 @@ import io.netty.channel.udt.UdtMessage;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import com.seagate.kinetic.client.io.provider.spi.ClientMessageService;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic.Command;
import com.seagate.kinetic.proto.KineticIo.ExtendedMessage;

/**
@@ -71,6 +74,20 @@ SimpleChannelInboundHandler<UdtMessage> {
        // create kinetic message for processing
        KineticMessage km = new KineticMessage();
        km.setMessage(extendedMessage.getInterfaceMessage());
        
     // get command bytes
        ByteString commandBytes = extendedMessage.getInterfaceMessage().getCommandBytes();
        
        // build command
        Command.Builder commandBuilder = Command.newBuilder();
        
        try {
            commandBuilder.mergeFrom(commandBytes);
            km.setCommand(commandBuilder.build());
        } catch (InvalidProtocolBufferException e) {
           logger.log(Level.WARNING, e.getMessage(), e);
        }
        
        if (extendedMessage.hasValue()) {
            km.setValue(extendedMessage.getValue().toByteArray());
        }
+15 −0
Original line number Diff line number Diff line
@@ -28,7 +28,9 @@ import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic.Command;
import com.seagate.kinetic.proto.Kinetic.Message;
import com.seagate.kinetic.proto.KineticIo.ExtendedMessage;
import com.seagate.kinetic.simulator.io.provider.spi.MessageService;
@@ -74,6 +76,19 @@ Runnable {
            // set interface message
            km.setMessage(extendedMessage.getInterfaceMessage());
            
         // get command bytes
            ByteString commandBytes = extendedMessage.getInterfaceMessage().getCommandBytes();
            
            // build command
            Command.Builder commandBuilder = Command.newBuilder();
            
            try {
                commandBuilder.mergeFrom(commandBytes);
                km.setCommand(commandBuilder.build());
            } catch (InvalidProtocolBufferException e) {
               logger.log(Level.WARNING, e.getMessage(), e);
            }

            // set optiona value
            if (extendedMessage.hasValue()) {
                km.setValue(extendedMessage.getValue().toByteArray());