00001 #if defined(__WAVE__)
00002 #pragma wave option(preserve: 2, line: 1, output: "preprocessed/file.cpp")
00003 #endif
00004
00005
00006
00007
00008
00009
00010 #if defined(__WAVE__)
00011 #pragma wave option(output: null)
00012 #endif
00013
00014
00015 #include <saga/saga/filesystem.hpp>
00016 #include <saga/impl/filesystem.hpp>
00017 #include <saga/saga/detail/call.hpp>
00018
00019 #ifdef SAGA_DEBUG
00020 #include <saga/saga/packages/filesystem/preprocessed/file.cpp>
00021 #else
00022
00023 #if defined(__WAVE__)
00024 #pragma wave option(preserve: 2, line: 1, output: "preprocessed/file.cpp")
00025 #endif
00026
00027 namespace saga { namespace filesystem
00028 {
00029 file::file (saga::impl::file * init)
00030 : entry (init)
00031 {
00032 }
00033
00034 file::file (session const& s, saga::url url, int mode)
00035 : entry (new saga::impl::file (s, url, mode))
00036 {
00037 this->saga::object::get_impl()->init();
00038 }
00039
00040 file::file (session const& s, saga::url url, int mode, saga::off_t pointer)
00041 : entry (new saga::impl::file (s, url, mode, pointer))
00042 {
00043 this->saga::object::get_impl()->init();
00044 }
00045
00046 file::file (saga::url url, int mode)
00047 : entry (new saga::impl::file (detail::get_the_session (), url, mode))
00048 {
00049 this->saga::object::get_impl()->init();
00050 }
00051
00052 file::file (saga::object const& o)
00053 : entry(o)
00054 {
00055 if (this->get_type() != saga::object::File)
00056 {
00057 SAGA_THROW("Bad type conversion.", saga::BadParameter);
00058 }
00059 }
00060
00061 file::file (void)
00062 {
00063 }
00064
00065 file::~file (void)
00066 {
00067 }
00068
00069 file &file::operator= (saga::object const& o)
00070 {
00071 return this->saga::name_space::entry::operator=(o), *this;
00072 }
00073
00074 saga::impl::file* file::get_impl (void) const
00075 {
00076 typedef saga::object base_type;
00077 return static_cast <saga::impl::file*> (this->base_type::get_impl ());
00078 }
00079
00080 TR1::shared_ptr <saga::impl::file> file::get_impl_sp (void) const
00081 {
00082
00083 typedef saga::object base_type;
00084 return TR1::static_pointer_cast <saga::impl::file> (
00085 this->base_type::get_impl_sp());
00086 }
00087
00088
00089 SAGA_CALL_CREATE_IMP_3(file, impl::file, session const&, saga::url, int)
00090
00091
00092 SAGA_CALL_IMP_0 (file, get_size)
00093 SAGA_CALL_IMP_2 (file, read, saga::mutable_buffer, saga::ssize_t)
00094 SAGA_CALL_IMP_2 (file, write, saga::const_buffer, saga::ssize_t)
00095 SAGA_CALL_IMP_2 (file, seek, saga::off_t, saga::filesystem::seek_mode)
00096
00097
00098 SAGA_CALL_IMP_1 (file, read_v, std::vector<saga::filesystem::iovec>)
00099 SAGA_CALL_IMP_1 (file, write_v, std::vector<saga::filesystem::const_iovec>)
00100
00101
00102 SAGA_CALL_IMP_1 (file, size_p, std::string)
00103 SAGA_CALL_IMP_2 (file, read_p, std::string, saga::mutable_buffer)
00104 SAGA_CALL_IMP_2 (file, write_p, std::string, saga::const_buffer)
00105
00106
00107 SAGA_CALL_IMP_0 (file, modes_e)
00108 SAGA_CALL_IMP_2 (file, size_e, std::string, std::string)
00109 SAGA_CALL_IMP_3 (file, read_e, std::string, std::string, saga::mutable_buffer)
00110 SAGA_CALL_IMP_3 (file, write_e, std::string, std::string, saga::const_buffer)
00111
00113 }}
00114
00115 #endif
00116