## CamelStreamVFS CamelStreamVFS |

## Synopsis

                        CamelStreamVFS;
    enum                CamelStreamVFSOpenMethod;
    CamelStream*        camel_stream_vfs_new_with_uri       (const char *uri,
                                                             CamelStreamVFSOpenMethod method);
    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 char *uri,
                                                             CamelStreamVFSOpenMethod method);

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

`uri` : | a file uri
`method` : |
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.