Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / html / python / lib / stream-recoder-objects.html
CommitLineData
86530b38
AT
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<link rel="STYLESHEET" href="lib.css" type='text/css' />
5<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
6<link rel='start' href='../index.html' title='Python Documentation Index' />
7<link rel="first" href="lib.html" title='Python Library Reference' />
8<link rel='contents' href='contents.html' title="Contents" />
9<link rel='index' href='genindex.html' title='Index' />
10<link rel='last' href='about.html' title='About this document...' />
11<link rel='help' href='about.html' title='About this document...' />
12<link rel="prev" href="stream-reader-writer.html" />
13<link rel="parent" href="node130.html" />
14<link rel="next" href="standard-encodings.html" />
15<meta name='aesop' content='information' />
16<title>4.9.1.5 StreamRecoder Objects </title>
17</head>
18<body>
19<DIV CLASS="navigation">
20<div id='top-navigation-panel' xml:id='top-navigation-panel'>
21<table align="center" width="100%" cellpadding="0" cellspacing="2">
22<tr>
23<td class='online-navigation'><a rel="prev" title="4.9.1.4 StreamReaderWriter Objects"
24 href="stream-reader-writer.html"><img src='../icons/previous.png'
25 border='0' height='32' alt='Previous Page' width='32' /></A></td>
26<td class='online-navigation'><a rel="parent" title="4.9.1 Codec Base Classes"
27 href="node130.html"><img src='../icons/up.png'
28 border='0' height='32' alt='Up One Level' width='32' /></A></td>
29<td class='online-navigation'><a rel="next" title="4.9.2 Standard Encodings"
30 href="standard-encodings.html"><img src='../icons/next.png'
31 border='0' height='32' alt='Next Page' width='32' /></A></td>
32<td align="center" width="100%">Python Library Reference</td>
33<td class='online-navigation'><a rel="contents" title="Table of Contents"
34 href="contents.html"><img src='../icons/contents.png'
35 border='0' height='32' alt='Contents' width='32' /></A></td>
36<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
37 border='0' height='32' alt='Module Index' width='32' /></a></td>
38<td class='online-navigation'><a rel="index" title="Index"
39 href="genindex.html"><img src='../icons/index.png'
40 border='0' height='32' alt='Index' width='32' /></A></td>
41</tr></table>
42<div class='online-navigation'>
43<b class="navlabel">Previous:</b>
44<a class="sectref" rel="prev" href="stream-reader-writer.html">4.9.1.4 StreamReaderWriter Objects</A>
45<b class="navlabel">Up:</b>
46<a class="sectref" rel="parent" href="node130.html">4.9.1 Codec Base Classes</A>
47<b class="navlabel">Next:</b>
48<a class="sectref" rel="next" href="standard-encodings.html">4.9.2 Standard Encodings</A>
49</div>
50<hr /></div>
51</DIV>
52<!--End of Navigation Panel-->
53
54<H3><A NAME="SECTION006915000000000000000"></A><A NAME="stream-recoder-objects"></A>
55<BR>
564.9.1.5 StreamRecoder Objects
57</H3>
58
59<P>
60The <tt class="class">StreamRecoder</tt> provide a frontend - backend view of
61encoding data which is sometimes useful when dealing with different
62encoding environments.
63
64<P>
65The design is such that one can use the factory functions returned by
66the <tt class="function">lookup()</tt> function to construct the instance.
67
68<P>
69<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
70 <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-1017' xml:id='l2h-1017' class="class">StreamRecoder</tt></b>(</nobr></td>
71 <td><var>stream, encode, decode,
72 Reader, Writer, errors</var>)</td></tr></table></dt>
73<dd>
74 Creates a <tt class="class">StreamRecoder</tt> instance which implements a two-way
75 conversion: <var>encode</var> and <var>decode</var> work on the frontend (the
76 input to <tt class="method">read()</tt> and output of <tt class="method">write()</tt>) while
77 <var>Reader</var> and <var>Writer</var> work on the backend (reading and
78 writing to the stream).
79
80<P>
81You can use these objects to do transparent direct recodings from
82 e.g. Latin-1 to UTF-8 and back.
83
84<P>
85<var>stream</var> must be a file-like object.
86
87<P>
88<var>encode</var>, <var>decode</var> must adhere to the <tt class="class">Codec</tt>
89 interface, <var>Reader</var>, <var>Writer</var> must be factory functions or
90 classes providing objects of the <tt class="class">StreamReader</tt> and
91 <tt class="class">StreamWriter</tt> interface respectively.
92
93<P>
94<var>encode</var> and <var>decode</var> are needed for the frontend
95 translation, <var>Reader</var> and <var>Writer</var> for the backend
96 translation. The intermediate format used is determined by the two
97 sets of codecs, e.g. the Unicode codecs will use Unicode as
98 intermediate encoding.
99
100<P>
101Error handling is done in the same way as defined for the
102 stream readers and writers.
103</dl>
104
105<P>
106<tt class="class">StreamRecoder</tt> instances define the combined interfaces of
107<tt class="class">StreamReader</tt> and <tt class="class">StreamWriter</tt> classes. They inherit
108all other methods and attribute from the underlying stream.
109
110<P>
111
112<DIV CLASS="navigation">
113<div class='online-navigation'>
114<p></p><hr />
115<table align="center" width="100%" cellpadding="0" cellspacing="2">
116<tr>
117<td class='online-navigation'><a rel="prev" title="4.9.1.4 StreamReaderWriter Objects"
118 href="stream-reader-writer.html"><img src='../icons/previous.png'
119 border='0' height='32' alt='Previous Page' width='32' /></A></td>
120<td class='online-navigation'><a rel="parent" title="4.9.1 Codec Base Classes"
121 href="node130.html"><img src='../icons/up.png'
122 border='0' height='32' alt='Up One Level' width='32' /></A></td>
123<td class='online-navigation'><a rel="next" title="4.9.2 Standard Encodings"
124 href="standard-encodings.html"><img src='../icons/next.png'
125 border='0' height='32' alt='Next Page' width='32' /></A></td>
126<td align="center" width="100%">Python Library Reference</td>
127<td class='online-navigation'><a rel="contents" title="Table of Contents"
128 href="contents.html"><img src='../icons/contents.png'
129 border='0' height='32' alt='Contents' width='32' /></A></td>
130<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
131 border='0' height='32' alt='Module Index' width='32' /></a></td>
132<td class='online-navigation'><a rel="index" title="Index"
133 href="genindex.html"><img src='../icons/index.png'
134 border='0' height='32' alt='Index' width='32' /></A></td>
135</tr></table>
136<div class='online-navigation'>
137<b class="navlabel">Previous:</b>
138<a class="sectref" rel="prev" href="stream-reader-writer.html">4.9.1.4 StreamReaderWriter Objects</A>
139<b class="navlabel">Up:</b>
140<a class="sectref" rel="parent" href="node130.html">4.9.1 Codec Base Classes</A>
141<b class="navlabel">Next:</b>
142<a class="sectref" rel="next" href="standard-encodings.html">4.9.2 Standard Encodings</A>
143</div>
144</div>
145<hr />
146<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
147</DIV>
148<!--End of Navigation Panel-->
149<ADDRESS>
150See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
151</ADDRESS>
152</BODY>
153</HTML>