diff options
Diffstat (limited to 'include/gras/block.hpp')
-rw-r--r-- | include/gras/block.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/gras/block.hpp b/include/gras/block.hpp index f2f1b2b..ba9a64a 100644 --- a/include/gras/block.hpp +++ b/include/gras/block.hpp @@ -166,6 +166,14 @@ struct GRAS_API Block : Element * Provides polymorphic, thread-safe access to block properties. ******************************************************************/ + template <typename ClassType, typename ReturnType> void register_call(const std::string &key, ReturnType(ClassType::*fcn)(void)); + template <typename ClassType, typename ReturnType, typename Arg0> void register_call(const std::string &key, ReturnType(ClassType::*fcn)(const Arg0 &)); + template <typename ClassType, typename ReturnType, typename Arg0, typename Arg1> void register_call(const std::string &key, ReturnType(ClassType::*fcn)(const Arg0 &, const Arg1 &)); + + template <typename ReturnType> ReturnType call(const std::string &key); + template <typename ReturnType, typename Arg0> ReturnType call(const std::string &key, const Arg0 &); + template <typename ReturnType, typename Arg0, typename Arg1> ReturnType call(const std::string &key, const Arg0 &, const Arg1 &); + /*! * Register property getter method into the property interface. * Call register_getter() from the contructor of the block. @@ -430,6 +438,11 @@ struct GRAS_API Block : Element /******************************************************************* * private implementation guts for overloads and template support ******************************************************************/ + + void _register_function(const std::string &, void *); + virtual PMCC _handle_function_access(const std::string &, const std::vector<PMCC> &); + + virtual PMCC _handle_prop_access(const std::string &, const PMCC &, const bool); void _register_getter(const std::string &, void *); void _register_setter(const std::string &, void *); |