glibmm  2.33.12
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions
Gio::BufferedOutputStream Class Reference

The buffered output stream implements FilterOutputStream and provides for buffered writes. More...

#include <giomm/bufferedoutputstream.h>

Inheritance diagram for Gio::BufferedOutputStream:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~BufferedOutputStream ()
GBufferedOutputStream* gobj ()
 Provides access to the underlying C GObject.
const GBufferedOutputStream* gobj () const
 Provides access to the underlying C GObject.
GBufferedOutputStream* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
gsize get_buffer_size () const
 Gets the size of the buffer in the stream.
void set_buffer_size (gsize size)
 Sets the size of the internal buffer to size.
void set_auto_grow (bool auto_grow=true)
 Sets whether or not the stream's buffer should automatically grow.
bool get_auto_grow () const
 Checks if the buffer automatically grows as data is added.
Glib::PropertyProxy< guint > property_buffer_size ()
 The size of the backend buffer.
Glib::PropertyProxy_ReadOnly
< guint > 
property_buffer_size () const
 The size of the backend buffer.
Glib::PropertyProxy< bool > property_auto_grow ()
 Whether the buffer should automatically grow.
Glib::PropertyProxy_ReadOnly
< bool > 
property_auto_grow () const
 Whether the buffer should automatically grow.
- Public Member Functions inherited from Gio::FilterOutputStream
virtual ~FilterOutputStream ()
Glib::RefPtr< OutputStreamget_base_stream ()
 Gets the base stream for the filter stream.
Glib::RefPtr< const OutputStreamget_base_stream () const
 Gets the base stream for the filter stream.
bool get_close_base_stream () const
 Returns whether the base stream will be closed when stream is closed.
void set_close_base_stream (bool close_base=true)
 Sets whether the base stream will be closed when stream is closed.
Glib::PropertyProxy_ReadOnly
< Glib::RefPtr< InputStream > > 
property_base_stream () const
 The underlying base stream on which the io ops will be done.
Glib::PropertyProxy_ReadOnly
< bool > 
property_close_base_stream () const
 If the base stream should be closed when the filter stream is closed.
- Public Member Functions inherited from Gio::OutputStream
virtual ~OutputStream ()
gssize write (const void* buffer, gsize count, const Glib::RefPtr< Cancellable >& cancellable)
 Tries to write count bytes from buffer into the stream.
gssize write (const void* buffer, gsize count)
 Tries to write count bytes from buffer into the stream.
gssize write (const std::string& buffer, const Glib::RefPtr< Cancellable >& cancellable)
 Tries to write count bytes from buffer into the stream.
gssize write (const std::string& buffer)
 Tries to write count bytes from buffer into the stream.
bool write_all (const void* buffer, gsize count, gsize& bytes_written, const Glib::RefPtr< Cancellable >& cancellable)
 Tries to write count bytes from buffer into the stream.
bool write_all (const void* buffer, gsize count, gsize& bytes_written)
 Tries to write count bytes from buffer into the stream.
bool write_all (const std::string& buffer, gsize& bytes_written, const Glib::RefPtr< Cancellable >& cancellable)
 Tries to write count bytes from buffer into the stream.
bool write_all (const std::string& buffer, gsize& bytes_written)
 Tries to write count bytes from buffer into the stream.
gssize write_bytes (const Glib::RefPtr< const Glib::Bytes >& bytes, const Glib::RefPtr< Cancellable >& cancellable)
 Tries to write the data from bytes into the stream.
void write_bytes_async (const Glib::RefPtr< const Glib::Bytes >& bytes, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, int io_priority=Glib::PRIORITY_DEFAULT)
void write_bytes_async (const Glib::RefPtr< const Glib::Bytes >& bytes, const SlotAsyncReady& slot, int io_priority=Glib::PRIORITY_DEFAULT)
gssize write_bytes_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes a stream write-from-Bytes operation.
gssize splice (const Glib::RefPtr< InputStream >& source, const Glib::RefPtr< Cancellable >& cancellable, OutputStreamSpliceFlags flags=OUTPUT_STREAM_SPLICE_NONE)
 Splices an input stream into an output stream.
gssize splice (const Glib::RefPtr< InputStream >& source, OutputStreamSpliceFlags flags=OUTPUT_STREAM_SPLICE_NONE)
 Splices an input stream into an output stream.
