Skip to content

Commit

Permalink
backend: update action proto file
Browse files Browse the repository at this point in the history
* remove 'using namespace' from header
* create implementation file for actionrpc_impl
* update action proto file and change actionrpc_impl accordingly

Fixes #238.
  • Loading branch information
JonasVautherin committed Mar 2, 2018
1 parent 4b3ba51 commit 648c8f8
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 33 deletions.
2 changes: 1 addition & 1 deletion grpc/server/proto
Submodule proto updated from cfd81b to 2af63b
1 change: 1 addition & 0 deletions grpc/server/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ set(BACKEND_SOURCES
backend_api.h
backend_api.cpp
backend.cpp
${PLUGINS_DIR}/action/actionrpc_impl.cpp
${GRPC_COMPILED_SOURCES}
${PB_COMPILED_SOURCES}
)
Expand Down
48 changes: 48 additions & 0 deletions grpc/server/src/plugins/action/actionrpc_impl.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#include "actionrpc_impl.h"

namespace rpc_action = dronecore::rpc::action;

grpc::Status ActionServiceImpl::Arm(grpc::ServerContext *context,
const rpc_action::ArmRequest *request,
rpc_action::ArmResponse *response)
{
const auto action_result = action.arm();

auto *rpc_action_result = new rpc_action::ActionResult();
rpc_action_result->set_result(static_cast<rpc_action::ActionResult::Result>(action_result));
rpc_action_result->set_result_str(dronecore::Action::result_str(action_result));

response->set_allocated_action_result(rpc_action_result);

return grpc::Status::OK;
}

grpc::Status ActionServiceImpl::Takeoff(grpc::ServerContext *context,
const rpc_action::TakeoffRequest *request,
rpc_action::TakeoffResponse *response)
{
const auto action_result = action.takeoff();

auto *rpc_action_result = new rpc_action::ActionResult();
rpc_action_result->set_result(static_cast<rpc_action::ActionResult::Result>(action_result));
rpc_action_result->set_result_str(dronecore::Action::result_str(action_result));

response->set_allocated_action_result(rpc_action_result);

return grpc::Status::OK;
}

grpc::Status ActionServiceImpl::Land(grpc::ServerContext *context,
const rpc_action::LandRequest *request,
rpc_action::LandResponse *response)
{
const auto action_result = action.land();

auto *rpc_action_result = new rpc_action::ActionResult();
rpc_action_result->set_result(static_cast<rpc_action::ActionResult::Result>(action_result));
rpc_action_result->set_result_str(dronecore::Action::result_str(action_result));

response->set_allocated_action_result(rpc_action_result);

return grpc::Status::OK;
}
44 changes: 12 additions & 32 deletions grpc/server/src/plugins/action/actionrpc_impl.h
Original file line number Diff line number Diff line change
@@ -1,44 +1,24 @@
#include "action.h"
#include "action/action.grpc.pb.h"

using grpc::Status;
using grpc::ServerContext;

using namespace dronecore;

class ActionServiceImpl final : public rpc::action::ActionService::Service
class ActionServiceImpl final : public dronecore::rpc::action::ActionService::Service
{
public:
ActionServiceImpl(const Action &action)
ActionServiceImpl(const dronecore::Action &action)
: action(action) {}

Status Arm(ServerContext *context, const rpc::action::ArmRequest *request,
rpc::action::ActionResult *response) override
{
const Action::Result action_result = action.arm();
response->set_result(static_cast<rpc::action::ActionResult::Result>(action_result));
response->set_result_str(Action::result_str(action_result));
return Status::OK;
}
grpc::Status Arm(grpc::ServerContext *context,
const dronecore::rpc::action::ArmRequest *request,
dronecore::rpc::action::ArmResponse *response) override;

Status TakeOff(ServerContext *context, const rpc::action::TakeOffRequest *request,
rpc::action::ActionResult *response) override
{
const Action::Result action_result = action.takeoff();
response->set_result(static_cast<rpc::action::ActionResult::Result>(action_result));
response->set_result_str(Action::result_str(action_result));
return Status::OK;
}
grpc::Status Takeoff(grpc::ServerContext *context,
const dronecore::rpc::action::TakeoffRequest *request,
dronecore::rpc::action::TakeoffResponse *response) override;

Status Land(ServerContext *context, const rpc::action::LandRequest *request,
rpc::action::ActionResult *response) override
{
const Action::Result action_result = action.land();
response->set_result(static_cast<rpc::action::ActionResult::Result>(action_result));
response->set_result_str(Action::result_str(action_result));
return Status::OK;
}
grpc::Status Land(grpc::ServerContext *context,
const dronecore::rpc::action::LandRequest *request,
dronecore::rpc::action::LandResponse *response) override;

private:
const Action &action;
const dronecore::Action &action;
};

0 comments on commit 648c8f8

Please sign in to comment.