00001 #ifndef SAGA_PACKAGES_SD_DISCOVERER_HPP
00002
00003 #define SAGA_PACKAGES_SD_DISCOVERER_HPP
00004
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
00012 #include <saga/saga/packages/sd/config.hpp>
00013 #include <saga/saga/packages/sd/service_description.hpp>
00014
00016 namespace saga
00017 {
00018 namespace sd {
00019
00021
00022 class SAGA_SD_PACKAGE_EXPORT discoverer
00023 : public saga::object
00024 {
00025
00026 public:
00027
00028 private:
00029 SAGA_CALL_PRIV_3 (list_services, std::string, std::string, std::string);
00030
00031 protected:
00032 TR1::shared_ptr <saga::impl::discoverer> get_impl (void) const;
00033
00034 public:
00035 explicit discoverer(session const& s);
00036
00037 ~discoverer (void);
00038
00039
00040 discoverer& operator= (saga::object const& o);
00041
00042
00043
00050 std::vector<saga::sd::service_description> list_services(std::string svc_filter,
00051 std::string vo_filter, std::string data_filter)
00052 {
00053 saga::task t = list_servicespriv(svc_filter, vo_filter, data_filter,
00054 saga::task_base::Sync());
00055 return t.get_result<std::vector<saga::sd::service_description> >();
00056 }
00057 SAGA_CALL_PUB_3_DEF_0 (list_services, std::string, std::string, std::string);
00058
00059 };
00060 }
00061 }
00063 #endif