SAGA C++ API 1.6
entity_data_set.cpp
Go to the documentation of this file.
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 #include <memory>
00006 #include <iostream>
00007 #include <algorithm>
00008 #include <vector>
00009 #include <sstream>
00010 
00011 #include <saga/saga/adaptors/task.hpp>
00012 #include <saga/saga/isn.hpp>
00013 #include <saga/impl/isn.hpp>
00014 #include <saga/saga/detail/call.hpp>
00015 #include <saga/saga/exception.hpp>
00016 
00017 namespace saga { namespace isn {
00018 /*
00019  * entity_data_set
00020  */
00021 entity_data_set::entity_data_set(const std::string& model,
00022                                  const std::string& entityType,
00023                                  const std::string& filter,
00024                                  session const& sess,
00025                                  const std::string& url)
00026    : object(new saga::impl::entity_data_set(model,
00027                                             entityType,
00028                                             filter,
00029                                             sess,
00030                                             url))
00031 {
00032 }
00033 
00034 entity_data_set::entity_data_set(const std::string& model,
00035                                  const std::string& entityType,
00036                                  const std::string& filter)
00037    : object(new saga::impl::entity_data_set(model,
00038                                             entityType,
00039                                             filter,
00040                                             saga::detail::get_the_session(),
00041                                             std::string()))
00042 {
00043 }
00044 
00045 //Copy constructor
00046 entity_data_set::entity_data_set(saga::impl::entity_data_set* impl)
00047    : object(impl)
00048 {
00049 }
00050 
00051 entity_data_set::entity_data_set(saga::object const& o)
00052    : saga::object(o)
00053 {
00054    if ( this->get_type() != saga::object::ServiceDescription )
00055    {
00056       SAGA_THROW("Bad type conversion.", saga::BadParameter);
00057    }
00058 }
00059 
00060 //Return a copy of the entities in this entity_data_set
00061 std::vector<saga::isn::entity_data> entity_data_set::get_data() const
00062 {
00063    return get_impl()->get_data();
00064 }
00065 
00066 saga::impl::entity_data_set* entity_data_set::get_impl() const
00067 { 
00068    typedef saga::object base_type;
00069    return
00070       static_cast<saga::impl::entity_data_set*>(this->base_type::get_impl()); 
00071 }
00072 
00073 saga::isn::entity_data_set
00074    entity_data_set::get_related_entities(const std::string& relatedName,
00075                                          const std::string& filter) const
00076 {
00077    return get_impl()->get_related_entities(relatedName,
00078                                            filter);
00079 }
00080 
00081 std::vector<std::string>
00082    entity_data_set::list_related_entity_names() const
00083 {
00084    return get_impl()->list_related_entity_names();
00085 }
00086 
00087 std::string entity_data_set::get_information_system_url() const
00088 {
00089    return get_impl()->get_information_system_url();
00090 }
00091 
00092 std::size_t entity_data_set::get_entity_count() const
00093 {
00094    return get_impl()->get_entity_count();
00095 }
00096 
00097 } //namespace isn
00098 } //namespace saga
00099 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines