memory
3
GSF Library

# 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);
    GType       gsf_output_memory_get_type      (void);
    GsfOutput*  gsf_output_memory_new           (void);
                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

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

    GType       gsf_output_memory_get_type      (void);

Returns :

### gsf_output_memory_new ()

    GsfOutput*  gsf_output_memory_new           (void);

Returns :

  a new file or NULL.

### GsfSharedMemory

    typedef struct _GsfSharedMemory 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 :