Go to the documentation of this file.00001
00002
00003
00004
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 }
00118