SAGA C++ API 1.6
attribute.cpp
Go to the documentation of this file.
00001 //  Copyright (c) 2005-2009 Hartmut Kaiser
00002 //  Copyright (c) 2005-2007 Andre Merzky (andre@merzky.net)
00003 // 
00004 //  Distributed under the Boost Software License, Version 1.0. (See accompanying 
00005 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
00006 
00007 #include <saga/saga/util.hpp>
00008 #include <saga/saga/exception.hpp>
00009 #include <saga/saga/object.hpp>
00010 #include <saga/saga/task.hpp>
00011 #include <saga/saga/attribute.hpp>
00012 #include <saga/saga/context.hpp>
00013 
00014 #include <saga/impl/exception.hpp>
00015 #include <saga/impl/engine/object.hpp>
00016 #include <saga/impl/engine/attribute.hpp> 
00017 #include <saga/impl/engine/metric.hpp>
00018 #include <saga/impl/engine/context_base.hpp>
00019 
00020 #include <saga/saga/detail/attribute_impl.hpp>
00021 
00022 namespace saga 
00023 {
00024     attribute::attribute (saga::object rhs)
00025       : impl_ (rhs.get_impl_sp())
00026     {
00027     }
00028 
00029     attribute::attribute (saga::impl::object *impl)
00030       : impl_ (impl->shared_from_this())
00031     {
00032     }
00033 
00034     attribute::attribute (void)
00035       : impl_ (new saga::impl::object (saga::object::Unknown))
00036     {
00037     }
00038 
00039     attribute::~attribute (void)
00040     {
00041     }
00042 
00043     namespace detail
00044     {
00046         //  implement the attribute functions (we need to explicitly specialize 
00047         //  the template because the functions are not implemented inline)
00048         template struct SAGA_EXPORT_REPEAT attribute<saga::attribute>;
00049 
00050         template struct SAGA_EXPORT attribute_priv<saga::attribute, task_base::Sync>;
00051         template struct SAGA_EXPORT attribute_priv<saga::attribute, task_base::Async>;
00052         template struct SAGA_EXPORT attribute_priv<saga::attribute, task_base::Task>;
00053 
00054         template struct SAGA_EXPORT attribute_sync<saga::attribute>;
00055     }
00056 
00058 } // namespace saga
00059 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines