SAGA Adaptor CPI v.1.0
|
00001 // Copyright (c) 2006 Hartmut Kaiser 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 00006 #include <saga/saga/buffer.hpp> 00007 #include <saga/impl/buffer.hpp> 00008 00010 namespace saga 00011 { 00013 const_buffer::const_buffer(void const* data, saga::ssize_t size) 00014 : saga::object(new saga::impl::const_buffer(data, size)) 00015 { 00016 } 00017 00018 const_buffer::const_buffer(saga::impl::const_buffer* impl) 00019 : saga::object(impl) 00020 { 00021 } 00022 00023 const_buffer::~const_buffer() 00024 { 00025 } 00026 00028 saga::impl::const_buffer* const_buffer::get_impl (void) const 00029 { 00030 typedef saga::object base_type; 00031 return static_cast<saga::impl::const_buffer*>(this->base_type::get_impl()); 00032 } 00033 00034 TR1::shared_ptr<saga::impl::const_buffer> const_buffer::get_impl_sp(void) const 00035 { 00036 typedef saga::object base_type; 00037 return TR1::static_pointer_cast<saga::impl::const_buffer>( 00038 this->base_type::get_impl_sp()); 00039 } 00040 00042 saga::ssize_t const_buffer::get_size() const 00043 { 00044 return get_impl()->get_size(); 00045 } 00046 00047 void const* const_buffer::get_data() const 00048 { 00049 return get_impl()->get_data(); 00050 } 00051 00052 void const_buffer::close(double timeout) 00053 { 00054 get_impl()->close(timeout); 00055 } 00056 00058 SAGA_EXPORT void mutable_buffer::default_buffer_deleter(void* data) {} 00059 00061 mutable_buffer::mutable_buffer(saga::ssize_t size) 00062 : saga::const_buffer(new saga::impl::buffer(size)) 00063 { 00064 } 00065 00066 mutable_buffer::mutable_buffer(void* data, saga::ssize_t size) 00067 : saga::const_buffer(new saga::impl::buffer(data, size, default_buffer_deleter)) 00068 { 00069 } 00070 00071 mutable_buffer::mutable_buffer(void* data, saga::ssize_t size, buffer_deleter cb) 00072 : saga::const_buffer(new saga::impl::buffer(data, size, cb)) 00073 { 00074 } 00075 00076 mutable_buffer::mutable_buffer(saga::impl::buffer* impl) 00077 : saga::const_buffer(impl) 00078 { 00079 } 00080 00081 mutable_buffer::~mutable_buffer() 00082 { 00083 } 00084 00086 saga::impl::buffer* mutable_buffer::get_impl (void) const 00087 { 00088 typedef saga::object base_type; 00089 return static_cast<saga::impl::buffer*>(this->base_type::get_impl()); 00090 } 00091 00092 TR1::shared_ptr<saga::impl::buffer> mutable_buffer::get_impl_sp(void) const 00093 { 00094 typedef saga::object base_type; 00095 return TR1::static_pointer_cast<saga::impl::buffer>( 00096 this->base_type::get_impl_sp()); 00097 } 00098 00100 void mutable_buffer::set_size(saga::ssize_t size) 00101 { 00102 get_impl()->set_size(size); 00103 } 00104 00105 void mutable_buffer::set_data(void* data, saga::ssize_t size, 00106 saga::mutable_buffer::buffer_deleter cb) 00107 { 00108 get_impl()->set_data(data, size, cb); 00109 } 00110 00111 void* mutable_buffer::get_data() 00112 { 00113 return get_impl()->get_data(); 00114 } 00115 00117 } // namespace saga 00118