2023-11-28 15:03:21 +00:00
|
|
|
#pragma once
|
|
|
|
#include <queue>
|
2023-11-28 22:01:14 +00:00
|
|
|
#include <grpcpp/grpcpp.h>
|
2023-11-28 15:03:21 +00:00
|
|
|
|
|
|
|
#include "request.hpp"
|
2023-11-28 22:01:14 +00:00
|
|
|
#include "api.hpp"
|
2023-11-28 15:03:21 +00:00
|
|
|
|
|
|
|
using namespace relay_middleware::nostr;
|
|
|
|
|
|
|
|
namespace relay_middleware::proxy
|
|
|
|
{
|
|
|
|
class RelayProxy
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
std::queue<const NostrRequest> req_queue;
|
2023-11-28 22:01:14 +00:00
|
|
|
RelayHandlerClient client;
|
2023-11-28 15:03:21 +00:00
|
|
|
|
|
|
|
public:
|
2023-11-28 22:01:14 +00:00
|
|
|
RelayProxy(const std::string &backend) : client(grpc::CreateChannel(backend, grpc::InsecureChannelCredentials()))
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2023-11-28 15:03:21 +00:00
|
|
|
auto push(const NostrRequest &&req) -> void
|
|
|
|
{
|
|
|
|
req_queue.push(std::move(req));
|
|
|
|
}
|
2023-11-28 22:01:14 +00:00
|
|
|
|
|
|
|
auto next() -> void
|
|
|
|
{
|
|
|
|
auto req = req_queue.back();
|
|
|
|
}
|
2023-11-28 15:03:21 +00:00
|
|
|
};
|
|
|
|
}
|