<?xml version="1.0" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<refentry id="matevfs-constants">
  <refnamediv>
    <refname>matevfs Constants</refname>
    <refpurpose>the built-in constants of the matevfs module</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Synopsis</title>

    <programlisting>
      <xref linkend="matevfs-constants-directory-visit"  endterm="matevfs-constants-directory-visit-title"></xref>
      <xref linkend="matevfs-constants-file-flags"       endterm="matevfs-constants-file-flags-title"></xref>
      <xref linkend="matevfs-constants-fileinfo-fields"  endterm="matevfs-constants-fileinfo-fields-title"></xref>
      <xref linkend="matevfs-constants-file-permissions" endterm="matevfs-constants-file-permissions-title"></xref>
      <xref linkend="matevfs-constants-fileinfo-options" endterm="matevfs-constants-fileinfo-options-title"></xref>
      <xref linkend="matevfs-constants-fileinfo-setmask" endterm="matevfs-constants-fileinfo-setmask-title"></xref>
      <xref linkend="matevfs-constants-openmode"         endterm="matevfs-constants-openmode-title"></xref>
      <xref linkend="matevfs-constants-seekmode"         endterm="matevfs-constants-seekmode-title"></xref>
      <xref linkend="matevfs-constants-monitortype"      endterm="matevfs-constants-monitortype-title"></xref>
    </programlisting>
  </refsect1>

  <refsect1 id="matevfs-constants-description">
    <title>Description</title>

    <refsect2 id="matevfs-constants-directory-visit">
      <title id="matevfs-constants-directory-visit-title">matevfs Directory Visit Options</title>
      <para>These options control the way in which directories are visited.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.DIRECTORY_VISIT_DEFAULT</literal></term>
	  <listitem><simpara>The default directory visit mode.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.DIRECTORY_VISIT_SAMEFS</literal></term>
	  <listitem><simpara>Visit only directories on the same file system as the parent.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.DIRECTORY_VISIT_LOOPCHECK</literal></term>
	  <listitem><simpara>Prevent a loop if it would be caused (e.g. by following a symbolic link).</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-file-flags">
      <title id="matevfs-constants-file-flags-title">matevfs File Flags</title>
      <para>Special flags that a <link linkend="class-matevfs-fileinfo">matevfs.FileInfo</link> object can have.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.FILE_FLAGS_NONE</literal></term>
	  <listitem><simpara>No flags.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_FLAGS_SYMLINK</literal></term>
	  <listitem><simpara>Whether the file is a symbolic link.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_FLAGS_LOCAL</literal></term>
	  <listitem><simpara>Whether the file is on a local filesystem.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-fileinfo-fields">
      <title id="matevfs-constants-fileinfo-fields-title">matevfs FileInfo Fields</title>
      <para>Flags indicating what fields in a <link linkend="class-matevfs-fileinfo">matevfs.FileInfo</link> object are valid.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_NONE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_TYPE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_PERMISSIONS</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_FLAGS</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_DEVICE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_INODE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_LINK_COUNT</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_SIZE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_BLOCK_COUNT</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_IO_BLOCK_SIZE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_ATIME</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_MTIME</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_CTIME</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_SYMLINK_NAME</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FIELDS_MIME_TYPE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-file-permissions">
      <title id="matevfs-constants-file-permissions-title">matevfs File Permissions</title>
      <para>File permissions.  These are essentially the same as the unix permissions field.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.PERM_SUID</literal></term>
	  <listitem><simpara>Set UID on access.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_SGID</literal></term>
	  <listitem><simpara>Set GID on access.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_STICKY</literal></term>
	  <listitem><simpara>Sticky.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_USER_READ</literal></term>
	  <listitem><simpara>Owner has read permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_USER_WRITE</literal></term>
	  <listitem><simpara>Owner has write permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_USER_EXEC</literal></term>
	  <listitem><simpara>Owner has execution permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_USER_ALL</literal></term>
	  <listitem><simpara>Owner has all permissions.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_GROUP_READ</literal></term>
	  <listitem><simpara>Group has read permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_GROUP_WRITE</literal></term>
	  <listitem><simpara>Group has write permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_GROUP_EXEC</literal></term>
	  <listitem><simpara>Group has execution permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_GROUP_ALL</literal></term>
	  <listitem><simpara>Group has all permissions.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_OTHER_READ</literal></term>
	  <listitem><simpara>Others have read permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_OTHER_WRITE</literal></term>
	  <listitem><simpara>Others have write permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_OTHER_EXEC</literal></term>
	  <listitem><simpara>Others have execution permission.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.PERM_OTHER_ALL</literal></term>
	  <listitem><simpara>Others have all permissions.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-fileinfo-options">
      <title id="matevfs-constants-fileinfo-options-title">matevfs FileInfo Options</title>
      <para>These options affect the way file information is retrieved.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_DEFAULT</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_GET_MIME_TYPE</literal></term>
	  <listitem><simpara>Detect the MIME type.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FORCE_FAST_MIME_TYPE</literal></term>
	  <listitem><simpara>Only use fast MIME type detection (file extensions).</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FORCE_SLOW_MIME_TYPE</literal></term>
	  <listitem><simpara>Force slow MIME type detection where available (sniffing, algorithmic detection, etc).</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.FILE_INFO_FOLLOW_LINKS</literal></term>
	  <listitem><simpara>Automatically follow symbolic links and retrieve the properties of their target (recommended).</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-fileinfo-setmask">
      <title id="matevfs-constants-fileinfo-setmask-title">matevfs FileInfo Set Mask</title>
      <para>These options affect which file aspects are changed in the <link linkend="">set_file_info</link> method.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.SET_FILE_INFO_NONE</literal></term>
	  <listitem><simpara>Don't set any file info fields.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SET_FILE_INFO_NAME</literal></term>
	  <listitem><simpara>Change the name.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SET_FILE_INFO_PERMISSIONS</literal></term>
	  <listitem><simpara>Change the permissions.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SET_FILE_INFO_OWNER</literal></term>
	  <listitem><simpara>Change the file's owner.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SET_FILE_INFO_TIME</literal></term>
	  <listitem><simpara>Change the file's time stamp(s).</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-openmode">
      <title id="matevfs-constants-openmode-title">matevfs Open Mode Constants</title>
      <para>These options affect how files are opened.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.OPEN_NONE</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.OPEN_READ</literal></term>
	  <listitem><simpara>Open the file for reading.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.OPEN_WRITE</literal></term>
	  <listitem><simpara>Open the file for writing.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.OPEN_RANDOM</literal></term>
	  <listitem><simpara>Allow random access on the file.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.OPEN_TRUNCATE</literal></term>
	  <listitem><simpara>Truncate the file.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-seekmode">
      <title id="matevfs-constants-seekmode-title">matevfs Seek Constants</title>
      <para>These constants are used to specify the start position for seek operations.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.SEEK_START</literal></term>
	  <listitem><simpara>The start of the file.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SEEK_CURRENT</literal></term>
	  <listitem><simpara>The current position in the file.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.SEEK_END</literal></term>
	  <listitem><simpara>The end of the file.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-monitortype">
      <title id="matevfs-constants-monitortype-title">matevfs Monitor Type Constants</title>
      <para>The type of resources that can be monitored.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_FILE</literal></term>
	  <listitem><simpara>Monitor a file.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_DIRECTORY</literal></term>
	  <listitem><simpara>Monitor a directory.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="matevfs-constants-monitorevents">
      <title id="matevfs-constants-monitorevents-title">matevfs Monitor Events</title>
      <para>Types of events that can be recieved from a monitor.</para>
      <variablelist>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_CHANGED</literal></term>
	  <listitem><simpara>File data was changed.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_DELETED</literal></term>
	  <listitem><simpara>File was deleted.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_STARTEXECUTING</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_STOPEXECUTING</literal></term>
	  <listitem><simpara></simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_CREATED</literal></term>
	  <listitem><simpara>File was created.</simpara></listitem>
	</varlistentry>
        <varlistentry>
	  <term><literal>matevfs.MONITOR_EVENT_METADATA_CHANGED</literal></term>
	  <listitem><simpara>File's metadata was changed.</simpara></listitem>
	</varlistentry>
      </variablelist>
    </refsect2>
  </refsect1>
</refentry>
