// Copyright (c) 2005-2007 Hartmut Kaiser // Copyright (c) 2005-2007 Andre Merzky (andre@merzky.net) // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef ADAPTORS_SQL_FAST_ADVERT_ADVERT_HPP #define ADAPTORS_SQL_FAST_ADVERT_ADVERT_HPP #define LOG std::cout << "File : " << __FILE__ << " Line : " << __LINE__ << " Function : " << __FUNCTION__ << std::endl; // saga includes #include // saga adaptor includes #include #include // advert package includes #include // boost includes #include // Database Connection includes #include "sql_fast_advert_adaptor.hpp" #include "sql_fast_advert_database_connection.hpp" //////////////////////////////////////////////////////////////////////// namespace sql_fast_advert { // Adaptor data typedef saga::adaptors::adaptor_data adaptor_data; ////////////////////////////////////////////////////////////////////// // This adaptor implements the functionality of the Saga API "advert". // It defines the functions declared in its base class, advert_file_cpi. class advert_cpi_impl : public saga::adaptors::v1_0::advert_cpi { private: typedef saga::adaptors::v1_0::advert_cpi base_cpi; public: // constructor of the advert adaptor advert_cpi_impl ( proxy *p, cpi_info const &info, saga::ini::ini const &glob_ini, saga::ini::ini const &adap_ini, TR1::shared_ptr adaptor ); // destructor of the advert adaptor ~advert_cpi_impl (void); /////////////////////////////////////////////////////////////////////////// // attribute functions /////////////////////////////////////////////////////////////////////////// void sync_attribute_exists (bool &ret, std::string key); void sync_attribute_is_readonly (bool &ret, std::string key); void sync_attribute_is_writable (bool &ret, std::string key); void sync_attribute_is_vector (bool &ret, std::string key); void sync_attribute_is_extended (bool &ret, std::string key); void sync_get_attribute (std::string &ret, std::string key); void sync_set_attribute (saga::impl::void_t &ret, std::string key, std::string val); void sync_get_vector_attribute (std::vector &ret, std::string key); void sync_set_vector_attribute (saga::impl::void_t &ret, std::string key, std::vector val); void sync_remove_attribute (saga::impl::void_t &ret, std::string key); void sync_list_attributes (std::vector &ret); void sync_find_attributes (std::vector &ret, std::string pattern); /////////////////////////////////////////////////////////////////////////// // namespace_entry functions /////////////////////////////////////////////////////////////////////////// void sync_get_url (saga::url &ret); void sync_get_cwd (saga::url &ret); void sync_get_name (saga::url &ret); void sync_read_link (saga::url &ret); void sync_is_dir (bool &ret); void sync_is_entry (bool &ret); void sync_is_link (bool &ret); void sync_copy (saga::impl::void_t &ret, saga::url target, int flags); void sync_link (saga::impl::void_t &ret, saga::url target, int flags); void sync_move (saga::impl::void_t &ret, saga::url target, int flags); void sync_remove (saga::impl::void_t &ret, int flags); void sync_close (saga::impl::void_t &ret, double timeout); // // advert functions // void sync_store_object (saga::impl::void_t & ret, saga::object obj); // void sync_retrieve_object (saga::object & ret, saga::session s); // void sync_store_string (saga::impl::void_t & ret, std::string str); // void sync_retrieve_string (std::string & ret); // // // // This adaptor also implements the async functions. // // ////////////////////// // // attribute functions // saga::task async_attribute_exists (std::string key); // saga::task async_attribute_is_readonly (std::string key); // saga::task async_attribute_is_writable (std::string key); // saga::task async_attribute_is_vector (std::string key); // saga::task async_attribute_is_extended (std::string key); // saga::task async_get_attribute (std::string key); // saga::task async_set_attribute (std::string key, // std::string val); // saga::task async_get_vector_attribute (std::string key); // saga::task async_set_vector_attribute (std::string key, // std::vector val); // saga::task async_remove_attribute (std::string key); // saga::task async_list_attributes (void); // saga::task async_find_attributes (std::string ret); // // //////////////////////////// // // namespace_entry functions // saga::task async_get_url (void); // saga::task async_get_cwd (void); // saga::task async_get_name (void); // saga::task async_read_link (void); // saga::task async_is_dir (void); // saga::task async_is_entry (void); // saga::task async_is_link (void); // saga::task async_copy (saga::url target, // int flags); // saga::task async_link (saga::url target, // int flags); // saga::task async_move (saga::url target, // int flags); // saga::task async_remove (int flags); // saga::task async_close (double timeout); // // /////////////////// // // advert functions // saga::task async_store_object (saga::object obj); // saga::task async_retrieve_object (saga::session s); // saga::task async_store_string (std::string str); // saga::task async_retrieve_string (void); private: // The Database Connection database_connection *dbc; // Basic informations for the current database node node dir_node; std::vector node_vector; // The path of this database node boost::filesystem::path path; // Helper function to create a complete path including it's parents void create_parents(boost::filesystem::path path_); }; // class advert_cpi_impl } // namespace sql_fast_advert //////////////////////////////////////////////////////////////////////// #endif // ADAPTORS_SQL_FAST_ADVERT_ADVERT_HPP