<Type Name="Worker" FullName="Mono.WebServer.Worker">
  <TypeSignature Language="C#" Value="public abstract class Worker" />
  <AssemblyInfo>
    <AssemblyName>Mono.WebServer2</AssemblyName>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>This abstract is used for running implementation specific requests.</summary>
    <remarks></remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Worker ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Close">
      <MemberSignature Language="C#" Value="public abstract void Close ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Closes the current instance and releases the resources associated with the data transfer.</summary>
        <remarks></remarks>
      </Docs>
    </Member>
    <Member MemberName="Flush">
      <MemberSignature Language="C#" Value="public abstract void Flush ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Causes all response data to be written.</summary>
        <remarks></remarks>
      </Docs>
    </Member>
    <Member MemberName="GetRemainingReuses">
      <MemberSignature Language="C#" Value="public virtual int GetRemainingReuses ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Gets the number of times the current instance can be reused by the server.</summary>
        <returns>number of times the current instance can be reused by the server.</returns>
        <remarks>If less than or equal to zero, the current instance should not be reused and the resources associated with it should be freed.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IsAsync">
      <MemberSignature Language="C#" Value="public virtual bool IsAsync { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets whether or not the current instance is asynchronous.</summary>
        <value>A <see langword="bool" /> indicating whether or not the current instance is asynchronous.</value>
        <remarks>This property indicates whether or not a call to <see cref="M:Mono.WebServer.Worker.Run" /> will spawn its own worker thread. 
<see langword="false" /> indicates that the entire process will be completed in a single thread during the duration of
<see cref="M:Mono.WebServer.Worker.Run" />.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="IsConnected">
      <MemberSignature Language="C#" Value="public abstract bool IsConnected ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Gets whether or not the current instance is connected.</summary>
        <returns>A <see langword="bool" /> indicating whether or not the current instance is connected.</returns>
        <remarks></remarks>
      </Docs>
    </Member>
    <Member MemberName="Read">
      <MemberSignature Language="C#" Value="public abstract int Read (byte[] buffer, int position, int size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="buffer" Type="System.Byte[]" />
        <Parameter Name="position" Type="System.Int32" />
        <Parameter Name="size" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="buffer">An array to be populated with the read data.</param>
        <param name="position">position in <paramref name="buffer" /> at which to start storing the read data.</param>
        <param name="size">number of bytes to read.</param>
        <summary>Reads a block of request data from the current implementation.</summary>
        <returns>number of bytes that were actually read.</returns>
        <remarks></remarks>
      </Docs>
    </Member>
    <Member MemberName="Run">
      <MemberSignature Language="C#" Value="public abstract void Run (object state);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="state" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="state">state information from the worker that evoked the method. Always <see langref="null" />.</param>
        <summary>Runs the current instance.</summary>
        <remarks>If the entire process of running the request is done in the method, <see cref="M:Mono.WebServer.Worker.IsAsync" /> should be set to 
<see langword="false" />. If, however, the method invokes an asynchronous or threaded call, like <see cref="M:System.Net.Sockets.Socket.BeginReceive"/>, 
<see cref="P:Mono.WebServer.Worker.IsAsync" /> should be set to <see langword="true" />.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetReuseCount">
      <MemberSignature Language="C#" Value="public virtual void SetReuseCount (int reuses);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reuses" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="reuses">number of times the current instance has been reused.</param>
        <summary>Sets the number of times the current instance has been reused by the server.</summary>
        <remarks></remarks>
      </Docs>
    </Member>
    <Member MemberName="Write">
      <MemberSignature Language="C#" Value="public abstract void Write (byte[] buffer, int position, int size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="buffer" Type="System.Byte[]" />
        <Parameter Name="position" Type="System.Int32" />
        <Parameter Name="size" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="buffer">data to write</param>
        <param name="position">position in <paramref name="buffer" /> from which to start writing.</param>
        <param name="size">number of bytes to write.</param>
        <summary>Writes a block of response data from the current implementation.</summary>
        <remarks></remarks>
      </Docs>
    </Member>
  </Members>
</Type>
