コード例 #1
0
 public static void Apply(this IProtocolConverter protocolConverter,
                          byte[] destination, ref int index, object data, DataFlag dataFlag)
 {
     protocolConverter.Apply(destination, ref index, new DataContext()
     {
         Data     = data,
         DataFlag = dataFlag
     });
 }
コード例 #2
0
        public static T Resolve <T>(this IProtocolConverter protocolConverter, byte[] source, ref int index, DataFlag checkDataFlag)
        {
            var dataContext = protocolConverter.Resolve(source, ref index);

            if (dataContext.DataFlag != checkDataFlag)
            {
                throw new ProtocolException($"Data flag should be '{checkDataFlag}' bus is ''{dataContext.DataFlag}", ErrorCode.BadRequest);
            }

            return((T)dataContext.Data);
        }
コード例 #3
0
        public SocketProtocolHandler(IResolverSession session, IPacketStream packetStream, IProtocolConverter protocolConverter, IProtocolHandler protocolHandler)
        {
            this.ResolverSession   = session;
            this.packetStream      = packetStream ?? throw new ArgumentNullException(nameof(packetStream));
            this.protocolHandler   = protocolHandler ?? throw new ArgumentNullException(nameof(protocolHandler));
            this.protocolConverter = protocolConverter ?? throw new ArgumentNullException(nameof(protocolConverter));

            this.ConverterHeader = new ConverterHeader()
            {
                VersionMajor = 1
            };
        }
コード例 #4
0
 public SocketProtocolHandler(IResolverSession session, IPacketStream packetStream, IProtocolConverter protocolConverter, IHandlerProvider handlerProvider)
     : this(session, packetStream, protocolConverter, new MethodProtocolHandler(handlerProvider, session))
 {
 }
コード例 #5
0
 public SocketProtocolHandler(IResolverSession session, Stream stream, IProtocolConverter protocolConverter, IHandlerProvider handlerProvider)
     : this(session, new PacketStream(stream), protocolConverter, handlerProvider)
 {
 }
コード例 #6
0
        public static T Resolve <T>(this IProtocolConverter protocolConverter, byte[] source, ref int index)
        {
            var dataContext = protocolConverter.Resolve(source, ref index);

            return((T)dataContext.Data);
        }
コード例 #7
0
 public static void ApplyData(this IProtocolConverter protocolConverter,
                              byte[] destination, ref int index, object data)
 {
     Apply(protocolConverter, destination, ref index, data, DataFlag.Data);
 }