<Type Name="UnixPipes" FullName="Mono.Unix.UnixPipes">
  <TypeSignature Language="C#" Value="public struct UnixPipes : IEquatable&lt;Mono.Unix.UnixPipes&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.ValueType</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IEquatable&lt;Mono.Unix.UnixPipes&gt;</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public UnixPipes (Mono.Unix.UnixStream reading, Mono.Unix.UnixStream writing);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="reading" Type="Mono.Unix.UnixStream" />
        <Parameter Name="writing" Type="Mono.Unix.UnixStream" />
      </Parameters>
      <Docs>
        <param name="reading">
          A <see cref="T:Mono.Unix.UnixStream" /> that permits reading.  
          Data written to <paramref name="writing" /> can be read from 
          <paramref name="reading" />.
        </param>
        <param name="writing">
          A <see cref="T:Mono.Unix.UnixStream" /> that permits writing.  
          Data written to <paramref name="writing" /> can be read from 
          <paramref name="reading" />.
        </param>
        <summary>
          Constructs and initializes a new instance of the 
          <see cref="T:Mono.Unix.UnixPipes" /> class using the specified
          <paramref name="reading" /> and <paramref name="writing" /> streams.
        </summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Reading">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Reading;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          A <see cref="T:Mono.Unix.UnixStream" /> instance that reads any data
          written to the <see cref="F:Mono.Unix.UnixPipes.Writing" /> stream.
        </summary>
        <remarks>
          <para>
            A pipe that has had an end closed is considered widowed.  
            Writing on such a pipe causes the writing process to receive a 
            <see cref="F:Mono.Unix.Native.Signum.SIGPIPE" /> signal.
            Widowing a pipe is the only way to deliver end-of-file to a reader: 
            after the reader consumes any buffered data, reading a widowed 
            pipe returns a zero count.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Writing">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Writing;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          A <see cref="T:Mono.Unix.UnixStream" /> instance that, when written
          to, makes all data available for reading from the
          <see cref="F:Mono.Unix.UnixPipes.Reading" /> stream.
        </summary>
        <remarks>
          <para>
            A pipe that has had an end closed is considered widowed.  
            Writing on such a pipe causes the writing process to receive a 
            <see cref="F:Mono.Unix.Native.Signum.SIGPIPE" /> signal.
            Widowing a pipe is the only way to deliver end-of-file to a reader: 
            after the reader consumes any buffered data, reading a widowed 
            pipe returns a zero count.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="CreatePipes">
      <MemberSignature Language="C#" Value="public static Mono.Unix.UnixPipes CreatePipes ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixPipes</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Creates a Unix pipe for interprocess communication.</summary>
        <exception cref="Mono.Unix.UnixIOException">
          <para>
            Too many descriptors are active.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>
            The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>
          A <see cref="T:Mono.Unix.UnixPipes" /> instance containing the "read
          end" (<see cref="F:Mono.Unix.UnixPipes.Reading" />)
          and the "write end" (<see cref="F:Mono.Unix.UnixPipes.Writing" />)
          of the pipe.
        </returns>
        <remarks>
          <para>
            This method creates a Unix pipe, an object which allows
            bidirectional data flow through a pair of 
            <see cref="T:Mono.Unix.UnixStream" /> instances.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public bool Equals (Mono.Unix.UnixPipes value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="Mono.Unix.UnixPipes" />
      </Parameters>
      <Docs>
        <param name="value">
          A <see cref="T:System.Object" /> to compare the current instance
          against.
        </param>
        <summary>
          Determines whether the current instance and the specified object
          have the same value.
        </summary>
        <returns>
          <see langword="true" /> if <paramref name="obj" /> is a 
          <see cref="T:Mono.Unix.UnixPipes" /> instance and the file
          descriptors for its
          <see cref="F:Mono.Unix.UnixPipes.Reading" /> and
          <see cref="F:Mono.Unix.UnixPipes.Writing" /> match; otherwise, 
          <see langword="false" />.
        </returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Equality">
      <MemberSignature Language="C#" Value="public static bool op_Equality (Mono.Unix.UnixPipes lhs, Mono.Unix.UnixPipes rhs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="lhs" Type="Mono.Unix.UnixPipes" />
        <Parameter Name="rhs" Type="Mono.Unix.UnixPipes" />
      </Parameters>
      <Docs>
        <param name="lhs">
          The first <see cref="T:Mono.Unix.UnixPipes" /> to compare.
        </param>
        <param name="rhs">
          The second <see cref="T:Mono.Unix.UnixPipes" /> to compare.
        </param>
        <summary>
          Returns a <see cref="T:System.Boolean" /> value indicating whether
          the two specified <see cref="T:Mono.Unix.UnixPipes" /> values are
          equal to each other.
        </summary>
        <returns>
          <see langword="true" /> if <paramref name="lhs" /> and 
          <paramref name="rhs" /> represent the same 
          <see cref="T:Mono.Unix.UnixPipes" /> value; otherwise,
          <see langword="false" /></returns>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.UnixPipes.Equals" />
      </Docs>
    </Member>
    <Member MemberName="op_Inequality">
      <MemberSignature Language="C#" Value="public static bool op_Inequality (Mono.Unix.UnixPipes lhs, Mono.Unix.UnixPipes rhs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="lhs" Type="Mono.Unix.UnixPipes" />
        <Parameter Name="rhs" Type="Mono.Unix.UnixPipes" />
      </Parameters>
      <Docs>
        <param name="lhs">
          The first <see cref="T:Mono.Unix.UnixPipes" /> to compare.
        </param>
        <param name="rhs">
          The second <see cref="T:Mono.Unix.UnixPipes" /> to compare.
        </param>
        <summary>
          Returns a <see cref="T:System.Boolean" /> value indicating whether
          the two specified <see cref="T:Mono.Unix.UnixPipes" /> values are
          not equal to each other.
        </summary>
        <returns>
          <see langword="true" /> if <paramref name="lhs" /> and 
          <paramref name="rhs" /> do not represent the same 
          <see cref="T:Mono.Unix.UnixPipes" /> value; otherwise,
          <see langword="false" /></returns>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.UnixPipes.Equals" />
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public override bool Equals (object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </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="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>
  </Members>
  <Docs>
    <summary>Provides information about a Unix pipe.</summary>
    <remarks>
      <para>
        A Unix <i>pipe</i> is an object allowing bidirectional data flow
        through a pair of <see cref="T:Mono.Unix.UnixStream" />s.
      </para>
      <para>
        <see cref="F:Mono.Unix.UnixPipes.Reading" /> is the <i>read end</i> 
        of the pipe, while <see cref="F:Mono.Unix.UnixPipes.Writing" /> is the
        <i>write end</i> of the pipe.  Data written to 
        <see cref="F:Mono.Unix.UnixPipes.Writing" /> can be read through 
        <see cref="F:Mono.Unix.UnixPipes.Reading" />.
        This allows the output of one program to be sent to another
        program: the source's standard output is set up to be the write
        end of the pipe, and the sink's standard input is set up to be the
        read end of the pipe.
      </para>
      <para>
        The pipe persists until 
        <see cref="F:Mono.Unix.UnixPipes.Reading" /> and
        <see cref="F:Mono.Unix.UnixPipes.Writing" /> are closed.
      </para>
      <para>
        A pipe that has had an end closed is considered widowed.  
        Writing on such a pipe causes the writing process to receive a 
        <see cref="F:Mono.Unix.Native.Signum.SIGPIPE" /> signal.
        Widowing a pipe is the only way to deliver end-of-file to a reader: 
        after the reader consumes any buffered data, reading a widowed 
        pipe returns a zero count.
      </para>
    </remarks>
  </Docs>
</Type>
