aboutsummaryrefslogtreecommitdiff
path: root/wmediumd_server/wmediumd_server.cc
diff options
context:
space:
mode:
Diffstat (limited to 'wmediumd_server/wmediumd_server.cc')
-rw-r--r--wmediumd_server/wmediumd_server.cc80
1 files changed, 41 insertions, 39 deletions
diff --git a/wmediumd_server/wmediumd_server.cc b/wmediumd_server/wmediumd_server.cc
index 09b3283..229d505 100644
--- a/wmediumd_server/wmediumd_server.cc
+++ b/wmediumd_server/wmediumd_server.cc
@@ -16,23 +16,23 @@
*
*/
-#include <algorithm>
-#include <array>
-#include <iostream>
-#include <memory>
-#include <string>
-#include <unistd.h>
-
#include <android-base/strings.h>
#include <gflags/gflags.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <sys/msg.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <array>
+#include <iostream>
+#include <memory>
+#include <string>
+#include "wmediumd.grpc.pb.h"
#include "wmediumd/api.h"
#include "wmediumd/grpc.h"
-#include "wmediumd.grpc.pb.h"
using google::protobuf::Empty;
using grpc::Server;
@@ -89,38 +89,40 @@ static std::array<uint8_t, 6> ParseMacAddress(const std::string& mac_address) {
}
class WmediumdServiceImpl final : public WmediumdService::Service {
- public:
- WmediumdServiceImpl(int event_fd, int msq_id) : event_fd_(event_fd), msq_id_(msq_id) {}
-
- Status SetPosition(ServerContext* context, const SetPositionRequest* request,
- Empty* reply) override {
- // Validate parameters
- if (!IsValidMacAddr(request->mac_address())) {
- return Status(StatusCode::INVALID_ARGUMENT, "Got invalid mac address");
- }
- auto mac = ParseMacAddress(request->mac_address());
-
- // Construct request data
- struct wmediumd_set_position data;
- memcpy(data.mac, &mac, sizeof(mac));
- data.x = request->x_pos();
- data.y = request->y_pos();
-
- // Fill data in the message queue
- struct wmediumd_grpc_message msg;
- msg.type = GRPC_REQUEST;
- memcpy(msg.data, &data, sizeof(data));
- msgsnd(msq_id_, &msg, sizeof(data), 0);
-
- // Throw an event to wmediumd
- uint64_t value = REQUEST_SET_POSITION;
- write(event_fd_, &value, sizeof(uint64_t));
-
- return Status::OK;
+ public:
+ WmediumdServiceImpl(int event_fd, int msq_id)
+ : event_fd_(event_fd), msq_id_(msq_id) {}
+
+ Status SetPosition(ServerContext* context, const SetPositionRequest* request,
+ Empty* reply) override {
+ // Validate parameters
+ if (!IsValidMacAddr(request->mac_address())) {
+ return Status(StatusCode::INVALID_ARGUMENT, "Got invalid mac address");
}
- private:
- int event_fd_;
- int msq_id_;
+ auto mac = ParseMacAddress(request->mac_address());
+
+ // Construct request data
+ struct wmediumd_set_position data;
+ memcpy(data.mac, &mac, sizeof(mac));
+ data.x = request->x_pos();
+ data.y = request->y_pos();
+
+ // Fill data in the message queue
+ struct wmediumd_grpc_message msg;
+ msg.type = GRPC_REQUEST;
+ memcpy(msg.data, &data, sizeof(data));
+ msgsnd(msq_id_, &msg, sizeof(data), 0);
+
+ // Throw an event to wmediumd
+ uint64_t value = REQUEST_SET_POSITION;
+ write(event_fd_, &value, sizeof(uint64_t));
+
+ return Status::OK;
+ }
+
+ private:
+ int event_fd_;
+ int msq_id_;
};
void RunWmediumdServer(std::string grpc_uds_path, int event_fd, int msq_id) {