38class TopicReadSession
final {
42 explicit TopicReadSession(std::shared_ptr<NYdb::NTopic::IReadSession> read_session);
52 std::optional<std::size_t> max_events_count = {},
53 size_t max_size_bytes = std::numeric_limits<size_t>::max()
61 const NYdb::NTopic::TReadSessionGetEventSettings& settings
68 bool Close(std::chrono::milliseconds timeout);
77 std::shared_ptr<NYdb::NTopic::IReadSession> read_session_;
83class TopicWriteSession
final {
87 explicit TopicWriteSession(std::shared_ptr<NYdb::NTopic::IWriteSession> write_session);
93 NYdb::NTopic::TWriteSessionEvent::TEvent
GetEvent();
101 std::optional<NYdb::NTopic::TWriteSessionEvent::TEvent>
TryGetEvent();
106 void Write(NYdb::NTopic::TContinuationToken&& token, NYdb::NTopic::TWriteMessage&& message);
112 bool Close(std::chrono::milliseconds timeout);
121 std::shared_ptr<NYdb::NTopic::IWriteSession> write_session_;
127class TopicProducer
final {
131 explicit TopicProducer(std::shared_ptr<NYdb::NTopic::IProducer> producer);
138 NYdb::NTopic::TWriteResult
Write(NYdb::NTopic::TWriteMessage&& message);
144 NYdb::NTopic::TFlushResult
Flush(engine::Deadline deadline
= {});
150 NYdb::NTopic::TCloseResult
Close(std::chrono::milliseconds timeout);
159 std::shared_ptr<NYdb::NTopic::IProducer> producer_;
167class TopicClient
final {
171 TopicClient(std::shared_ptr<impl::Driver> driver, impl::TopicSettings settings);
177 void AlterTopic(
const std::string& path,
const NYdb::NTopic::TAlterTopicSettings& settings);
198 std::shared_ptr<impl::Driver> driver_;
203 NYdb::IExecutor::TPtr compression_executor_;
204 NYdb::IExecutor::TPtr handlers_executor_;
206 std::optional<NYdb::NTopic::TTopicClient> topic_client_;