<Type Name="FilePosition" FullName="Mono.Unix.Native.FilePosition">
  <TypeSignature Language="C#" Value="public sealed class FilePosition : MarshalByRefObject, IDisposable, IEquatable&lt;Mono.Unix.Native.FilePosition&gt;" />
  <AssemblyInfo>
    <AssemblyName>Mono.Posix</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>
  All public static members of this type are safe for multithreaded operations. 
  No instance members are guaranteed to be thread safe.
  </ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.MarshalByRefObject</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.IEquatable&lt;Mono.Unix.Native.FilePosition&gt;</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public FilePosition ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <summary>Constructs and initializes a file position instance.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="public void Dispose ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Frees the wrapped <c>fpos_t</c> instance.</summary>
        <remarks>This method should be called whenever a <c>FilePosition</c>
        is no longer needed.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Equality">
      <MemberSignature Language="C#" Value="public static bool op_Equality (Mono.Unix.Native.FilePosition lhs, Mono.Unix.Native.FilePosition rhs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="lhs" Type="Mono.Unix.Native.FilePosition" />
        <Parameter Name="rhs" Type="Mono.Unix.Native.FilePosition" />
      </Parameters>
      <Docs>
        <param name="lhs">To be added.</param>
        <param name="rhs">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Inequality">
      <MemberSignature Language="C#" Value="public static bool op_Inequality (Mono.Unix.Native.FilePosition lhs, Mono.Unix.Native.FilePosition rhs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="lhs" Type="Mono.Unix.Native.FilePosition" />
        <Parameter Name="rhs" Type="Mono.Unix.Native.FilePosition" />
      </Parameters>
      <Docs>
        <param name="lhs">To be added.</param>
        <param name="rhs">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public bool Equals (Mono.Unix.Native.FilePosition value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="Mono.Unix.Native.FilePosition" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="obj" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="obj">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="~FilePosition ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ToString">
      <MemberSignature Language="C#" Value="public override string ToString ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>A wrapper for the platform-specific <paramref name="fpos_t" />.</summary>
    <remarks>
      <para>
        <c>FilePosition</c> is an alternate mechanism for specifying a
    location within a file, which can take into account text vs. binary
    <c>FILE</c> stream differences.  It exists to support platforms for which
    file positions can exceed the size of <see langword="long" />.</para>
      <para>
        <c>FilePosition</c> wraps unmanaged memory.  It contains a finalizer
    to free this memory, but using <see cref="M:Mono.Unix.Native.FilePosition.Dispose" /> is highly recommended to avoid
    additional GC pressure.</para>
    </remarks>
    <altmember cref="M:Mono.Unix.StdioFileStream.RestoreFilePosition" />
    <altmember cref="M:Mono.Unix.StdioFileStream.SaveFilePosition" />
    <altmember cref="M:Mono.Unix.Native.Stdlib.fgetpos" />
    <altmember cref="M:Mono.Unix.Native.Stdlib.fsetpos" />
  </Docs>
</Type>
