SAGA Adaptor CPI v.1.0
|
00001 // Copyright (c) 2005-2009 Hartmut Kaiser 00002 // 00003 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00004 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00005 00006 #ifndef SAGA_ADAPTOR_TASK_IMPLEMENTATION_HPP 00007 #define SAGA_ADAPTOR_TASK_IMPLEMENTATION_HPP 00008 00009 #include <saga/saga/adaptors/task_declaration.hpp> 00010 #include <saga/impl/engine/task.hpp> 00011 00013 namespace saga 00014 { 00015 namespace adaptors 00016 { 00021 template<typename Cpi, typename Base, typename RetVal> 00022 inline saga::impl::task<Cpi, Base, RetVal> * 00023 task::create_task(char const *func_name, TR1::shared_ptr<Cpi> cpi, 00024 impl::proxy* prxy, void (Base::*sync)(RetVal&), 00025 bool (Base::*prep)(RetVal&, saga::uuid)) 00026 { 00027 return new saga::impl::task<Cpi, Base, RetVal>( 00028 func_name, cpi, prxy, sync, prep); 00029 } 00030 00039 template<typename Cpi, typename Base, typename RetVal> 00040 inline saga::impl::wrapper_task<Cpi, Base, RetVal> * 00041 task::create_task(char const* func_name, TR1::shared_ptr<Cpi> cpi, 00042 impl::proxy* prxy, void (Base::*sync)(RetVal&, saga::uuid), 00043 bool (Base::*prep)(RetVal&, saga::uuid)) 00044 { 00045 return new saga::impl::wrapper_task<Cpi, Base, RetVal>( 00046 func_name, cpi, prxy, sync, prep); 00047 } 00048 00055 template<typename Cpi, typename Base, typename RetVal> 00056 task::task (char const* func_name, TR1::shared_ptr<Cpi> cpi, 00057 impl::proxy* prxy, void (Base::*sync)(RetVal&), 00058 bool (Base::*prep)(RetVal&, saga::uuid)) 00059 : base_type (create_task(func_name, cpi, prxy, sync, prep)) 00060 { 00061 } 00062 00063 template<typename Cpi, typename Base, typename RetVal> 00064 task::task (char const* func_name, TR1::shared_ptr<Cpi> cpi, 00065 void (Base::*sync)(RetVal&), 00066 bool (Base::*prep)(RetVal&, saga::uuid)) 00067 : base_type (create_task(func_name, cpi, cpi->get_proxy(), sync, prep)) 00068 { 00069 } 00070 00079 template<typename Cpi, typename Base, typename RetVal> 00080 task::task (char const* func_name, TR1::shared_ptr<Cpi> cpi, 00081 impl::proxy* prxy, void (Base::*sync)(RetVal, saga::uuid), 00082 bool (Base::*prep)(RetVal, saga::uuid)) 00083 : base_type (create_task (func_name, cpi, prxy, sync, prep)) 00084 { 00085 } 00086 00087 template<typename Cpi, typename Base, typename RetVal> 00088 task::task (char const* func_name, TR1::shared_ptr<Cpi> cpi, 00089 void (Base::*sync)(RetVal, saga::uuid), 00090 bool (Base::*prep)(RetVal, saga::uuid)) 00091 : base_type (create_task (func_name, cpi, cpi->get_proxy(), sync, prep)) 00092 { 00093 } 00094 00096 // bring in the generated constructors with 1 to N parameters. 00097 #include <saga/saga/adaptors/task_impl.hpp> 00098 00099 }} // saga::adaptors 00101 00102 #endif 00103