C++ Server-Side SDK
LaunchDarkly SDK
iserialized_destination.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 <string>
7 #include <utility>
8 #include <vector>
9 
10 namespace launchdarkly::server_side::data_interfaces {
11 
38  public:
39  enum class InitResult {
43  kSuccess,
44 
48  kError,
49  };
50 
51  enum class UpsertResult {
55  kSuccess,
56 
60  kError,
61 
67  };
68 
69  using Key = std::string;
70 
71  template <typename T>
72  using Keyed = std::pair<Key, T>;
73 
74  using OrderedNamepace =
75  std::vector<Keyed<integrations::SerializedItemDescriptor>>;
76 
77  using ItemCollection =
78  std::pair<integrations::ISerializedItemKind const&, OrderedNamepace>;
79 
96  [[nodiscard]] virtual InitResult Init(
97  std::vector<ItemCollection> sdk_data_set) = 0;
98 
127  [[nodiscard]] virtual UpsertResult Upsert(
129  std::string const& key,
131 
135  [[nodiscard]] virtual std::string const& Identity() const = 0;
136 
137  ISerializedDestination(ISerializedDestination const& item) = delete;
139  ISerializedDestination& operator=(ISerializedDestination const&) = delete;
140  ISerializedDestination& operator=(ISerializedDestination&&) = delete;
141  virtual ~ISerializedDestination() = default;
142 
143  protected:
144  ISerializedDestination() = default;
145 };
146 } // namespace launchdarkly::server_side::data_interfaces
This interface is used for persisting data to databases, or any other component that can store featur...
Definition: iserialized_destination.hpp:37
UpsertResult
Definition: iserialized_destination.hpp:51
virtual InitResult Init(std::vector< ItemCollection > sdk_data_set)=0
Overwrites the Destination's contents with a set of items for each collection. All previous data shou...
InitResult
Definition: iserialized_destination.hpp:39
virtual UpsertResult Upsert(integrations::ISerializedItemKind const &kind, std::string const &key, integrations::SerializedItemDescriptor item)=0
Upserts a single item (update if exist, insert if not.)
Represents the kind of a serialized item. The purpose of this interface is to allow for determining a...
Definition: iserialized_item_kind.hpp:14
Definition: serialized_item_descriptor.hpp:12