C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
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
10namespace launchdarkly::server_side::data_interfaces {
11
38 public:
39 enum class InitResult {
44
48 kError,
49 };
50
51 enum class UpsertResult {
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
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
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...
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