bool flush (const Glib::RefPtr< Cancellable >& cancellable)
 Flushed any outstanding buffers in the stream.
bool flush ()
 Flushed any outstanding buffers in the stream.
bool close (const Glib::RefPtr< Cancellable >& cancellable)
 Closes the stream, releasing resources related to it.
bool close ()
 Closes the stream, releasing resources related to it.
void write_async (const void* buffer, gsize count, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, int io_priority=Glib::PRIORITY_DEFAULT)
 Request an asynchronous write of count bytes from buffer into the stream.
void write_async (const void* buffer, gsize count, const SlotAsyncReady& slot, int io_priority=Glib::PRIORITY_DEFAULT)
 Request an asynchronous write of count bytes from buffer into the stream.
gssize write_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes a stream write operation.
void splice_async (const Glib::RefPtr< InputStream >& source, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, OutputStreamSpliceFlags flags=OUTPUT_STREAM_SPLICE_NONE, int io_priority=Glib::PRIORITY_DEFAULT)
 Splices a stream asynchronously.
void splice_async (const Glib::RefPtr< InputStream >& source, const SlotAsyncReady& slot, OutputStreamSpliceFlags flags=OUTPUT_STREAM_SPLICE_NONE, int io_priority=Glib::PRIORITY_DEFAULT)
 Splices a stream asynchronously.
gssize splice_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes an asynchronous stream splice operation.
void flush_async (const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, int io_priority=Glib::PRIORITY_DEFAULT)
 Flushes a stream asynchronously.
void flush_async (const SlotAsyncReady& slot, int io_priority=Glib::PRIORITY_DEFAULT)
 Flushes a stream asynchronously.
bool flush_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes flushing an output stream.
void close_async (const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, int io_priority=Glib::PRIORITY_DEFAULT)
 Requests an asynchronous close of the stream, releasing resources related to it.
void close_async (const SlotAsyncReady& slot, int io_priority=Glib::PRIORITY_DEFAULT)
 Requests an asynchronous close of the stream, releasing resources related to it.
bool close_finish (const Glib::RefPtr< AsyncResult >& result)
 Closes an output stream.
- Public Member Functions inherited from Glib::Object
void* get_data (const QueryQuark& key)
void set_data (const Quark& key, void* data)
void set_data (const Quark& key, void* data, DestroyNotify notify)
void remove_data (const QueryQuark& quark)
void* steal_data (const QueryQuark& quark)
- Public Member Functions inherited from Glib::ObjectBase
void set_property_value (const Glib::ustring& property_name, const Glib::ValueBase&value)
 You probably want to use a specific property_*() accessor method instead.
void get_property_value (const Glib::ustring& property_name, Glib::ValueBase&value) const
 You probably want to use a specific property_*() accessor method instead.
template<class PropertyType >
void set_property (const Glib::ustring& property_name, const PropertyType&value)
 You probably want to use a specific property_*() accessor method instead.
template<class PropertyType >
void get_property (const Glib::ustring& property_name, PropertyType&value) const
 You probably want to use a specific property_*() accessor method instead.
void connect_property_changed (const Glib::ustring& property_name, const sigc::slot< void >& slot)
 You can use the signal_changed() signal of the property proxy instead, but this is necessary when using the reduced API.
sigc::connection connect_property_changed_with_return (const Glib::ustring& property_name, const sigc::slot< void >& slot)
 You can use the signal_changed() signal of the property proxy instead, but this is necessary when using the reduced API.
void freeze_notify ()
 Increases the freeze count on object.
void thaw_notify ()
 Reverts the effect of a previous call to freeze_notify().
virtual void reference () const
 Increment the reference count for this object.
virtual void unreference () const
 Decrement the reference count for this object.
GObject* gobj_copy () const
 Give a ref-ed copy to someone. Use for direct struct access.
- Public Member Functions inherited from sigc::trackable
 trackable (const trackable &src)
trackableoperator= (const trackable &src)
void add_destroy_notify_callback (void *data, func_destroy_notify func) const
void remove_destroy_notify_callback (void *data) const
void notify_callbacks ()

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system.
static Glib::RefPtr
< BufferedOutputStream
create (const Glib::RefPtr< OutputStream >& base_stream)
 Creates a new buffered output stream for a base stream.
