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

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
import morai_simulation_pb2 as morai__simulation__pb2
import morai_type_pb2 as morai__type__pb2


class MoraiSimulationStub(object):
    """시뮬레이션 시 사용하는 서비스
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Initialize = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/Initialize',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.IsSynchronousMode = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/IsSynchronousMode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.BoolValue.FromString,
                )
        self.SetSynchronousMode = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/SetSynchronousMode',
                request_serializer=morai__type__pb2.BoolValue.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.Tick = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/Tick',
                request_serializer=morai__type__pb2.Int32Value.SerializeToString,
                response_deserializer=morai__type__pb2.Uint64Value.FromString,
                )
        self.WaitForTick = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/WaitForTick',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.Int64Value.FromString,
                )
        self.GetEnviroTime = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/GetEnviroTime',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.Uint32Value.FromString,
                )
        self.SetEnviroTime = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/SetEnviroTime',
                request_serializer=morai__type__pb2.Uint32Value.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.Pause = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/Pause',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.Resume = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/Resume',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.SetWeather = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/SetWeather',
                request_serializer=morai__simulation__pb2.WeatherParam.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.GetWeather = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/GetWeather',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__simulation__pb2.WeatherParam.FromString,
                )
        self.LoadWorld = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/LoadWorld',
                request_serializer=morai__simulation__pb2.LoadWorldParam.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.LoadBuiltInScenario = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/LoadBuiltInScenario',
                request_serializer=morai__type__pb2.StringValue.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.LoadSensorConfig = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/LoadSensorConfig',
                request_serializer=morai__simulation__pb2.SensorConfig.SerializeToString,
                response_deserializer=morai__type__pb2.Result.FromString,
                )
        self.GetCurrentMapName = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/GetCurrentMapName',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=morai__type__pb2.StringValue.FromString,
                )
        self.SetSimulatorTimeScale = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/SetSimulatorTimeScale',
                request_serializer=morai__type__pb2.FloatValue.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.RayCast = channel.unary_unary(
                '/morai_sim_api.MoraiSimulation/RayCast',
                request_serializer=morai__simulation__pb2.RaycastParam.SerializeToString,
                response_deserializer=morai__type__pb2.FloatValue.FromString,
                )


class MoraiSimulationServicer(object):
    """시뮬레이션 시 사용하는 서비스
    """

    def Initialize(self, request, context):
        """// 시뮬레이션 초기화
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IsSynchronousMode(self, request, context):
        """// 동기 모드인지 확인
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetSynchronousMode(self, request, context):
        """// 동기/비동기 모드 설정
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Tick(self, request, context):
        """// 동기 모드일 때 설정한 시간만큼 Tick 진행
        param 단위 : msec
        response : frame index
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def WaitForTick(self, request, context):
        """// 비동기 모드일 때 사용하는 rpc로 다음 틱이 돌아오면 리턴
        response : timestamp (msec)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEnviroTime(self, request, context):
        """// 환경 시간 조회
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetEnviroTime(self, request, context):
        """// 환경 시간 설정
        param : hour(0~24)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Pause(self, request, context):
        """// 시뮬레이션 일시 정지
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Resume(self, request, context):
        """시뮬레이션 재개
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetWeather(self, request, context):
        """// 날씨 설정
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetWeather(self, request, context):
        """// 현재 날씨 조회
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LoadWorld(self, request, context):
        """// 맵 로드
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LoadBuiltInScenario(self, request, context):
        """// Built-in 시나리오 로드
        Param : 로드할 시나리오 파일 이름
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LoadSensorConfig(self, request, context):
        """// Sensor 설정 로드
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCurrentMapName(self, request, context):
        """// 현재 맵 이름
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetSimulatorTimeScale(self, request, context):
        """// Time scale 설정
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RayCast(self, request, context):
        """// Raycast
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_MoraiSimulationServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Initialize': grpc.unary_unary_rpc_method_handler(
                    servicer.Initialize,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'IsSynchronousMode': grpc.unary_unary_rpc_method_handler(
                    servicer.IsSynchronousMode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.BoolValue.SerializeToString,
            ),
            'SetSynchronousMode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetSynchronousMode,
                    request_deserializer=morai__type__pb2.BoolValue.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'Tick': grpc.unary_unary_rpc_method_handler(
                    servicer.Tick,
                    request_deserializer=morai__type__pb2.Int32Value.FromString,
                    response_serializer=morai__type__pb2.Uint64Value.SerializeToString,
            ),
            'WaitForTick': grpc.unary_unary_rpc_method_handler(
                    servicer.WaitForTick,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.Int64Value.SerializeToString,
            ),
            'GetEnviroTime': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEnviroTime,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.Uint32Value.SerializeToString,
            ),
            'SetEnviroTime': grpc.unary_unary_rpc_method_handler(
                    servicer.SetEnviroTime,
                    request_deserializer=morai__type__pb2.Uint32Value.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'Pause': grpc.unary_unary_rpc_method_handler(
                    servicer.Pause,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'Resume': grpc.unary_unary_rpc_method_handler(
                    servicer.Resume,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'SetWeather': grpc.unary_unary_rpc_method_handler(
                    servicer.SetWeather,
                    request_deserializer=morai__simulation__pb2.WeatherParam.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'GetWeather': grpc.unary_unary_rpc_method_handler(
                    servicer.GetWeather,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__simulation__pb2.WeatherParam.SerializeToString,
            ),
            'LoadWorld': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadWorld,
                    request_deserializer=morai__simulation__pb2.LoadWorldParam.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'LoadBuiltInScenario': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadBuiltInScenario,
                    request_deserializer=morai__type__pb2.StringValue.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'LoadSensorConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadSensorConfig,
                    request_deserializer=morai__simulation__pb2.SensorConfig.FromString,
                    response_serializer=morai__type__pb2.Result.SerializeToString,
            ),
            'GetCurrentMapName': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCurrentMapName,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=morai__type__pb2.StringValue.SerializeToString,
            ),
            'SetSimulatorTimeScale': grpc.unary_unary_rpc_method_handler(
                    servicer.SetSimulatorTimeScale,
                    request_deserializer=morai__type__pb2.FloatValue.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'RayCast': grpc.unary_unary_rpc_method_handler(
                    servicer.RayCast,
                    request_deserializer=morai__simulation__pb2.RaycastParam.FromString,
                    response_serializer=morai__type__pb2.FloatValue.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'morai_sim_api.MoraiSimulation', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class MoraiSimulation(object):
    """시뮬레이션 시 사용하는 서비스
    """

    @staticmethod
    def Initialize(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, '/morai_sim_api.MoraiSimulation/Initialize',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def IsSynchronousMode(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, '/morai_sim_api.MoraiSimulation/IsSynchronousMode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.BoolValue.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetSynchronousMode(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, '/morai_sim_api.MoraiSimulation/SetSynchronousMode',
            morai__type__pb2.BoolValue.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Tick(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, '/morai_sim_api.MoraiSimulation/Tick',
            morai__type__pb2.Int32Value.SerializeToString,
            morai__type__pb2.Uint64Value.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def WaitForTick(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, '/morai_sim_api.MoraiSimulation/WaitForTick',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.Int64Value.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEnviroTime(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, '/morai_sim_api.MoraiSimulation/GetEnviroTime',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.Uint32Value.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetEnviroTime(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, '/morai_sim_api.MoraiSimulation/SetEnviroTime',
            morai__type__pb2.Uint32Value.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Pause(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, '/morai_sim_api.MoraiSimulation/Pause',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Resume(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, '/morai_sim_api.MoraiSimulation/Resume',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetWeather(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, '/morai_sim_api.MoraiSimulation/SetWeather',
            morai__simulation__pb2.WeatherParam.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetWeather(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, '/morai_sim_api.MoraiSimulation/GetWeather',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__simulation__pb2.WeatherParam.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LoadWorld(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, '/morai_sim_api.MoraiSimulation/LoadWorld',
            morai__simulation__pb2.LoadWorldParam.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LoadBuiltInScenario(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, '/morai_sim_api.MoraiSimulation/LoadBuiltInScenario',
            morai__type__pb2.StringValue.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LoadSensorConfig(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, '/morai_sim_api.MoraiSimulation/LoadSensorConfig',
            morai__simulation__pb2.SensorConfig.SerializeToString,
            morai__type__pb2.Result.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCurrentMapName(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, '/morai_sim_api.MoraiSimulation/GetCurrentMapName',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            morai__type__pb2.StringValue.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetSimulatorTimeScale(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, '/morai_sim_api.MoraiSimulation/SetSimulatorTimeScale',
            morai__type__pb2.FloatValue.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RayCast(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, '/morai_sim_api.MoraiSimulation/RayCast',
            morai__simulation__pb2.RaycastParam.SerializeToString,
            morai__type__pb2.FloatValue.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
