C++ Server-Side SDK
LaunchDarkly SDK
iserialized_data_reader.hpp
1 #pragma once
2 
3 #include <launchdarkly/server_side/integrations/data_reader/iserialized_item_kind.hpp>
4 #include <launchdarkly/server_side/integrations/data_reader/serialized_item_descriptor.hpp>
5 
6 #include <tl/expected.hpp>
7 
8 #include <optional>
9 #include <string>
10 #include <unordered_map>
11 
12 namespace launchdarkly::server_side::integrations {
13 
32  public:
33  virtual ~ISerializedDataReader() = default;
34  ISerializedDataReader(ISerializedDataReader const& item) = delete;
36  ISerializedDataReader& operator=(ISerializedDataReader const&) = delete;
37  ISerializedDataReader& operator=(ISerializedDataReader&&) = delete;
38 
39  struct Error {
40  std::string message;
41  };
42 
43  using GetResult =
44  tl::expected<std::optional<SerializedItemDescriptor>, Error>;
45 
46  using AllResult =
47  tl::expected<std::unordered_map<std::string, SerializedItemDescriptor>,
48  Error>;
49 
59  [[nodiscard]] virtual GetResult Get(ISerializedItemKind const& kind,
60  std::string const& itemKey) const = 0;
61 
71  [[nodiscard]] virtual AllResult All(
72  ISerializedItemKind const& kind) const = 0;
73 
77  [[nodiscard]] virtual std::string const& Identity() const = 0;
78 
86  [[nodiscard]] virtual bool Initialized() const = 0;
87 
88  protected:
89  ISerializedDataReader() = default;
90 };
91 } // namespace launchdarkly::server_side::integrations
Definition: iserialized_data_reader.hpp:31
virtual AllResult All(ISerializedItemKind const &kind) const =0
virtual GetResult Get(ISerializedItemKind const &kind, std::string const &itemKey) const =0
Represents the kind of a serialized item. The purpose of this interface is to allow for determining a...
Definition: iserialized_item_kind.hpp:14