summaryrefslogtreecommitdiffstats
path: root/actions.hpp
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2016-10-19 21:59:47 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2016-11-08 15:01:04 -0500
commitc0eae1172d3a2c832fc72f9d7bda81d4b723bee9 (patch)
treedbcb6a2522546ae61355cdc135770acf0c6fa2d4 /actions.hpp
parentbf5aa9cbf5de0642e26dd0c90cf73be1cc7182a5 (diff)
downloadphosphor-inventory-manager-c0eae1172d3a2c832fc72f9d7bda81d4b723bee9.tar.gz
phosphor-inventory-manager-c0eae1172d3a2c832fc72f9d7bda81d4b723bee9.zip
filters/actions: Pass manager to filters/actions
Change-Id: Iaf70fdd5c8cdb64237bbd1bb5f73add645fededb Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'actions.hpp')
-rw-r--r--actions.hpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/actions.hpp b/actions.hpp
index 57a2f6f..2837e7a 100644
--- a/actions.hpp
+++ b/actions.hpp
@@ -9,6 +9,8 @@ namespace inventory
{
namespace manager
{
+class Manager;
+
namespace actions
{
namespace details
@@ -31,10 +33,10 @@ struct Base
Base(Base&&) = default;
Base& operator=(Base&&) = default;
- virtual void operator()() const = 0;
- virtual void operator()()
+ virtual void operator()(Manager &mgr) const = 0;
+ virtual void operator()(Manager &mgr)
{
- const_cast<const Base &>(*this)();
+ const_cast<const Base &>(*this)(mgr);
}
};
@@ -58,14 +60,14 @@ struct Holder final : public Base
Holder& operator=(Holder&&) = default;
explicit Holder(T &&func) : _func(std::forward<T>(func)) {}
- virtual void operator()() const override
+ virtual void operator()(Manager &mgr) const override
{
- _func();
+ _func(mgr);
}
- virtual void operator()() override
+ virtual void operator()(Manager &mgr) override
{
- _func();
+ _func(mgr);
}
private:
@@ -93,13 +95,13 @@ struct Wrapper
Wrapper(Wrapper&&) = default;
Wrapper& operator=(Wrapper&&) = default;
- void operator()()
+ void operator()(Manager &mgr)
{
- (*_ptr)();
+ (*_ptr)(mgr);
}
- void operator()() const
+ void operator()(Manager &mgr) const
{
- (*_ptr)();
+ (*_ptr)(mgr);
}
private:
@@ -109,7 +111,7 @@ struct Wrapper
} // namespace details
/** @brief The default action. */
-inline void noop() noexcept { }
+inline void noop(Manager &mgr) noexcept { }
} // namespace actions
} // namespace manager
OpenPOWER on IntegriCloud