## GMimeStreamMem GMimeStreamMem — A memory-backed stream |

## Functions

GMimeStream * | g_mime_stream_mem_new ()
GMimeStream * | g_mime_stream_mem_new_with_byte_array ()
GMimeStream * | g_mime_stream_mem_new_with_buffer ()
GByteArray * | g_mime_stream_mem_get_byte_array ()
void | g_mime_stream_mem_set_byte_array ()
gboolean | g_mime_stream_mem_get_owner ()
void | g_mime_stream_mem_set_owner ()

## Types and Values

struct | GMimeStreamMem

## Object Hierarchy

        GObject
        ╰── GMimeStream
            ╰── GMimeStreamMem

## Description

A simple GMimeStream implementation that uses a memory buffer for storage.

## Functions

### g_mime_stream_mem_new ()

    GMimeStream *
    g_mime_stream_mem_new (void);

Creates a new GMimeStreamMem object.

#### Returns

a new memory stream.

### g_mime_stream_mem_new_with_byte_array ()

    GMimeStream *
    g_mime_stream_mem_new_with_byte_array (GByteArray *array);

Creates a new GMimeStreamMem with data `array` .

#### Parameters

array | source data |

#### Returns

a new memory stream using `array` .

### g_mime_stream_mem_new_with_buffer ()

    GMimeStream *
    g_mime_stream_mem_new_with_buffer (const char *buffer,
                                       size_t len);

Creates a new GMimeStreamMem object and initializes the stream contents with the first `len` bytes of `buffer` .

#### Parameters

buffer | stream data. | [array length=len][element-type guint8]
len | buffer length |

#### Returns

a new memory stream initialized with `buffer` .

### g_mime_stream_mem_get_byte_array ()

    GByteArray *
    g_mime_stream_mem_get_byte_array (GMimeStreamMem *mem);

Gets the byte array from the memory stream.

#### Parameters

mem | a GMimeStreamMem |

#### Returns

the byte array from the memory stream.

[transfer none]

### g_mime_stream_mem_set_byte_array ()

    void
    g_mime_stream_mem_set_byte_array (GMimeStreamMem *mem,
                                      GByteArray *array);

Sets the byte array on the memory stream.

Note: The memory stream is not responsible for freeing the byte array. Use `g_mime_stream_mem_set_owner()` to change this behavior.

#### Parameters

mem | a GMimeStreamMem |
array | stream data |

### g_mime_stream_mem_get_owner ()

    gboolean
    g_mime_stream_mem_get_owner (GMimeStreamMem *mem);

Gets whether or not `mem` owns the backend memory buffer.

#### Parameters

mem | a GMimeStreamMem |

#### Returns

`TRUE` if `mem` owns the backend memory buffer or `FALSE` otherwise.

### g_mime_stream_mem_set_owner ()

    void
    g_mime_stream_mem_set_owner (GMimeStreamMem *mem,
                                 gboolean owner);

Sets whether or not `mem` owns the backend memory buffer.

Note: `owner` should be `TRUE` if the stream should free the backend memory buffer when destroyed or `FALSE` otherwise.

#### Parameters

mem | a GMimeStreamMem |
owner | `TRUE` if this stream should own the GByteArray or `FALSE` otherwise |

## Types and Values

### struct GMimeStreamMem

    struct GMimeStreamMem;

A memory-backed GMimeStream.

#### Members

## See Also

GMimeStream