SAGA C++ API 1.6
buffer.cpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines