1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef MC__VFS_PATH_H
- #define MC__VFS_PATH_H
- /*** typedefs(not structures) and defined constants **********************************************/
- #define VFS_PATH_URL_DELIMITER "://"
- /*** enums ***************************************************************************************/
- typedef enum
- {
- VPF_NONE = 0,
- VPF_NO_CANON = 1 << 0,
- VPF_USE_DEPRECATED_PARSER = 1 << 1
- } vfs_path_flag_t;
- /*** structures declarations (and typedefs of structures)*****************************************/
- struct vfs_class;
- struct vfs_url_struct;
- typedef struct
- {
- GList *path;
- } vfs_path_t;
- typedef struct
- {
- char *user;
- char *password;
- char *host;
- gboolean ipv6;
- int port;
- char *path;
- struct vfs_class *class;
- char *encoding;
- char *vfs_prefix;
- struct
- {
- GIConv converter;
- DIR *info;
- } dir;
- } vfs_path_element_t;
- /*** global variables defined in .c file *********************************************************/
- /*** declarations of public functions ************************************************************/
- vfs_path_t *vfs_path_new (void);
- vfs_path_t *vfs_path_clone (const vfs_path_t * vpath);
- void vfs_path_remove_element_by_index (vfs_path_t * vpath, int element_index);
- void vfs_path_free (vfs_path_t * path);
- int vfs_path_elements_count (const vfs_path_t * path);
- char *vfs_path_to_str (const vfs_path_t * path);
- char *vfs_path_to_str_elements_count (const vfs_path_t * path, int elements_count);
- vfs_path_t *vfs_path_from_str (const char *path_str);
- vfs_path_t *vfs_path_from_str_flags (const char *path_str, vfs_path_flag_t flags);
- vfs_path_element_t *vfs_path_get_by_index (const vfs_path_t * path, int element_index);
- vfs_path_element_t *vfs_path_element_clone (const vfs_path_element_t * element);
- void vfs_path_element_free (vfs_path_element_t * element);
- struct vfs_class *vfs_prefix_to_class (const char *prefix);
- gboolean vfs_path_element_need_cleanup_converter (const vfs_path_element_t * element);
- char *vfs_path_serialize (const vfs_path_t * vpath, GError ** error);
- vfs_path_t *vfs_path_deserialize (const char *data, GError ** error);
- /*** inline functions ****************************************************************************/
- static inline gboolean
- vfs_path_element_valid (const vfs_path_element_t * element)
- {
- return (element != NULL && element->class != NULL);
- }
- #endif
|