| // Copyright 2019 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef GARNET_LIB_SYSTEM_MONITOR_DOCKYARD_DOCKYARD_SERVICE_IMPL_H_ | |
| #define GARNET_LIB_SYSTEM_MONITOR_DOCKYARD_DOCKYARD_SERVICE_IMPL_H_ | |
| #include "src/developer/system_monitor/lib/proto/dockyard.grpc.pb.h" | |
| #include <grpc++/grpc++.h> | |
| namespace dockyard { | |
| class Dockyard; | |
| // Logic and data behind the server's behavior. | |
| class DockyardServiceImpl final : public dockyard_proto::Dockyard::Service { | |
| public: | |
| void SetDockyard(Dockyard* dockyard) { dockyard_ = dockyard; } | |
| private: | |
| Dockyard* dockyard_; | |
| grpc::Status Init(grpc::ServerContext* context, | |
| const dockyard_proto::InitRequest* request, | |
| dockyard_proto::InitReply* reply) override; | |
| grpc::Status SendInspectJson( | |
| grpc::ServerContext* context, | |
| grpc::ServerReaderWriter<dockyard_proto::EmptyMessage, | |
| dockyard_proto::InspectJson>* stream) override; | |
| // This is the handler for the client sending a `SendSample` message. A better | |
| // name would be `ReceiveSample` but then it wouldn't match the message | |
| // name. | |
| grpc::Status SendSample( | |
| grpc::ServerContext* context, | |
| grpc::ServerReaderWriter<dockyard_proto::EmptyMessage, | |
| dockyard_proto::RawSample>* stream) override; | |
| // Handler for the Harvester calling `SendSamples()`. | |
| grpc::Status SendSamples( | |
| grpc::ServerContext* context, | |
| grpc::ServerReaderWriter<dockyard_proto::EmptyMessage, | |
| dockyard_proto::RawSamples>* stream) override; | |
| grpc::Status GetDockyardIdsForPaths( | |
| grpc::ServerContext* context, | |
| const dockyard_proto::DockyardPaths* request, | |
| dockyard_proto::DockyardIds* reply) override; | |
| }; | |
| } // namespace dockyard | |
| #endif // GARNET_LIB_SYSTEM_MONITOR_DOCKYARD_DOCKYARD_SERVICE_IMPL_H_ |