Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 77f0c8b2568c8ba86bf4498d38e7ecdc > files > 799

ghc-base-devel-4.2.0.2-8.6.fc14.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>GHC.IO.Buffer</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_GHC-IO-Buffer.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>base-4.2.0.2: Basic libraries</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>GHC.IO.Buffer</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (GHC Extensions)</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>internal</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>cvs-ghc@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Buffers of any element
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Creation
</A
></DT
><DT
><A HREF="#3"
>Insertion/removal
</A
></DT
><DT
><A HREF="#4"
>Inspecting
</A
></DT
><DT
><A HREF="#5"
>Operating on the raw buffer as a Ptr
</A
></DT
><DT
><A HREF="#6"
>Assertions
</A
></DT
></DL
></DD
><DT
><A HREF="#7"
>Raw buffers
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>Buffers used in the IO system
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABuffer"
>Buffer</A
> e = <A HREF="#v%3ABuffer"
>Buffer</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbufRaw"
>bufRaw</A
> :: !(<A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbufState"
>bufState</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbufSize"
>bufSize</A
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbufL"
>bufL</A
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbufR"
>bufR</A
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABufferState"
>BufferState</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AReadBuffer"
>ReadBuffer</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AWriteBuffer"
>WriteBuffer</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ACharBuffer"
>CharBuffer</A
> = <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ACharBufElem"
>CharBufElem</A
> = <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewByteBuffer"
>newByteBuffer</A
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewCharBuffer"
>newCharBuffer</A
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBuffer"
>CharBuffer</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewBuffer"
>newBuffer</A
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyBuffer"
>emptyBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferRemove"
>bufferRemove</A
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferAdd"
>bufferAdd</A
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AslideContents"
>slideContents</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferAdjustL"
>bufferAdjustL</A
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisEmptyBuffer"
>isEmptyBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisFullBuffer"
>isFullBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisFullCharBuffer"
>isFullCharBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisWriteBuffer"
>isWriteBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferElems"
>bufferElems</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferAvailable"
>bufferAvailable</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsummaryBuffer"
>summaryBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> a -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithBuffer"
>withBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> e -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithRawBuffer"
>withRawBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e -&gt; (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> e -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckBuffer"
>checkBuffer</A
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ARawBuffer"
>RawBuffer</A
> e = <A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadWord8Buf"
>readWord8Buf</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteWord8Buf"
>writeWord8Buf</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ARawCharBuffer"
>RawCharBuffer</A
> = <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApeekCharBuf"
>peekCharBuf</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadCharBuf"
>readCharBuf</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Char.html#t%3AChar"
>Char</A
>, <A HREF="Data-Int.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteCharBuf"
>writeCharBuf</A
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Char.html#t%3AChar"
>Char</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadCharBufPtr"
>readCharBufPtr</A
> :: <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Char.html#t%3AChar"
>Char</A
>, <A HREF="Data-Int.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteCharBufPtr"
>writeCharBufPtr</A
> :: <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Char.html#t%3AChar"
>Char</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcharSize"
>charSize</A
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Buffers of any element
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Buffer"
><A NAME="t%3ABuffer"
></A
></A
><B
>Buffer</B
> e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A mutable array of bytes that can be passed to foreign functions.
</P
><P
>The buffer is represented by a record, where the record contains
 the raw buffer and the start/end points of the filled portion.  The
 buffer contents itself is mutable, but the rest of the record is
 immutable.  This is a slightly odd mix, but it turns out to be
 quite practical: by making all the buffer metadata immutable, we
 can have operations on buffer metadata outside of the IO monad.
</P
><P
>The <A HREF="live.html"
>live</A
> elements of the buffer are those between the <TT
><A HREF="GHC-IO-Buffer.html#v%3AbufL"
>bufL</A
></TT
> and
 <TT
><A HREF="GHC-IO-Buffer.html#v%3AbufR"
>bufR</A
></TT
> offsets.  In an empty buffer, <TT
><A HREF="GHC-IO-Buffer.html#v%3AbufL"
>bufL</A
></TT
> is equal to <TT
><A HREF="GHC-IO-Buffer.html#v%3AbufR"
>bufR</A
></TT
>, but
 they might not be zero: for exmaple, the buffer might correspond to
 a memory-mapped file and in which case <TT
><A HREF="GHC-IO-Buffer.html#v%3AbufL"
>bufL</A
></TT
> will point to the
 next location to be written, which is not necessarily the beginning
 of the file.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Buffer"
><A NAME="v%3ABuffer"
></A
></A
><B
>Buffer</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:bufRaw"
><A NAME="v%3AbufRaw"
></A
></A
><B
>bufRaw</B
> :: !(<A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:bufState"
><A NAME="v%3AbufState"
></A
></A
><B
>bufState</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:bufSize"
><A NAME="v%3AbufSize"
></A
></A
><B
>bufSize</B
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:bufL"
><A NAME="v%3AbufL"
></A
></A
><B
>bufL</B
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:bufR"
><A NAME="v%3AbufR"
></A
></A
><B
>bufR</B
> :: !<A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BufferState"
><A NAME="t%3ABufferState"
></A
></A
><B
>BufferState</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ReadBuffer"
><A NAME="v%3AReadBuffer"
></A
></A
><B
>ReadBuffer</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:WriteBuffer"
><A NAME="v%3AWriteBuffer"
></A
></A
><B
>WriteBuffer</B
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:BufferState')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:BufferState" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:CharBuffer"
><A NAME="t%3ACharBuffer"
></A
></A
><B
>CharBuffer</B
> = <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:CharBufElem"
><A NAME="t%3ACharBufElem"
></A
></A
><B
>CharBufElem</B
> = <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Creation
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newByteBuffer"
><A NAME="v%3AnewByteBuffer"
></A
></A
><B
>newByteBuffer</B
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newCharBuffer"
><A NAME="v%3AnewCharBuffer"
></A
></A
><B
>newCharBuffer</B
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBuffer"
>CharBuffer</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newBuffer"
><A NAME="v%3AnewBuffer"
></A
></A
><B
>newBuffer</B
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyBuffer"
><A NAME="v%3AemptyBuffer"
></A
></A
><B
>emptyBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABufferState"
>BufferState</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Insertion/removal
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bufferRemove"
><A NAME="v%3AbufferRemove"
></A
></A
><B
>bufferRemove</B
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bufferAdd"
><A NAME="v%3AbufferAdd"
></A
></A
><B
>bufferAdd</B
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:slideContents"
><A NAME="v%3AslideContents"
></A
></A
><B
>slideContents</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>slides the contents of the buffer to the beginning
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bufferAdjustL"
><A NAME="v%3AbufferAdjustL"
></A
></A
><B
>bufferAdjustL</B
> ::  <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Inspecting
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isEmptyBuffer"
><A NAME="v%3AisEmptyBuffer"
></A
></A
><B
>isEmptyBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isFullBuffer"
><A NAME="v%3AisFullBuffer"
></A
></A
><B
>isFullBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isFullCharBuffer"
><A NAME="v%3AisFullCharBuffer"
></A
></A
><B
>isFullCharBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isWriteBuffer"
><A NAME="v%3AisWriteBuffer"
></A
></A
><B
>isWriteBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bufferElems"
><A NAME="v%3AbufferElems"
></A
></A
><B
>bufferElems</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bufferAvailable"
><A NAME="v%3AbufferAvailable"
></A
></A
><B
>bufferAvailable</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:summaryBuffer"
><A NAME="v%3AsummaryBuffer"
></A
></A
><B
>summaryBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> a -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="5"
><A NAME="5"
>Operating on the raw buffer as a Ptr
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withBuffer"
><A NAME="v%3AwithBuffer"
></A
></A
><B
>withBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> e -&gt; (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> e -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withRawBuffer"
><A NAME="v%3AwithRawBuffer"
></A
></A
><B
>withRawBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> e -&gt; (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> e -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="6"
><A NAME="6"
>Assertions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkBuffer"
><A NAME="v%3AcheckBuffer"
></A
></A
><B
>checkBuffer</B
> ::  <A HREF="GHC-IO-Buffer.html#t%3ABuffer"
>Buffer</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>Raw buffers
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:RawBuffer"
><A NAME="t%3ARawBuffer"
></A
></A
><B
>RawBuffer</B
> e = <A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readWord8Buf"
><A NAME="v%3AreadWord8Buf"
></A
></A
><B
>readWord8Buf</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeWord8Buf"
><A NAME="v%3AwriteWord8Buf"
></A
></A
><B
>writeWord8Buf</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:RawCharBuffer"
><A NAME="t%3ARawCharBuffer"
></A
></A
><B
>RawCharBuffer</B
> = <A HREF="GHC-IO-Buffer.html#t%3ARawBuffer"
>RawBuffer</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:peekCharBuf"
><A NAME="v%3ApeekCharBuf"
></A
></A
><B
>peekCharBuf</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readCharBuf"
><A NAME="v%3AreadCharBuf"
></A
></A
><B
>readCharBuf</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Char.html#t%3AChar"
>Char</A
>, <A HREF="Data-Int.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeCharBuf"
><A NAME="v%3AwriteCharBuf"
></A
></A
><B
>writeCharBuf</B
> :: <A HREF="GHC-IO-Buffer.html#t%3ARawCharBuffer"
>RawCharBuffer</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Char.html#t%3AChar"
>Char</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readCharBufPtr"
><A NAME="v%3AreadCharBufPtr"
></A
></A
><B
>readCharBufPtr</B
> :: <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Char.html#t%3AChar"
>Char</A
>, <A HREF="Data-Int.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeCharBufPtr"
><A NAME="v%3AwriteCharBufPtr"
></A
></A
><B
>writeCharBufPtr</B
> :: <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="GHC-IO-Buffer.html#t%3ACharBufElem"
>CharBufElem</A
> -&gt; <A HREF="Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Char.html#t%3AChar"
>Char</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:charSize"
><A NAME="v%3AcharSize"
></A
></A
><B
>charSize</B
> :: <A HREF="Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>