static Glib::RefPtr
< BufferedOutputStream
create_sized (const Glib::RefPtr< OutputStream >& base_stream, gsize buffer_size)
 Creates a new buffered output stream with a given buffer size.

Protected Member Functions

 BufferedOutputStream (const Glib::RefPtr< OutputStream >& base_stream)
 BufferedOutputStream (const Glib::RefPtr< OutputStream >& base_stream, gsize buffer_size)

Related Functions

(Note that these are not member functions.)

Glib::RefPtr
< Gio::BufferedOutputStream
wrap (GBufferedOutputStream* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

The buffered output stream implements FilterOutputStream and provides for buffered writes.

By default, BufferedOutputStream's buffer size is set at 4 kilobytes, but you can specify this to the constructor.

To get the size of a buffer within a buffered input stream, use get_buffer_size(). To change the size of a buffered output stream's buffer, use set_buffer_size(). Note that the buffer's size cannot be reduced below the size of the data within the buffer.

Since glibmm 2.16:

Constructor & Destructor Documentation

virtual Gio::BufferedOutputStream::~BufferedOutputStream ( )
virtual
Gio::BufferedOutputStream::BufferedOutputStream ( const Glib::RefPtr< OutputStream >&  base_stream)
explicitprotected
Gio::BufferedOutputStream::BufferedOutputStream ( const Glib::RefPtr< OutputStream >&  base_stream,
gsize  buffer_size 
)
explicitprotected

Member Function Documentation

static Glib::RefPtr<BufferedOutputStream> Gio::BufferedOutputStream::create ( const Glib::RefPtr< OutputStream >&  base_stream)
static

Creates a new buffered output stream for a base stream.

Parameters:
base_streamAn InputStream.
Returns:
an OutputStream for the given base stream.

Reimplemented in Gio::DataOutputStream.

static Glib::RefPtr<BufferedOutputStream> Gio::BufferedOutputStream::create_sized ( const Glib::RefPtr< OutputStream >&  base_stream,
gsize  buffer_size 
)
static

Creates a new buffered output stream with a given buffer size.

Parameters:
base_streamAn InputStream.
sizeA size.
Returns:
an OutputStream with an internal buffer set to size.
bool Gio::BufferedOutputStream::get_auto_grow ( ) const

Checks if the buffer automatically grows as data is added.

Returns:
true if the stream's buffer automatically grows, false otherwise.
gsize Gio::BufferedOutputStream::get_buffer_size ( ) const

Gets the size of the buffer in the stream.

Returns:
The current size of the buffer.
static GType Gio::BufferedOutputStream::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

Reimplemented from Gio::FilterOutputStream.

Reimplemented in Gio::DataOutputStream.

GBufferedOutputStream* Gio::BufferedOutputStream::gobj ( )
inline

Provides access to the underlying C GObject.

Reimplemented from Gio::FilterOutputStream.

Reimplemented in Gio::DataOutputStream.

const GBufferedOutputStream* Gio::BufferedOutputStream::gobj ( ) const
inline

Provides access to the underlying C GObject.

Reimplemented from Gio::FilterOutputStream.

Reimplemented in Gio::DataOutputStream.

GBufferedOutputStream* Gio::BufferedOutputStream::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

Reimplemented from Gio::FilterOutputStream.

Reimplemented in Gio::DataOutputStream.

Glib::PropertyProxy< bool > Gio::BufferedOutputStream::property_auto_grow ( )

Whether the buffer should automatically grow.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< bool > Gio::BufferedOutputStream::property_auto_grow ( ) const

Whether the buffer should automatically grow.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy< guint > Gio::BufferedOutputStream::property_buffer_size ( )

The size of the backend buffer.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< guint > Gio::BufferedOutputStream::property_buffer_size ( ) const

The size of the backend buffer.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
void Gio::BufferedOutputStream::set_auto_grow ( bool  auto_grow = true)

Sets whether or not the stream's buffer should automatically grow.

If auto_grow is true, then each write will just make the buffer larger, and you must manually flush the buffer to actually write out the data to the underlying stream.

Parameters:
auto_growA bool.
void Gio::BufferedOutputStream::set_buffer_size ( gsize  size)

Sets the size of the internal buffer to size.

Parameters:
sizeA #gsize.

Friends And Related Function Documentation

Glib::RefPtr< Gio::BufferedOutputStream > wrap ( GBufferedOutputStream *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters:
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.