SmartSpectra C++ SDK
Measure human vitals from video with SmartSpectra C++ SDK.
Loading...
Searching...
No Matches
queued_server_write_reactor.hpp
1
2// queued_server_write_reactor.hpp
3// Created by Cascade AI / GPT4.1, 2025
4// Copyright (C) 2025 Presage Security, Inc.
5//
6// SPDX-License-Identifier: LGPL-3.0-or-later
8#pragma once
9
10#include <mutex>
11#include <queue>
12#include <grpc/grpc.h>
13#include <grpcpp/grpcpp.h>
14#include "reactor_with_wait_until_done.hpp"
15
16namespace presage::smartspectra::grpc_bindings {
17
18template <typename TMessage>
19class QueuedServerWriteReactor : public ReactorWithWaitUntilDone<grpc::ServerWriteReactor<TMessage>> {
20public:
22 QueuedServerWriteReactor();
23 virtual ~QueuedServerWriteReactor();
24protected:
25 void EnqueueWrite(const TMessage& message);
26 void OnWriteDone(bool ok);
27private:
28 std::mutex write_mutex_;
29 std::queue<std::shared_ptr<TMessage>> pending_writes;
30 bool write_in_progress = false;
31 void ProcessWriteQueue();
32};
33
34} // namespace presage::smartspectra::grpc_bindings
Definition reactor_with_wait_until_done.hpp:32