C++ Server-Side SDK
LaunchDarkly SDK
hook_wrapper.hpp
Go to the documentation of this file.
1 
15 #pragma once
16 
18 #include <launchdarkly/server_side/hooks/hook.hpp>
19 
20 #include <memory>
21 #include <string>
22 
23 namespace launchdarkly::server_side::bindings {
24 
31 class CHookWrapper final : public hooks::Hook {
32  public:
41  explicit CHookWrapper(struct LDServerSDKHook const& c_hook);
42 
46  [[nodiscard]] hooks::HookMetadata const& Metadata() const override;
47 
52  hooks::EvaluationSeriesContext const& series_context,
53  hooks::EvaluationSeriesData data) override;
54 
59  hooks::EvaluationSeriesContext const& series_context,
61  EvaluationDetail<Value> const& detail) override;
62 
66  void AfterTrack(hooks::TrackSeriesContext const& series_context) override;
67 
68  private:
69  hooks::HookMetadata metadata_;
70  LDServerSDKHook_BeforeEvaluation before_evaluation_;
71  LDServerSDKHook_AfterEvaluation after_evaluation_;
72  LDServerSDKHook_AfterTrack after_track_;
73  void* user_data_;
74 };
75 
76 } // namespace launchdarkly::server_side::bindings
Definition: evaluation_detail.hpp:18
Wrapper that adapts C hook callbacks to C++ Hook interface.
Definition: hook_wrapper.hpp:31
hooks::EvaluationSeriesData AfterEvaluation(hooks::EvaluationSeriesContext const &series_context, hooks::EvaluationSeriesData data, EvaluationDetail< Value > const &detail) override
Forward afterEvaluation to C callback if set.
Definition: hook_wrapper.cpp:85
CHookWrapper(struct LDServerSDKHook const &c_hook)
Construct a hook wrapper from C hook struct.
Definition: hook_wrapper.cpp:29
hooks::HookMetadata const & Metadata() const override
Get hook metadata.
Definition: hook_wrapper.cpp:38
void AfterTrack(hooks::TrackSeriesContext const &series_context) override
Forward afterTrack to C callback if set.
Definition: hook_wrapper.cpp:131
hooks::EvaluationSeriesData BeforeEvaluation(hooks::EvaluationSeriesContext const &series_context, hooks::EvaluationSeriesData data) override
Forward beforeEvaluation to C callback if set.
Definition: hook_wrapper.cpp:42
C bindings for LaunchDarkly SDK hooks.
LDServerSDKEvaluationSeriesData(* LDServerSDKHook_BeforeEvaluation)(LDServerSDKEvaluationSeriesContext series_context, LDServerSDKEvaluationSeriesData data, void *user_data)
Callback invoked before a flag evaluation.
Definition: hook.h:55
void(* LDServerSDKHook_AfterTrack)(LDServerSDKTrackSeriesContext series_context, void *user_data)
Callback invoked after a track event.
Definition: hook.h:108
LDServerSDKEvaluationSeriesData(* LDServerSDKHook_AfterEvaluation)(LDServerSDKEvaluationSeriesContext series_context, LDServerSDKEvaluationSeriesData data, LDEvalDetail detail, void *user_data)
Callback invoked after a flag evaluation.
Definition: hook.h:85
Hook structure containing callback function pointers.
Definition: hook.h:139