summaryrefslogtreecommitdiff
path: root/include/gras/detail
diff options
context:
space:
mode:
Diffstat (limited to 'include/gras/detail')
-rw-r--r--include/gras/detail/block.hpp91
-rw-r--r--include/gras/detail/callable.hpp2
2 files changed, 0 insertions, 93 deletions
diff --git a/include/gras/detail/block.hpp b/include/gras/detail/block.hpp
index 9dccb22..3f94e54 100644
--- a/include/gras/detail/block.hpp
+++ b/include/gras/detail/block.hpp
@@ -3,100 +3,9 @@
#ifndef INCLUDED_GRAS_DETAIL_BLOCK_HPP
#define INCLUDED_GRAS_DETAIL_BLOCK_HPP
-#include <typeinfo>
-
namespace gras
{
-struct GRAS_API PropertyRegistry
-{
- PropertyRegistry(void);
- virtual ~PropertyRegistry(void);
- virtual void set(const PMCC &) = 0;
- virtual PMCC get(void) = 0;
- virtual const std::type_info &type(void) const = 0;
-};
-
-template <typename ClassType, typename ValueType>
-class PropertyRegistryImpl : public PropertyRegistry
-{
-public:
- PropertyRegistryImpl(
- ClassType *my_class,
- ValueType(ClassType::*getter)(void),
- void(ClassType::*setter)(const ValueType &)
- ):
- _my_class(my_class),
- _getter(getter),
- _setter(setter)
- {}
- virtual ~PropertyRegistryImpl(void){}
-
- void set(const PMCC &value)
- {
- (_my_class->*_setter)(value.safe_as<ValueType>());
- }
-
- PMCC get(void)
- {
- return PMC_M((_my_class->*_getter)());
- }
-
- const std::type_info &type(void) const
- {
- return typeid(ValueType);
- }
-
-private:
- ClassType *_my_class;
- ValueType(ClassType::*_getter)(void);
- void(ClassType::*_setter)(const ValueType &);
-};
-
-/*!
- * The following functions implement the templated methods in Block
- */
-
-template <typename ClassType, typename ValueType>
-inline void Block::register_getter(
- const std::string &key,
- ValueType(ClassType::*get)(void)
-)
-{
- ClassType *obj = dynamic_cast<ClassType *>(this);
- void *pr = new PropertyRegistryImpl<ClassType, ValueType>(obj, get, NULL);
- this->_register_getter(key, pr);
-}
-
-template <typename ClassType, typename ValueType>
-inline void Block::register_setter(
- const std::string &key,
- void(ClassType::*set)(const ValueType &)
-)
-{
- ClassType *obj = dynamic_cast<ClassType *>(this);
- void *pr = new PropertyRegistryImpl<ClassType, ValueType>(obj, NULL, set);
- this->_register_setter(key, pr);
-}
-
-template <typename ValueType>
-inline void Block::set(const std::string &key, const ValueType &value)
-{
- this->_set_property(key, PMC_M(value));
-}
-
-template <typename ValueType>
-inline void Block::get(const std::string &key, ValueType &value)
-{
- value = this->_get_property(key).safe_as<ValueType>();
-}
-
-template <typename ValueType>
-inline ValueType Block::get(const std::string &key)
-{
- return this->_get_property(key).safe_as<ValueType>();
-}
-
template <typename ValueType>
inline void Block::post_output_msg(const size_t i, const ValueType &value)
{
diff --git a/include/gras/detail/callable.hpp b/include/gras/detail/callable.hpp
index b3f0d00..3f5252d 100644
--- a/include/gras/detail/callable.hpp
+++ b/include/gras/detail/callable.hpp
@@ -3,8 +3,6 @@
#ifndef INCLUDED_GRAS_DETAIL_CALLABLE_HPP
#define INCLUDED_GRAS_DETAIL_CALLABLE_HPP
-#include <typeinfo>
-
namespace gras
{