29 lines
1.1 KiB
C++
29 lines
1.1 KiB
C++
// Copyright (2019-2023) Paul Scherrer Institute
|
|
|
|
#ifndef JUNGFRAUJOCH_JFJOCHWRITERSERVICE_H
|
|
#define JUNGFRAUJOCH_JFJOCHWRITERSERVICE_H
|
|
|
|
#include <shared_mutex>
|
|
#include "jfjoch.grpc.pb.h"
|
|
#include "StreamWriter.h"
|
|
|
|
class JFJochWriterService final : public JFJochProtoBuf::gRPC_JFJochWriter::Service {
|
|
std::shared_mutex m;
|
|
std::unique_ptr<StreamWriter> writer;
|
|
Logger &logger;
|
|
ZMQContext &zmq_context;
|
|
std::future<StreamWriterStatistics> writer_future;
|
|
public:
|
|
JFJochWriterService(ZMQContext &in_context, Logger &in_logger);
|
|
JFJochWriterService &BaseDirectory(const std::string& input);
|
|
grpc::Status Start(grpc::ServerContext *context, const JFJochProtoBuf::WriterInput *request,
|
|
JFJochProtoBuf::Empty *response) override;
|
|
grpc::Status Stop(grpc::ServerContext *context, const JFJochProtoBuf::Empty *request,
|
|
JFJochProtoBuf::WriterOutput *response) override;
|
|
grpc::Status Abort(grpc::ServerContext *context, const JFJochProtoBuf::Empty *request,
|
|
JFJochProtoBuf::Empty *response) override;
|
|
};
|
|
|
|
|
|
#endif //JUNGFRAUJOCH_JFJOCHWRITERSERVICE_H
|