6#include <ydb-cpp-sdk/client/coordination/coordination.h>
16class CoordinationSession
final {
20 explicit CoordinationSession(NYdb::NCoordination::TSession&& session);
23 std::uint64_t GetSessionId();
25 NYdb::NCoordination::ESessionState GetSessionState();
27 NYdb::NCoordination::EConnectionState GetConnectionState();
38 std::string_view name,
39 const NYdb::NCoordination::TAcquireSemaphoreSettings& settings);
41 bool ReleaseSemaphore(std::string_view name);
49 void CreateSemaphore(std::string_view name, std::uint64_t limit);
51 void UpdateSemaphore(std::string_view name, std::string_view data);
53 void DeleteSemaphore(std::string_view name);
56 NYdb::NCoordination::TSession session_;
59class CoordinationClient
final {
63 explicit CoordinationClient(std::shared_ptr<impl::Driver> driver);
70 std::string_view path,
71 const NYdb::NCoordination::TSessionSettings& settings);
73 void CreateNode(std::string_view path,
74 const NYdb::NCoordination::TCreateNodeSettings& settings);
76 void AlterNode(std::string_view path,
77 const NYdb::NCoordination::TAlterNodeSettings& settings);
79 void DropNode(std::string_view path);
81 NYdb::NCoordination::TNodeDescription DescribeNode(std::string_view path);
83 NYdb::NCoordination::TClient& GetNativeCoordinationClient();
86 std::shared_ptr<impl::Driver> driver_;
87 NYdb::NCoordination::TClient client_;