C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
event_factory.hpp
1#pragma once
2
3#include <launchdarkly/context.hpp>
4#include <launchdarkly/data/evaluation_detail.hpp>
5#include <launchdarkly/data_model/flag.hpp>
6#include <launchdarkly/events/data/events.hpp>
7
8#include <optional>
9#include <string>
10
11namespace launchdarkly::server_side {
12
14 enum class ReasonPolicy {
15 Default = 0,
16 Require = 1,
17 };
18
19 public:
20 [[nodiscard]] static EventFactory WithReasons();
21 [[nodiscard]] static EventFactory WithoutReasons();
22
23 [[nodiscard]] events::InputEvent UnknownFlag(std::string const& key,
24 Context const& ctx,
26 Value default_val) const;
27
28 [[nodiscard]] events::InputEvent Eval(
29 std::string const& key,
30 Context const& ctx,
31 std::optional<data_model::Flag> const& flag,
33 Value default_value,
34 std::optional<std::string> prereq_of) const;
35
36 [[nodiscard]] events::InputEvent Identify(Context ctx) const;
37
38 [[nodiscard]] events::InputEvent Custom(
39 Context const& ctx,
40 std::string event_name,
41 std::optional<Value> data,
42 std::optional<double> metric_value) const;
43
44 private:
45 EventFactory(ReasonPolicy reason_policy);
46 events::InputEvent FeatureRequest(
47 std::string const& key,
48 Context const& ctx,
49 std::optional<data_model::Flag> const& flag,
51 Value default_val,
52 std::optional<std::string> prereq_of) const;
53
54 ReasonPolicy const reason_policy_;
55 std::function<events::Date()> now_;
56};
57} // namespace launchdarkly::server_side
Definition context.hpp:29
Definition evaluation_detail.hpp:18
Definition value.hpp:42
Definition event_factory.hpp:13