public ValueTask <OutgoingResponseFrame> DispatchAsync(IncomingRequestFrame request, Current current) { var ae = new AlsoEmpty(); var responseFrame = OutgoingResponseFrame.WithReturnValue(current, compress: false, format: default,
public ValueTask <OutgoingResponseFrame> DispatchAsync(IncomingRequestFrame request, Current current) { var ae = new Test.AlsoEmpty(); var responseFrame = OutgoingResponseFrame.WithReturnValue(current, format: null, ae, (OutputStream ostr, Test.AlsoEmpty ae) => ostr.WriteClass(ae)); return(new ValueTask <OutgoingResponseFrame>(responseFrame)); }
public async ValueTask <OutputStream> DispatchAsync(Ice.InputStream istr, Current current) { if (current.Operation.Equals("opOneway")) { if (!current.IsOneway) { // If called two-way, return exception to caller. throw new Test.MyException(); } return(OutgoingResponseFrame.Empty(current)); } else if (current.Operation.Equals("opString")) { string s = istr.ReadString(); var responseFrame = new OutgoingResponseFrame(current); responseFrame.StartReturnValue(); responseFrame.WriteString(s); responseFrame.WriteString(s); responseFrame.EndReturnValue(); return(responseFrame); } else if (current.Operation.Equals("opException")) { if (current.Context.ContainsKey("raise")) { throw new Test.MyException(); } var ex = new Test.MyException(); return(new OutgoingResponseFrame(current, ex)); } else if (current.Operation.Equals("shutdown")) { current.Adapter.Communicator.Shutdown(); return(OutgoingResponseFrame.Empty(current)); } else if (current.Operation.Equals("ice_isA")) { string s = istr.ReadString(); var responseFrame = new OutgoingResponseFrame(current); responseFrame.StartReturnValue(); if (s.Equals("::Test::MyClass")) { responseFrame.WriteBool(true); } else { responseFrame.WriteBool(false); } responseFrame.EndReturnValue(); return(responseFrame); } else { throw new OperationNotExistException(current.Id, current.Facet, current.Operation); } }
public ValueTask <OutputStream> DispatchAsync(InputStream istr, Current current) { var ae = new Test.AlsoEmpty(); var responseFrame = new OutgoingResponseFrame(current); responseFrame.StartReturnValue(); responseFrame.WriteClass(ae); responseFrame.EndReturnValue(); return(new ValueTask <OutputStream>(responseFrame)); }
public ValueTask <OutgoingResponseFrame> DispatchAsync(IncomingRequestFrame request, Current current) { if (current.Operation.Equals("opOneway")) { if (!current.IsOneway) { // If called two-way, return exception to caller. throw new MyException(); } return(new ValueTask <OutgoingResponseFrame>(OutgoingResponseFrame.WithVoidReturnValue(current))); } else if (current.Operation.Equals("opString")) { string s = request.ReadArgs(current.Communicator, InputStream.IceReaderIntoString); var responseFrame = OutgoingResponseFrame.WithReturnValue(current, compress: false, format: default,
public Task ActivateAsync(CancellationToken cancel) { _communicator.DefaultDispatchInterceptors = _communicator.DefaultDispatchInterceptors.ToImmutableList().Add( async(request, current, next, cancel) => { current.Context["DispatchPlugin"] = "1"; OutgoingResponseFrame response = await next(request, current, cancel); if (request.Protocol == Protocol.Ice2) { response.BinaryContextOverride.Add(100, ostr => ostr.WriteInt(100)); } return(response); }); return(Task.CompletedTask); }
public ValueTask <OutgoingResponseFrame> DispatchAsync(IncomingRequestFrame request, Current current) { if (current.Operation.Equals("opOneway")) { if (!current.IsOneway) { // If called two-way, return exception to caller. throw new MyException(); } return(new ValueTask <OutgoingResponseFrame>(OutgoingResponseFrame.WithVoidReturnValue(current))); } else if (current.Operation.Equals("opString")) { string s = request.ReadParamList(current.Communicator, InputStream.IceReaderIntoString); var responseFrame = OutgoingResponseFrame.WithReturnValue(current, format: null, (s, s), (OutputStream ostr, (string ReturnValue, string s2)value) => { ostr.WriteString(value.ReturnValue); ostr.WriteString(value.s2); });