SAGA Adaptor CPI v.1.0
task.hpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines