### Class

# Gio MemoryOutputStream

#### Description [src]

    class Gio.MemoryOutputStream : Gio.OutputStream
      implements Gio.PollableOutputStream, Gio.Seekable {
      /* No available fields */
    }

`GMemoryOutputStream` is a class for using arbitrary memory chunks as output for GIO streaming output operations.

As of GLib 2.34, `GMemoryOutputStream` trivially implements `GPollableOutputStream`: it always polls as ready.

#### Hierarchy

#### Ancestors

- GOutputStream
- GObject

#### Implements

- GPollableOutputStream
- GSeekable

#### Constructors

###### g_memory_output_stream_new

Creates a new `GMemoryOutputStream`.

###### g_memory_output_stream_new_resizable

Creates a new `GMemoryOutputStream`, using `g_realloc()` and `g_free()` for memory allocation.

since: 2.36

#### Instance methods

###### g_memory_output_stream_get_data

Gets any loaded data from the `ostream`.

###### g_memory_output_stream_get_data_size

Returns the number of bytes from the start up to including the last byte written in the stream that has not been truncated away.

since: 2.18

###### g_memory_output_stream_get_size

Gets the size of the currently allocated data area (available from g_memory_output_stream_get_data()).

###### g_memory_output_stream_steal_as_bytes

Returns data from the `ostream` as a `GBytes`. `ostream` must be closed before calling this function.

since: 2.34

###### g_memory_output_stream_steal_data

Gets any loaded data from the `ostream`. Ownership of the data is transferred to the caller; when no longer needed it must be freed using the free function set in `ostream`‘s `GMemoryOutputStream:destroy-function` property.

since: 2.26

##### Methods inherited from GOutputStream (31)

Please see GOutputStream for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GPollableOutputStream (5)

###### g_pollable_output_stream_can_poll

Checks if `stream` is actually pollable. Some classes may implement `GPollableOutputStream` but have only certain instances of that class be pollable. If this method returns `FALSE`, then the behavior of other `GPollableOutputStream` methods is undefined.

since: 2.28

###### g_pollable_output_stream_create_source

Creates a `GSource` that triggers when `stream` can be written, or `cancellable` is triggered or an error occurs. The callback on the source is of the `GPollableSourceFunc` type.

since: 2.28

###### g_pollable_output_stream_is_writable

Checks if `stream` can be written.

since: 2.28

###### g_pollable_output_stream_write_nonblocking

Attempts to write up to `count` bytes from `buffer` to `stream`, as with g_output_stream_write(). If `stream` is not currently writable, this will immediately return `G_IO_ERROR_WOULD_BLOCK`, and you can use `g_pollable_output_stream_create_source()` to create a `GSource` that will be triggered when `stream` is writable.

###### g_pollable_output_stream_writev_nonblocking

Attempts to write the bytes contained in the `n_vectors` `vectors` to `stream`, as with g_output_stream_writev(). If `stream` is not currently writable, this will immediately return %`G_POLLABLE_RETURN_WOULD_BLOCK`, and you can use `g_pollable_output_stream_create_source()` to create a `GSource` that will be triggered when `stream` is writable. `error` will not be set in that case.

since: 2.60

##### Methods inherited from GSeekable (5)

###### g_seekable_can_seek

Tests if the stream supports the `GSeekableIface`.

###### g_seekable_can_truncate

Tests if the length of the stream can be adjusted with g_seekable_truncate().

###### g_seekable_seek

Seeks in the stream by the given `offset`, modified by `type`.

###### g_seekable_tell

Tells the current position within the stream.

###### g_seekable_truncate

Sets the length of the stream to `offset`. If the stream was previously larger than `offset`, the extra data is discarded. If the stream was previously shorter than `offset`, it is extended with NUL (‘\0’) bytes.

#### Properties

###### Gio.MemoryOutputStream:data

Pointer to buffer where data will be written.

since: 2.24

###### Gio.MemoryOutputStream:data-size

Size of data written to the buffer.

since: 2.24

###### Gio.MemoryOutputStream:destroy-function

Function called with the buffer as argument when the stream is destroyed.

since: 2.24

###### Gio.MemoryOutputStream:realloc-function

Function with realloc semantics called to enlarge the buffer.

since: 2.24

###### Gio.MemoryOutputStream:size

Current size of the data buffer.

since: 2.24

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct GioMemoryOutputStreamClass {
      GOutputStreamClass parent_class;
      void (* _g_reserved1) (
    void
      );
      void (* _g_reserved2) (
    void
      );
      void (* _g_reserved3) (
    void
      );
      void (* _g_reserved4) (
    void
      );
      void (* _g_reserved5) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GOutputStreamClass`

  No description available.

`_g_reserved1: void (* _g_reserved1) ( void )`

  No description available.

`_g_reserved2: void (* _g_reserved2) ( void )`

  No description available.

`_g_reserved3: void (* _g_reserved3) ( void )`

  No description available.

`_g_reserved4: void (* _g_reserved4) ( void )`

  No description available.

`_g_reserved5: void (* _g_reserved5) ( void )`

  No description available.