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_ISN_ENTITY_DATA_HPP 00006 #define SAGA_PACKAGES_ISN_ENTITY_DATA_HPP 00007 #include <string> 00008 #include <vector> 00009 #include <iostream> 00010 00011 #include <saga/saga/util.hpp> 00012 #include <saga/saga/base.hpp> 00013 #include <saga/saga/types.hpp> 00014 #include <saga/saga/session.hpp> 00015 #include <saga/saga/call.hpp> 00016 #include <saga/saga/detail/attribute.hpp> 00017 #include <saga/saga/packages/isn/config.hpp> 00018 00019 namespace saga { namespace impl { class entity_data; } } 00020 00021 namespace saga 00022 { 00034 namespace isn { 00035 00045 class SAGA_ISN_PACKAGE_EXPORT entity_data 00046 : public saga::object, 00047 public saga::detail::attribute<entity_data> 00048 { 00049 protected: 00050 friend struct saga::detail::attribute<entity_data>; 00051 friend class saga::impl::entity_data; 00052 00053 explicit entity_data(saga::impl::entity_data* impl); 00054 00055 using saga::detail::attribute<entity_data>::remove_attribute; 00056 00057 public: 00058 entity_data(void); 00059 explicit entity_data(saga::object const& o); 00060 00061 using saga::detail::attribute<entity_data>::get_attribute; 00062 using saga::detail::attribute<entity_data>::get_vector_attribute; 00063 using saga::detail::attribute<entity_data>::set_attribute; 00064 using saga::detail::attribute<entity_data>::set_vector_attribute; 00065 00066 ~entity_data (void); 00067 00068 // default operator=() and copy ctor are ok 00069 entity_data &operator= (saga::object const& o); 00070 00071 }; // entity_data 00072 } // namespace isn 00073 } // namespace saga 00075 #endif