SAGA C++ API 1.6
namespace_dir.cpp
Go to the documentation of this file.
00001 #if defined(__WAVE__) && defined(SAGA_CREATE_PREPROCESSED_FILES)
00002 #pragma wave option(preserve: 2, line: 1, output: "preprocessed/namespace_dir.cpp")
00003 #endif
00004 //  Copyright (c) 2005-2009 Hartmut Kaiser
00005 //  Copyright (c) 2005-2007 Andre Merzky (andre@merzky.net)
00006 // 
00007 //  Distributed under the Boost Software License, Version 1.0. (See accompanying 
00008 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
00009 
00010 #if defined(__WAVE__) && defined(SAGA_CREATE_PREPROCESSED_FILES)
00011 #pragma wave option(preserve: 0, output: null)
00012 #endif
00013 
00014 // include the package and implementation
00015 #include <saga/saga/util.hpp>
00016 #include <saga/saga/namespace.hpp>
00017 #include <saga/impl/namespace.hpp>
00018 #include <saga/saga/detail/call.hpp>
00019 
00020 #include <string>
00021 #include <vector>
00022 
00023 #ifdef SAGA_DEBUG
00024 #include <saga/saga/packages/namespace/preprocessed/namespace_dir.cpp>
00025 #else
00026 
00027 #if defined(__WAVE__) && defined(SAGA_CREATE_PREPROCESSED_FILES)
00028 #pragma wave option(preserve: 2, line: 1, output: "preprocessed/namespace_dir.cpp")
00029 #endif
00030 
00031 namespace saga { namespace name_space 
00032 {
00033   directory::directory (saga::impl::namespace_dir *init)
00034       : entry (init)
00035   {
00036   }
00037   
00038   directory::directory (session const& s, saga::url url, int mode, 
00039           saga::object::type t)
00040     : entry (new saga::impl::namespace_dir (s, url, mode, t))
00041   {
00042     saga::impl::object* obj (this->saga::object::get_impl());
00043     obj->init();
00044     if (t == saga::object::NSDirectory)
00045       obj->set_type((saga::object::type)obj->get_cpitype());
00046   }
00047 
00048   directory::directory (saga::url url, int mode,
00049           saga::object::type t)
00050     : entry (new saga::impl::namespace_dir (
00051           detail::get_the_session(), url, mode, t))
00052   {
00053     saga::impl::object* obj (this->saga::object::get_impl());
00054     obj->init();
00055     if (t == saga::object::NSDirectory)
00056       obj->set_type((saga::object::type)obj->get_cpitype());
00057   }
00058 
00059   directory::directory (saga::object const& o)
00060     : saga::name_space::entry(o)
00061   {
00062   }
00063   
00064   directory::directory (void)
00065   {
00066   }
00067 
00068   directory::~directory (void)
00069   {
00070   }
00071 
00072   directory &directory::operator= (saga::object const& o)
00073   {
00074       return this->saga::name_space::entry::operator=(o), *this;
00075   }
00076 
00077   saga::impl::namespace_dir* directory::get_impl() const
00078   { 
00079       typedef saga::object base_type;
00080       return static_cast<saga::impl::namespace_dir*>(this->base_type::get_impl()); 
00081   }
00082 
00083   TR1::shared_ptr <saga::impl::namespace_dir> directory::get_impl_sp() const
00084   { 
00085     typedef saga::object base_type;
00086     return TR1::static_pointer_cast<saga::impl::namespace_dir>(
00087         this->base_type::get_impl_sp()); 
00088   }
00089 
00090   // factories
00091   SAGA_CALL_CREATE_IMP_3(directory, impl::namespace_dir, session const&, saga::url, int)
00092 
00093   // navigation/query methods
00094   SAGA_CALL_IMP_1(directory, change_dir, saga::url)
00095   SAGA_CALL_CONST_IMP_2(directory, list, std::string, int)
00096   SAGA_CALL_CONST_IMP_2(directory, find, std::string, int)
00097 
00098   SAGA_CALL_CONST_IMP_1(directory, read_link, saga::url)
00099   SAGA_CALL_CONST_IMP_1(directory, exists, saga::url)
00100   SAGA_CALL_CONST_IMP_1(directory, is_dir, saga::url)
00101   SAGA_CALL_CONST_IMP_1(directory, is_entry, saga::url)
00102   SAGA_CALL_CONST_IMP_1(directory, is_link, saga::url)
00103 
00104   // Deal with entries by entry number
00105   SAGA_CALL_CONST_IMP_0(directory, get_num_entries)
00106   SAGA_CALL_CONST_IMP_1(directory, get_entry, std::size_t)
00107 
00108   // entry management methods
00109   SAGA_CALL_IMP_3(directory, copy, saga::url, saga::url, int)
00110   SAGA_CALL_IMP_3(directory, link, saga::url, saga::url, int)
00111   SAGA_CALL_IMP_3(directory, move, saga::url, saga::url, int)
00112   SAGA_CALL_IMP_2(directory, remove, saga::url, int)
00113   SAGA_CALL_IMP_2(directory, make_dir, saga::url, int)
00114 
00115   // open methods
00116   SAGA_CALL_IMP_2(directory, open, saga::url, int)
00117   SAGA_CALL_IMP_2(directory, open_dir, saga::url, int)
00118 
00119   // entry management methods - wildcard versions
00120   SAGA_CALL_IMP_3_EX(directory, copy, copy_wildcard, std::string, saga::url, int)
00121   SAGA_CALL_IMP_3_EX(directory, link, link_wildcard, std::string, saga::url, int)
00122   SAGA_CALL_IMP_3_EX(directory, move, move_wildcard, std::string, saga::url, int)
00123   SAGA_CALL_IMP_2_EX(directory, remove, remove_wildcard, std::string, int)
00124 
00125   // permissions with flags
00126   SAGA_CALL_IMP_4(directory, permissions_allow, saga::url, std::string, int, int)
00127   SAGA_CALL_IMP_4(directory, permissions_deny, saga::url, std::string, int, int)
00128   SAGA_CALL_IMP_4_EX(directory, permissions_allow, permissions_allow_wildcard, std::string, std::string, int, int)
00129   SAGA_CALL_IMP_4_EX(directory, permissions_deny, permissions_deny_wildcard, std::string, std::string, int, int)
00130 
00132 }} // namespace saga::name_space
00133 
00134 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines