00001
00002
00003
00004
00005
00006 #ifndef SAGA_SAGA_DETAIL_STEERABLE_IMPL_HPP
00007 #define SAGA_SAGA_DETAIL_STEERABLE_IMPL_HPP
00008
00009
00010 #include <vector>
00011 #include <string>
00012
00013 #include <saga/saga/metric.hpp>
00014
00015
00016 #include <saga/saga/detail/steerable.hpp>
00017 #include <saga/impl/engine/monitorable.hpp>
00018
00019
00020 #if defined(BOOST_MSVC)
00021 #pragma warning(push)
00022 #pragma warning(disable : 4251 4231 4660)
00023 #endif
00024
00026 namespace saga { namespace detail
00027 {
00028
00029
00030
00031 template <typename Derived>
00032 inline bool
00033 steerable<Derived>::add_metric (saga::metric m)
00034 {
00035 return derived().get_impl()->get_steerable()->add_metric(m);
00036 }
00037
00038 template <typename Derived>
00039 inline void
00040 steerable<Derived>::remove_metric (std::string name)
00041 {
00042 derived().get_impl()->get_steerable()->remove_metric(name);
00043 }
00044
00045 template <typename Derived>
00046 inline void
00047 steerable<Derived>::fire_metric(std::string name)
00048 {
00049 derived().get_impl()->get_steerable()->fire_metric(name);
00050 }
00051
00053 }}
00054
00055 #endif // SAGA_SAGA_DETAIL_STEERABLE_IMPL_HPP
00056