5 #include <Chain/Event.h>
27 bool result =
check(ev);
45 m_postHooks.emplace_back(hook, condition);
50 virtual bool check(
Event &ev) = 0;
52 std::vector<hookType> m_preHooks{};
53 std::vector<std::pair<hookType, PostHookCondition>> m_postHooks{};
60 explicit boolMatcher(funcType match) : m_match{std::move(match)} {};
61 ~boolMatcher() =
default;
75 bool check(
Event &ev)
override {
return (*m_lhs)(ev) && (*m_rhs)(ev); };
87 bool check(
Event &ev)
override {
return (*m_lhs)(ev) || (*m_rhs)(ev); };
99 bool check(
Event &ev)
override {
return !(*m_lhs)(ev); };
bool check(Event &ev) override
std::vector< hookType > m_preHooks
notMatcher(RefCMatcher lhs)
virtual void AddPreHook(const hookType &hook)
virtual bool operator()(Event &ev)
virtual void AddPreHook(hookType &&hook)
std::function< bool(Event &)> funcType
virtual bool check(Event &ev)=0
virtual void AddPostHook(hookType &&hook, PostHookCondition condition)
andMatcher(RefCMatcher lhs, RefCMatcher rhs)
virtual void AddPostHook(const hookType &hook, PostHookCondition condition)
std::vector< std::pair< hookType, PostHookCondition > > m_postHooks
std::shared_ptr< matcher > RefCMatcher
orMatcher(RefCMatcher lhs, RefCMatcher rhs)
boolMatcher(funcType match)
std::function< void(Event &)> hookType