## mate-vfs-method mate-vfs-method |

## Synopsis

    MateVFSMethod *    (*MateVFSMethodInitFunc)           (const char *method_name,
                                                             const char *config_args);
    void                (*MateVFSMethodShutdownFunc)       (MateVFSMethod *method);
    MateVFSResult      (*MateVFSMethodTruncateFunc)       (MateVFSMethod *method,
                                                             MateVFSURI *uri,
                                                             MateVFSFileSize length,
                                                             MateVFSContext *context);
    MateVFSResult      (*MateVFSMethodTruncateHandleFunc) (MateVFSMethod *method,
                                                             MateVFSMethodHandle *handle,
                                                             MateVFSFileSize length,
                                                             MateVFSContext *context);
    #define             VFS_METHOD_HAS_FUNC                 (method,
                                                             func)
    gboolean            mate_vfs_method_init               (void);
    MateVFSMethod *    mate_vfs_method_get                (const gchar *name);
    typedef             MateVFSTransform;
    MateVFSTransform * mate_vfs_transform_get             (const gchar *name);

## Description

## Details

### MateVFSMethodInitFunc ()

    MateVFSMethod *    (*MateVFSMethodInitFunc)           (const char *method_name,
                                                             const char *config_args);

`method_name` : |
`config_args` : |
Returns : |

### MateVFSMethodShutdownFunc ()

    void                (*MateVFSMethodShutdownFunc)       (MateVFSMethod *method);

`method` : |

### MateVFSMethodTruncateFunc ()

    MateVFSResult      (*MateVFSMethodTruncateFunc)       (MateVFSMethod *method,
                                                             MateVFSURI *uri,
                                                             MateVFSFileSize length,
                                                             MateVFSContext *context);

`method` : |
`uri` : |
`length` : |
`context` : |
Returns : |

### MateVFSMethodTruncateHandleFunc ()

    MateVFSResult      (*MateVFSMethodTruncateHandleFunc) (MateVFSMethod *method,
                                                             MateVFSMethodHandle *handle,
                                                             MateVFSFileSize length,
                                                             MateVFSContext *context);

`method` : |
`handle` : |
`length` : |
`context` : |
Returns : |

### VFS_METHOD_HAS_FUNC()

    #define VFS_METHOD_HAS_FUNC(method,func) ((((char *)&((method)->func)) - ((char *)(method)) < (method)->method_table_size) && method->func != NULL)

`method` : |
`func` : |

### mate_vfs_method_init ()

    gboolean            mate_vfs_method_init               (void);

Initializes the mate-vfs methods. If already initialized then will simply return `TRUE`.

Returns : | Returns `TRUE`.

### mate_vfs_method_get ()

    MateVFSMethod *    mate_vfs_method_get                (const gchar *name);

`name` : | name of the protocol.
Returns : | the method handle for the given protocol `name`. `name` could be any protocol which mate-vfs implements. Like ftp, http, smb etc..

### MateVFSTransform

    typedef struct MateVFSTransform MateVFSTransform;

### mate_vfs_transform_get ()

    MateVFSTransform * mate_vfs_transform_get             (const gchar *name);

Get the transform for the method `name`.

`name` : | name of the method to get the transform of.
Returns : | a MateVFSTransform handle for `name`.