Example #1
0
        public void SetUp()
        {
            // Create a request object and get the binary representation of it
            expectedRequest = new Schema.KRPC.Request();
            expectedRequest.Calls.Add(
                new Schema.KRPC.ProcedureCall {
                Service   = "TestService",
                Procedure = "ProcedureNoArgsNoReturn"
            });
            using (var stream = new MemoryStream()) {
                expectedRequest.WriteTo(stream);
                stream.Flush();
                requestBytes = stream.ToArray();
            }

            // Create a response object and get the binary representation of it
            expectedResponseMessage       = new Response();
            expectedResponseMessage.Error = new Error("SomeErrorMessage", "StackTrace");
            expectedResponse = expectedResponseMessage.ToProtobufMessage();
            using (var stream = new MemoryStream()) {
                expectedResponse.WriteTo(stream);
                stream.Flush();
                responseBytes = stream.ToArray();
            }
        }
Example #2
0
 public static Schema.KRPC.Request ToProtobufMessage (this Request request)
 {
     var result = new Schema.KRPC.Request ();
     result.Service = request.Service;
     result.Procedure = request.Procedure;
     result.Arguments.Add (request.Arguments.Select (ToProtobufMessage));
     return result;
 }
Example #3
0
        public static Schema.KRPC.Request ToProtobufMessage(this Request request)
        {
            var result = new Schema.KRPC.Request();

            result.Service   = request.Service;
            result.Procedure = request.Procedure;
            result.Arguments.Add(request.Arguments.Select(ToProtobufMessage));
            return(result);
        }
Example #4
0
        public static Request ToMessage(this Schema.KRPC.Request request)
        {
            var result = new Request();

            foreach (var call in request.Calls)
            {
                result.Calls.Add(call.ToMessage());
            }
            return(result);
        }
Example #5
0
 static object DecodeMessage(CodedInputStream stream, Type type)
 {
     if (type == typeof(Request))
     {
         var message = new Schema.KRPC.Request();
         message.MergeFrom(stream);
         return(message.ToMessage());
     }
     throw new ArgumentException("Cannot decode protocol buffer messages of type " + type);
 }
Example #6
0
        public void EncodeMessage()
        {
            var request = new Schema.KRPC.Request();

            request.Service   = "ServiceName";
            request.Procedure = "ProcedureName";
            var          data     = Encoder.Encode(request, typeof(Schema.KRPC.Request));
            const string expected = "0a0b536572766963654e616d65120d50726f6365647572654e616d65";

            Assert.AreEqual(expected, data.ToHexString());
        }
Example #7
0
        public static Request ToMessage(this Schema.KRPC.Request request)
        {
            var procedureSignature = KRPC.Service.Services.Instance.GetProcedureSignature(request.Service, request.Procedure);
            var result             = new Request(request.Service, request.Procedure);

            foreach (var argument in request.Arguments)
            {
                var type = procedureSignature.Parameters [(int)argument.Position].Type;
                result.Arguments.Add(argument.ToMessage(type));
            }
            return(result);
        }
Example #8
0
 protected override int Read(ref Request request, byte[] data, int offset, int length)
 {
     try {
         Schema.KRPC.Request message = null;
         var read = Utils.ReadMessage <Schema.KRPC.Request>(
             ref message, Schema.KRPC.Request.Parser, data, offset, length);
         if (message != null)
         {
             request = message.ToMessage();
         }
         return(read);
     } catch (InvalidProtocolBufferException e) {
         throw new MalformedRequestException(e.Message);
     }
 }
Example #9
0
 static object DecodeMessage (CodedInputStream stream, Type type)
 {
     if (type == typeof(Request)) {
         var message = new Schema.KRPC.Request ();
         message.MergeFrom (stream);
         return message.ToMessage ();
     }
     throw new ArgumentException ("Cannot decode protocol buffer messages of type " + type);
 }