## memory memory |

## Synopsis

                        GsfInputMemory;
    GsfInput *          gsf_input_mmap_new                  (char const *filename,
                                                             GError **err);
    GsfInput *          gsf_input_memory_new                (guint8 const *buf,
                                                             gsf_off_t length,
                                                             gboolean needs_free);
    GsfInput *          gsf_input_memory_new_clone          (guint8 const *buf,
                                                             gsf_off_t length);
    GsfInput *          gsf_input_memory_new_from_iochannel (GIOChannel *channel,
                                                             GError **error);
                        GsfOutputMemory;
    const guint8 *      gsf_output_memory_get_bytes         (GsfOutputMemory *mem);
    GsfOutput *         gsf_output_memory_new               (void);

## Object Hierarchy

      GObject
       +----GsfInput
             +----GsfInputMemory

      GObject
       +----GsfOutput
             +----GsfOutputMemory

## Description

## Details

### GsfInputMemory

    typedef struct _GsfInputMemory GsfInputMemory;

### gsf_input_mmap_new ()

    GsfInput *          gsf_input_mmap_new                  (char const *filename,
                                                             GError **err);

`filename` : | The file on disk that you want to mmap
`err` : | A GError, or optionally `NULL`
Returns : | A new GsfInputMemory

### gsf_input_memory_new ()

    GsfInput *          gsf_input_memory_new                (guint8 const *buf,
                                                             gsf_off_t length,
                                                             gboolean needs_free);

`buf` : | The input bytes
`length` : | The length of `buf`
`needs_free` : | Whether you want this memory to be free'd at object destruction
Returns : | A new GsfInputMemory

### gsf_input_memory_new_clone ()

    GsfInput *          gsf_input_memory_new_clone          (guint8 const *buf,
                                                             gsf_off_t length);

`buf` : | The input bytes
`length` : | The length of `buf`
Returns : | A new GsfInputMemory

### gsf_input_memory_new_from_iochannel ()

    GsfInput *          gsf_input_memory_new_from_iochannel (GIOChannel *channel,
                                                             GError **error);

`channel` : | a GIOChannel.
`error` : | a GError
Returns : | a new GsfInputMemory or `NULL`.

### GsfOutputMemory

    typedef struct _GsfOutputMemory GsfOutputMemory;

### gsf_output_memory_get_bytes ()

    const guint8 *      gsf_output_memory_get_bytes         (GsfOutputMemory *mem);

`mem` : | the output device.
Returns : | The data that has been written to `mem`, or `NULL`

### gsf_output_memory_new ()

    GsfOutput *         gsf_output_memory_new               (void);

Returns : | a new file or `NULL`.