00001 #ifndef SAGA_PACKAGES_SD_SERVICE_DATA_HPP 00002 #define SAGA_PACKAGES_SD_SERVICE_DATA_HPP 00003 #include <string> 00004 #include <vector> 00005 00006 #include <saga/saga/util.hpp> 00007 #include <saga/saga/base.hpp> 00008 #include <saga/saga/types.hpp> 00009 #include <saga/saga/session.hpp> 00010 #include <saga/saga/call.hpp> 00011 #include <saga/saga/detail/attribute.hpp> 00012 #include <saga/saga/packages/sd/config.hpp> 00013 00014 00015 namespace saga { 00016 namespace sd { 00017 class service_description; 00018 } 00019 } 00020 00021 namespace saga 00022 { 00023 00024 namespace sd { 00025 00026 class SAGA_SD_PACKAGE_EXPORT service_data 00027 : public saga::object, 00028 public saga::detail::attribute<service_data> 00029 { 00030 protected: 00031 friend struct saga::detail::attribute<service_data>; 00032 friend class saga::impl::service_data; 00033 friend class saga::sd::service_description; 00034 00035 explicit service_data(saga::impl::service_data *impl); 00036 00037 using saga::detail::attribute<service_data>::set_attribute; 00038 using saga::detail::attribute<service_data>::set_vector_attribute; 00039 using saga::detail::attribute<service_data>::get_vector_attribute; 00040 00041 public: 00042 00043 using saga::detail::attribute<service_data>::get_attribute; 00044 00045 service_data (void); 00046 explicit service_data (saga::object const& o); 00047 00048 ~service_data (void); 00049 00050 // default operator=() and copy ctor are ok 00051 service_data &operator= (saga::object const& o); 00052 00053 }; // service_data 00054 } // namespace sd 00055 } // namespace saga 00057 #endif