C++ Server-Side SDK
LaunchDarkly SDK
ibig_segment_store.hpp
1 #pragma once
2 
3 #include <launchdarkly/server_side/integrations/big_segments/big_segment_store_types.hpp>
4 
5 #include <tl/expected.hpp>
6 
7 #include <optional>
8 #include <string>
9 
10 namespace launchdarkly::server_side::integrations {
11 
34  public:
35  virtual ~IBigSegmentStore() = default;
36  IBigSegmentStore(IBigSegmentStore const&) = delete;
38  IBigSegmentStore& operator=(IBigSegmentStore const&) = delete;
39  IBigSegmentStore& operator=(IBigSegmentStore&&) = delete;
40 
41  using GetMembershipResult = tl::expected<Membership, std::string>;
42  using GetMetadataResult =
43  tl::expected<std::optional<StoreMetadata>, std::string>;
44 
56  [[nodiscard]] virtual GetMembershipResult GetMembership(
57  std::string const& context_hash) const noexcept = 0;
58 
66  [[nodiscard]] virtual GetMetadataResult GetMetadata() const noexcept = 0;
67 
68  protected:
69  IBigSegmentStore() = default;
70 };
71 
72 } // namespace launchdarkly::server_side::integrations
Interface for a Big Segments persistent store.
Definition: ibig_segment_store.hpp:33
virtual GetMetadataResult GetMetadata() const noexcept=0
Returns store-level metadata used by the SDK to detect staleness.
virtual GetMembershipResult GetMembership(std::string const &context_hash) const noexcept=0
Looks up the Big Segments membership for a single context.