CamelStreamVFS
3
CAMEL Library

# CamelStreamVFS

## Synopsis

                        CamelStreamVFS;
    enum                CamelStreamVFSOpenMethod;
    CamelStream *       camel_stream_vfs_new_with_uri       (const gchar *uri,
                                                             CamelStreamVFSOpenMethod mode);
    CamelStream *       camel_stream_vfs_new_with_stream    (GObject *stream);
    gboolean            camel_stream_vfs_is_writable        (CamelStreamVFS *stream_vfs);

## Description

## Details

### CamelStreamVFS

    typedef struct {
    	CamelStream parent_object;

    	GObject *stream;
    } CamelStreamVFS;

### enum CamelStreamVFSOpenMethod

    typedef enum {
    	CAMEL_STREAM_VFS_CREATE,	/* writable, creates new file or replaces old file */
    	CAMEL_STREAM_VFS_APPEND,	/* writable, creates new file or appends at the end of the old file */
    	CAMEL_STREAM_VFS_READ		/* readable, opens existing file for reading */
    } CamelStreamVFSOpenMethod;

### camel_stream_vfs_new_with_uri ()

    CamelStream *       camel_stream_vfs_new_with_uri       (const gchar *uri,
                                                             CamelStreamVFSOpenMethod mode);

Creates a new CamelStreamVFS corresponding to the named file and mode.

`uri` :

  a file uri

`mode` :

  opening mode for the uri file

Returns :

  the new stream, or `NULL` on error.

### camel_stream_vfs_new_with_stream ()

    CamelStream *       camel_stream_vfs_new_with_stream    (GObject *stream);

Creates a new fs stream using the given gio stream `stream` as the backing store. When the stream is destroyed, the file descriptor will be closed. This will not increase reference counter on the stream.

`stream` :

  a GInputStream or GOutputStream instance

Returns :

  a new CamelStreamVFS

### camel_stream_vfs_is_writable ()

    gboolean            camel_stream_vfs_is_writable        (CamelStreamVFS *stream_vfs);

`stream_vfs` :

  a CamelStreamVFS instance

Returns :

  whether is the underlying stream writable or not.