## memory

memory —

## Synopsis

    struct      GsfInputMemory;
    GsfInputMemory* gsf_input_mmap_new          (char const *filename,
                                                 GError **err);
    GsfInputMemory* gsf_input_memory_new        (guint8 const *buf,
                                                 gsf_off_t length,
                                                 gboolean needs_free);
    GsfInputMemory* gsf_input_memory_new_clone  (guint8 const *buf,
                                                 gsf_off_t length);
    GsfInputMemory* gsf_input_memory_new_from_iochannel
                                                (GIOChannel *channel,
                                                 GError **error);
    struct      GsfOutputMemory;
    const guint8* gsf_output_memory_get_bytes   (GsfOutputMemory *mem);
    GType       gsf_output_memory_get_type      (void);
    GsfOutputMemory* gsf_output_memory_new      (void);
    struct      GsfSharedMemory;
    GsfSharedMemory* gsf_shared_memory_new      (void *buf,
                                                 gsf_off_t size,
                                                 gboolean needs_free);
    GsfSharedMemory* gsf_shared_memory_mmapped_new
                                                (void *buf,
                                                 gsf_off_t size);

## Object Hierarchy

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

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

      GObject
       +----GsfSharedMemory

## Description

## Details

### struct GsfInputMemory

    struct GsfInputMemory;

### gsf_input_mmap_new ()

    GsfInputMemory* 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 ()

    GsfInputMemory* 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 ()

    GsfInputMemory* 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 ()

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

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

### struct GsfOutputMemory

    struct 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_get_type ()

    GType       gsf_output_memory_get_type      (void);

Returns : |

### gsf_output_memory_new ()

    GsfOutputMemory* gsf_output_memory_new      (void);

Returns : | a new file or NULL.

### struct GsfSharedMemory

    struct GsfSharedMemory;

### gsf_shared_memory_new ()

    GsfSharedMemory* gsf_shared_memory_new      (void *buf,
                                                 gsf_off_t size,
                                                 gboolean needs_free);

`buf` : |
`size` : |
`needs_free` : |
Returns : |

### gsf_shared_memory_mmapped_new ()

    GsfSharedMemory* gsf_shared_memory_mmapped_new
                                                (void *buf,
                                                 gsf_off_t size);

`buf` : |
`size` : |
Returns : |