SAGA Adaptor CPI v.1.0
|
00001 // Copyright (c) 2009 STFC 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 #ifndef SAGA_PACKAGES_SD_SERVICE_DATA_HPP 00006 #define SAGA_PACKAGES_SD_SERVICE_DATA_HPP 00007 #include <string> 00008 #include <vector> 00009 00010 #include <saga/saga/util.hpp> 00011 #include <saga/saga/base.hpp> 00012 #include <saga/saga/types.hpp> 00013 #include <saga/saga/session.hpp> 00014 #include <saga/saga/call.hpp> 00015 #include <saga/saga/detail/attribute.hpp> 00016 #include <saga/saga/packages/sd/config.hpp> 00017 00018 00019 namespace saga { 00020 namespace sd { 00021 class service_description; 00022 } 00023 } 00024 00025 namespace saga 00026 { 00027 00028 namespace sd { 00029 00040 class SAGA_SD_PACKAGE_EXPORT service_data 00041 : public saga::object, 00042 public saga::detail::attribute<service_data> 00043 { 00044 protected: 00045 friend struct saga::detail::attribute<service_data>; 00046 friend class saga::impl::service_data; 00047 friend class saga::impl::service_description; 00048 00049 explicit service_data(saga::impl::service_data *impl); 00050 00051 using saga::detail::attribute<service_data>::set_attribute; 00052 using saga::detail::attribute<service_data>::set_vector_attribute; 00053 using saga::detail::attribute<service_data>::remove_attribute; 00054 00055 public: 00056 service_data (void); 00057 explicit service_data (saga::object const& o); 00058 00059 using saga::detail::attribute<service_data>::get_attribute; 00060 using saga::detail::attribute<service_data>::get_vector_attribute; 00061 00062 ~service_data (void); 00063 00064 // default operator=() and copy ctor are ok 00065 service_data &operator= (saga::object const& o); 00066 00067 }; // service_data 00068 } // namespace sd 00069 } // namespace saga 00071 #endif