# Gio::BufferedOutputStream Class Reference
[Stream Classes]

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

`#include <giomm/bufferedoutputstream.h>`

Inheritance diagram for Gio::BufferedOutputStream:
[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.

## Static Public Member Functions

static Glib::RefPtr < BufferedOutputStream > | create (const Glib::RefPtr< OutputStream >& base_stream)
static Glib::RefPtr < BufferedOutputStream > | create_sized (const Glib::RefPtr< OutputStream >& base_stream, gsize size)

## Protected Member Functions

| BufferedOutputStream (const Glib::RefPtr< OutputStream >& base_stream)
| BufferedOutputStream (const Glib::RefPtr< OutputStream >& base_stream, gsize 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 | ) | `[explicit, protected]`

Gio::BufferedOutputStream::BufferedOutputStream | ( | const Glib::RefPtr< OutputStream >& | base_stream,
|  | gsize | size |
| ) |  |  | `[explicit, protected]`

## Member Function Documentation

static Glib::RefPtr<BufferedOutputStream> Gio::BufferedOutputStream::create | ( | const Glib::RefPtr< OutputStream >& | base_stream | ) | `[static]`

Reimplemented in Gio::DataOutputStream.

static Glib::RefPtr<BufferedOutputStream> Gio::BufferedOutputStream::create_sized | ( | const Glib::RefPtr< OutputStream >& | base_stream,
|  | gsize | size |
| ) |  |  | `[static]`

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.

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 | ( |  | ) | `[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_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<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<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.

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.

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_grow | A `bool`.

void Gio::BufferedOutputStream::set_buffer_size | ( | gsize | size | ) |

Sets the size of the internal buffer to size.

Parameters:

  | size | A 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:

  | object | The C instance.
  | take_copy | False 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.