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 #include <saga/saga/util.hpp> 00007 #include <saga/saga/exception.hpp> 00008 #include <saga/saga/object.hpp> 00009 #include <saga/saga/task.hpp> 00010 #include <saga/saga/permissions.hpp> 00011 #include <saga/saga/context.hpp> 00012 00013 #include <saga/impl/exception.hpp> 00014 #include <saga/impl/engine/object.hpp> 00015 #include <saga/impl/engine/permissions.hpp> 00016 #include <saga/impl/engine/context_base.hpp> 00017 00018 #include <saga/saga/detail/permissions_impl.hpp> 00019 00021 namespace saga 00022 { 00023 permissions::permissions (saga::object rhs) 00024 : impl_ (rhs.get_impl_sp()) 00025 { 00026 } 00027 00028 permissions::permissions (saga::impl::object *impl) 00029 : impl_ (impl->shared_from_this()) 00030 { 00031 } 00032 00033 permissions::~permissions (void) 00034 { 00035 } 00036 00037 namespace detail 00038 { 00040 // implement the permissions functions (we need to explicitly specialize 00041 // the template because the functions are not implemented inline) 00042 template struct SAGA_EXPORT_REPEAT permissions<saga::permissions>; 00043 00044 template struct SAGA_EXPORT permissions_priv<saga::permissions, saga::task_base::Sync>; 00045 template struct SAGA_EXPORT permissions_priv<saga::permissions, saga::task_base::Async>; 00046 template struct SAGA_EXPORT permissions_priv<saga::permissions, saga::task_base::Task>; 00047 } 00048 00050 } // namespace saga 00051