# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

import pyrfuniverse.grpc.RFUniverseGRPC_pb2 as RFUniverseGRPC__pb2


class GrpcServiceStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Link = channel.unary_unary(
            '/RFUniverse.GrpcService/Link',
            request_serializer=RFUniverseGRPC__pb2.Empty.SerializeToString,
            response_deserializer=RFUniverseGRPC__pb2.Empty.FromString,
        )
        self.CSharpToPythonStream = channel.stream_unary(
            '/RFUniverse.GrpcService/CSharpToPythonStream',
            request_serializer=RFUniverseGRPC__pb2.BinaryMessage.SerializeToString,
            response_deserializer=RFUniverseGRPC__pb2.Empty.FromString,
        )
        self.PythonToCSharpStream = channel.unary_stream(
            '/RFUniverse.GrpcService/PythonToCSharpStream',
            request_serializer=RFUniverseGRPC__pb2.Empty.SerializeToString,
            response_deserializer=RFUniverseGRPC__pb2.BinaryMessage.FromString,
        )


class GrpcServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def Link(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CSharpToPythonStream(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PythonToCSharpStream(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_GrpcServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Link': grpc.unary_unary_rpc_method_handler(
            servicer.Link,
            request_deserializer=RFUniverseGRPC__pb2.Empty.FromString,
            response_serializer=RFUniverseGRPC__pb2.Empty.SerializeToString,
        ),
        'CSharpToPythonStream': grpc.stream_unary_rpc_method_handler(
            servicer.CSharpToPythonStream,
            request_deserializer=RFUniverseGRPC__pb2.BinaryMessage.FromString,
            response_serializer=RFUniverseGRPC__pb2.Empty.SerializeToString,
        ),
        'PythonToCSharpStream': grpc.unary_stream_rpc_method_handler(
            servicer.PythonToCSharpStream,
            request_deserializer=RFUniverseGRPC__pb2.Empty.FromString,
            response_serializer=RFUniverseGRPC__pb2.BinaryMessage.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'RFUniverse.GrpcService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


# This class is part of an EXPERIMENTAL API.
class GrpcService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def Link(request,
             target,
             options=(),
             channel_credentials=None,
             call_credentials=None,
             insecure=False,
             compression=None,
             wait_for_ready=None,
             timeout=None,
             metadata=None):
        return grpc.experimental.unary_unary(request, target, '/RFUniverse.GrpcService/Link',
                                             RFUniverseGRPC__pb2.Empty.SerializeToString,
                                             RFUniverseGRPC__pb2.Empty.FromString,
                                             options, channel_credentials,
                                             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CSharpToPythonStream(request_iterator,
                             target,
                             options=(),
                             channel_credentials=None,
                             call_credentials=None,
                             insecure=False,
                             compression=None,
                             wait_for_ready=None,
                             timeout=None,
                             metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/RFUniverse.GrpcService/CSharpToPythonStream',
                                              RFUniverseGRPC__pb2.BinaryMessage.SerializeToString,
                                              RFUniverseGRPC__pb2.Empty.FromString,
                                              options, channel_credentials,
                                              insecure, call_credentials, compression, wait_for_ready, timeout,
                                              metadata)

    @staticmethod
    def PythonToCSharpStream(request,
                             target,
                             options=(),
                             channel_credentials=None,
                             call_credentials=None,
                             insecure=False,
                             compression=None,
                             wait_for_ready=None,
                             timeout=None,
                             metadata=None):
        return grpc.experimental.unary_stream(request, target, '/RFUniverse.GrpcService/PythonToCSharpStream',
                                              RFUniverseGRPC__pb2.Empty.SerializeToString,
                                              RFUniverseGRPC__pb2.BinaryMessage.FromString,
                                              options, channel_credentials,
                                              insecure, call_credentials, compression, wait_for_ready, timeout,
                                              metadata)
