Basic Types

## Basic Types Basic Types — |

## Synopsis

    #include <thunar-vfs/thunar-vfs.h>

    enum        ThunarVfsFileType;
    enum        ThunarVfsFileMode;
    enum        ThunarVfsFileFlags;
    enum        ThunarVfsFileHint;
    typedef     ThunarVfsFileDevice;
    typedef     ThunarVfsFileInode;
    typedef     ThunarVfsFileSize;
    typedef     ThunarVfsFileTime;
    typedef     ThunarVfsGroupId;
    typedef     ThunarVfsUserId;

## Description

## Details

### enum ThunarVfsFileType

    typedef enum {
      THUNAR_VFS_FILE_TYPE_SOCKET     = 0140000 >> 12,
      THUNAR_VFS_FILE_TYPE_SYMLINK    = 0120000 >> 12,
      THUNAR_VFS_FILE_TYPE_REGULAR    = 0100000 >> 12,
      THUNAR_VFS_FILE_TYPE_BLOCKDEV   = 0060000 >> 12,
      THUNAR_VFS_FILE_TYPE_DIRECTORY  = 0040000 >> 12,
      THUNAR_VFS_FILE_TYPE_CHARDEV    = 0020000 >> 12,
      THUNAR_VFS_FILE_TYPE_FIFO       = 0010000 >> 12,
      THUNAR_VFS_FILE_TYPE_UNKNOWN    = 0000000 >> 12,
    } ThunarVfsFileType;

Describes the type of a file.

`THUNAR_VFS_FILE_TYPE_SOCKET` | A unix domain socket.
`THUNAR_VFS_FILE_TYPE_SYMLINK` | A broken symlink, for which the target does not exist (if the target would exist, the ThunarVfsInfo object would have the type of the target).
`THUNAR_VFS_FILE_TYPE_REGULAR` | A regular file.
`THUNAR_VFS_FILE_TYPE_BLOCKDEV` | A block device node.
`THUNAR_VFS_FILE_TYPE_DIRECTORY` | A directory node.
`THUNAR_VFS_FILE_TYPE_CHARDEV` | A character device node.
`THUNAR_VFS_FILE_TYPE_FIFO` | A named FIFO.
`THUNAR_VFS_FILE_TYPE_UNKNOWN` |

### enum ThunarVfsFileMode

    typedef enum { /*< flags >*/
      THUNAR_VFS_FILE_MODE_SUID       = 04000,
      THUNAR_VFS_FILE_MODE_SGID       = 02000,
      THUNAR_VFS_FILE_MODE_STICKY     = 01000,
      THUNAR_VFS_FILE_MODE_USR_ALL    = 00700,
      THUNAR_VFS_FILE_MODE_USR_READ   = 00400,
      THUNAR_VFS_FILE_MODE_USR_WRITE  = 00200,
      THUNAR_VFS_FILE_MODE_USR_EXEC   = 00100,
      THUNAR_VFS_FILE_MODE_GRP_ALL    = 00070,
      THUNAR_VFS_FILE_MODE_GRP_READ   = 00040,
      THUNAR_VFS_FILE_MODE_GRP_WRITE  = 00020,
      THUNAR_VFS_FILE_MODE_GRP_EXEC   = 00010,
      THUNAR_VFS_FILE_MODE_OTH_ALL    = 00007,
      THUNAR_VFS_FILE_MODE_OTH_READ   = 00004,
      THUNAR_VFS_FILE_MODE_OTH_WRITE  = 00002,
      THUNAR_VFS_FILE_MODE_OTH_EXEC   = 00001,
    } ThunarVfsFileMode;

Special flags and permissions of a filesystem entity.

`THUNAR_VFS_FILE_MODE_SUID` | SUID bit.
`THUNAR_VFS_FILE_MODE_SGID` | SGID bit.
`THUNAR_VFS_FILE_MODE_STICKY` | Sticky bit.
`THUNAR_VFS_FILE_MODE_USR_ALL` | Owner can do everything.
`THUNAR_VFS_FILE_MODE_USR_READ` | Owner can read the file.
`THUNAR_VFS_FILE_MODE_USR_WRITE` | Owner can write the file.
`THUNAR_VFS_FILE_MODE_USR_EXEC` | Owner can execute the file.
`THUNAR_VFS_FILE_MODE_GRP_ALL` | Owner group can do everything.
`THUNAR_VFS_FILE_MODE_GRP_READ` | Owner group can read the file.
`THUNAR_VFS_FILE_MODE_GRP_WRITE` | Owner group can write the file.
`THUNAR_VFS_FILE_MODE_GRP_EXEC` | Owner group can execute the file.
`THUNAR_VFS_FILE_MODE_OTH_ALL` | Others can do everything.
`THUNAR_VFS_FILE_MODE_OTH_READ` | Others can read the file.
`THUNAR_VFS_FILE_MODE_OTH_WRITE` | Others can write the file.
`THUNAR_VFS_FILE_MODE_OTH_EXEC` | Others can execute the file.

### enum ThunarVfsFileFlags

    typedef enum { /*< flags >*/
      THUNAR_VFS_FILE_FLAGS_NONE       = 0,
      THUNAR_VFS_FILE_FLAGS_SYMLINK    = 1L << 0,
      THUNAR_VFS_FILE_FLAGS_EXECUTABLE = 1L << 1,
    } ThunarVfsFileFlags;

Flags providing additional information about the file system entity.

`THUNAR_VFS_FILE_FLAGS_NONE` | No additional information available.
`THUNAR_VFS_FILE_FLAGS_SYMLINK` | The file is a symlink. Whether or not the info fields refer to the symlink itself or the linked file, depends on whether the symlink is broken or not.
`THUNAR_VFS_FILE_FLAGS_EXECUTABLE` | The file can most probably be executed by #`thunar_vfs_info_execute()`.

### enum ThunarVfsFileHint

    typedef enum {
      THUNAR_VFS_FILE_HINT_ICON,
      THUNAR_VFS_FILE_N_HINTS,
    } ThunarVfsFileHint;

Additional hints that may be provided by the file system backend.

You can use `thunar_vfs_info_get_hint()` to query hints from a ThunarVfsInfo.

`THUNAR_VFS_FILE_HINT_ICON` | The name of an icon or the path to an image file, which should be used to represent the file (e.g. the Icon entry specified in a .desktop file).
`THUNAR_VFS_FILE_N_HINTS` |

### ThunarVfsFileDevice

    typedef dev_t ThunarVfsFileDevice;

### ThunarVfsFileInode

    typedef ino_t ThunarVfsFileInode;

### ThunarVfsFileSize

    typedef off_t ThunarVfsFileSize;

### ThunarVfsFileTime

    typedef time_t ThunarVfsFileTime;

### ThunarVfsGroupId

    typedef gid_t ThunarVfsGroupId;

### ThunarVfsUserId

    typedef uid_t ThunarVfsUserId;