using System; using Google.ProtocolBuffers.Descriptors; namespace Google.ProtocolBuffers { /// /// Interface for an RPC channel. A channel represents a communication line to /// a service (IService implementation) which can be used to call that service's /// methods. The service may be running on another machine. Normally, you should /// not call an IRpcChannel directly, but instead construct a stub wrapping it. /// Generated service classes contain a CreateStub method for precisely this purpose. /// public interface IRpcChannel { /// /// Calls the given method of the remote service. This method is similar /// to with one important difference: the /// caller decides the types of the IMessage objects, not the implementation. /// The request may be of any type as long as request.Descriptor == method.InputType. /// The response passed to the callback will be of the same type as /// (which must be such that /// responsePrototype.Descriptor == method.OutputType). /// void CallMethod(MethodDescriptor method, IRpcController controller, IMessage request, IMessage responsePrototype, Action done); } }