C++ Server-Side SDK Redis Source
Provide SDK data via Redis
redis_big_segment_store.hpp
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include <launchdarkly/server_side/integrations/big_segments/ibig_segment_store.hpp>
8 
9 #include <tl/expected.hpp>
10 
11 #include <memory>
12 #include <string>
13 
14 namespace sw::redis {
15 class Redis;
16 }
17 
18 namespace launchdarkly::server_side::integrations {
19 
37 class RedisBigSegmentStore final : public IBigSegmentStore {
38  public:
54  static tl::expected<std::unique_ptr<RedisBigSegmentStore>, std::string>
55  Create(std::string uri, std::string prefix);
56 
57  [[nodiscard]] GetMembershipResult GetMembership(
58  std::string const& context_hash) const noexcept override;
59  [[nodiscard]] GetMetadataResult GetMetadata() const noexcept override;
60 
61  ~RedisBigSegmentStore() override;
62 
63  private:
64  RedisBigSegmentStore(std::unique_ptr<sw::redis::Redis> redis,
65  std::string prefix);
66 
67  std::unique_ptr<sw::redis::Redis> redis_;
68  std::string const include_key_prefix_;
69  std::string const exclude_key_prefix_;
70  std::string const sync_time_key_;
71 };
72 
73 } // namespace launchdarkly::server_side::integrations
RedisBigSegmentStore is a Big Segments persistent store backed by Redis.
Definition: redis_big_segment_store.hpp:37
static tl::expected< std::unique_ptr< RedisBigSegmentStore >, std::string > Create(std::string uri, std::string prefix)
Creates a new RedisBigSegmentStore, or returns an error if construction failed.
Definition: redis_big_segment_store.cpp:37