//
// Created by zx on 23-7-15.
//

#ifndef NAVIGATION_NAV_SERVER_H
#define NAVIGATION_NAV_SERVER_H

#include "MPC/navigation_main.h"

class NavServer : public NavMessage::NavExcutor::Service {
public:
    NavServer(Navigation *navigator) {
        navigator_ = navigator;
    }

    virtual ~NavServer() {}

private:
    virtual ::grpc::Status Start(::grpc::ServerContext *context,
                                 const ::NavMessage::NavCmd *request, ::NavMessage::NavResponse *response);

    virtual ::grpc::Status Cancel(::grpc::ServerContext *context,
                                  const ::NavMessage::NavCmd *request, ::NavMessage::NavResponse *response);

    virtual ::grpc::Status ManualOperation(::grpc::ServerContext *context,
                                           const ::NavMessage::ManualCmd *request, ::NavMessage::NavResponse *response);

protected:
    Navigation *navigator_ = nullptr;


};

#endif //NAVIGATION_NAV_SERVER_H
