C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
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
12namespace 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
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