/[suikacvs]/markup/html/whatpm/Whatpm/Charset/handles.en.html
Suika

Contents of /markup/html/whatpm/Whatpm/Charset/handles.en.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download) (as text)
Mon Sep 15 12:22:09 2008 UTC (16 years, 8 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/html
++ ChangeLog	15 Sep 2008 12:22:04 -0000
2008-09-15  Wakaba  <wakaba@suika.fam.cx>

	* readme.en.html: Link to handles.en.html.

++ whatpm/Whatpm/Charset/ChangeLog	15 Sep 2008 12:21:33 -0000
	* handles.en.html: New documentation.

2008-09-15  Wakaba  <wakaba@suika.fam.cx>

1 <!DOCTYPE HTML>
2 <html lang=en>
3 <head>
4 <title>Handle objects used by Whatpm</title>
5 <link rel=stylesheet href="http://suika.fam.cx/www/style/html/xhtml">
6 <link rel=author title=Wakaba href="http://suika.fam.cx/~wakaba/who?" lang=ja>
7 <link rel=license href="#license">
8 <link rel=top href="../../readme">
9 </head>
10 <body>
11 <h1>Handle objects used by Whatpm</h1>
12
13 <div class=section id=intro>
14 <h2>Introduction</h2>
15
16 <p>Some modules of Whatpm uses handle (filehandle or <code>IO::Handle</code>)
17 like objects to represents various kinds of input streams.
18 This document describes interfaces of handle objects used by them.
19 </div>
20
21 <div class=section id=interfaces>
22 <h2>Interfaces</h2>
23
24 <div class=section id=interface-charstream-input>
25 <h3>Character stream input handles</h3>
26
27 <p>An object implementing the <dfn
28 id=term-charstream-input-interface>character stream input
29 interface</dfn> is expected to provides a character stream input. It
30 has to exposes at least the following methods:
31
32 <dl>
33 <dt id=charstream-input-close><code>close ()</code>
34 <dd>Close the stream. Once the stream is closed, <code>read</code> and
35 <code>manakai_read_until</code> methods should not be invoked. If called,
36 the result is undefined.
37 <dt id=charstream-input-onerror><code>onerror ([<var>CODE</var>])</code>
38 <dd>On getting, i.e. no argument is specified, return the error handler
39 function, if it is explicitly specified, or <code>undef</code> otherwise.
40 Handle objects might define the default error handler. Even if the default
41 error handler is set as the error handler, i.e. no explicit error handler
42 is set, <code>undef</code> is returned.
43
44 <p>On setting, i.e. an argument is specified, the specified value is set
45 as the error handler. It has to be a <code>CODE</code> reference; otherwise,
46 the behavior of the handle object is undefined. As a special case, if
47 <code>undef</code> is specified as the new value, any explicitly specified
48 error handler is unset and the default error handler, if any, is set.
49
50 <p class=ed>@@ The error handler would ...
51 <dt id=charstream-input-read><code>read (<var>SCALAR</var>, <var>LENGTH</var>, [<var>OFFSET</var>])</code>
52 <dd>Read characters from the input stream. This method should behave in
53 a similar manner as the <code>read</code> method of a <code>IO::Handle</code>
54 object that provides a character stream, except when the <var>OFFSET</var>
55 argument is a negative value, in which case the result is undefined.
56 <dt id=charstream-input-manakai-read-until><code>manakai_read_until (<var>SCALAR</var>, <var>PATTERN</var>, [<var>OFFSET</var>])</code>
57 <dd>Read characters from the input stream, like the
58 <a href="#charstream-input-read"><code>read</code></a> method,
59 but the number of read characters are not specified by length, but
60 determined by the pattern match. Any character matching the regular
61 expression <var>PATTERN</var> is read. The number of read characters is
62 returned. If no character matches the <var>PATTERN</var>, then no character
63 is read and zero (<code>0</code>) is returned. Note that the method don't
64 have to return all characters matching the <var>PATTERN</var> once; for
65 example, the method may decide to stop reading when the 256th character
66 is read. The <var>OFFSET</var> argument, if specified, must be greater than
67 or equal to zero (<code>0</code>); otherwise, the result is undefined.
68 </dl>
69
70 <p>Following classes are implementing this interface:
71 <ul>
72 <li><a href=DecodeHandle.html><code>Whatpm::Charset::DecodeHandle::CharString</code></a>
73 (The class method
74 <code>Whatpm::Charset::DecodeHandle::CharString->new</code>
75 would generate an instance of this class.)
76 <li><a href=DecodeHandle.html><code>Whatpm::Charset::DecodeHandle::Encode</code></a>
77 (The <code>get_decode_handle</code> method on a
78 <code>Message::Charset::Info</code> object would generate an instance of
79 this class.)
80 <li><a href=DecodeHandle.html><code>Whatpm::Charset::DecodeHandle::ISO2022JP</code></a>
81 (The <code>get_decode_handle</code> method on a
82 <code>Message::Charset::Info</code> object would generate an instance of
83 this class.)
84 <li><a href=UnicodeChecker.html><code>Whatpm::Charset::UnicodeChecker</code></a>
85 (The class method
86 <code>Whatpm::Charset::UnicodeChecker->new_handle</code>
87 would generate an instance of this class.)
88 </ul>
89
90 <p>Following method arguments expects objects with this interface:
91 <ul>
92 <li>The first argument of the
93 <a href="../HTML.html#item_parse_char_stream"><code>parse_char_stream</code></a>
94 method of <a href="../HTML.html"><code>Whatpm::HTML</code></a> objects
95 <li>The first argument of the <code>new_handle</code> method of
96 the <a href="UnicodeChecker.html"><code>Whatpm::Charset::UnicodeChecker</code></a>
97 class
98 </ul>
99
100 <!--
101 Required (provided) methods:
102 Whatpm::HTML->parse_char_stream: read, manakai_read_until
103 Whatpm::HTML->parse_byte_stream: onerror [+ parse_char_stream]
104 Whatpm::Charset::UnicodeChecker: read, manakai_read_until, close,
105 charset, has_bom, input_encoding, onerror
106 (+ ungetc, new_handle)
107 Whatpm::Charset::DecodeHandle::CharString: (new, getc, read,
108 manakai_read_until, ungetc, onerror, close)
109 Whatpm::Charset::DecodeHandle::Encode: (charset, close, getc, read,
110 manakai_read_until, has_bom, input_encoding, input_encoding, ungetc)
111 Whatpm::Charset::DecodeHandle::ISO2022JP: (getc, read, manakai_read_until
112 [+ Whatpm::Charset::DecodeHandle::Encode])
113 Message::DOM::XMLParserTemp: getc, ungetc, input_encoding, close
114 WebHACC::Language::Base: onerror, read
115 -->
116
117 </div>
118
119 <div class=section id=interface-bytestream-input>
120 <h3>Byte stream input handles</h3>
121
122 <p>An object implementing the <dfn
123 id=term-bytestream-input-interface>byte stream input interface</dfn>
124 is expected to provides a byte (or octet) stream input. It has to
125 exposes at least the following methods:
126
127 <dl>
128 <dt id=bytestream-input-close><code>close</code>
129 <dd>Close the stream. Once the stream is closed, the <code>read</code>
130 method should not be invoked. If called, the results is undefined.
131 <dt id=bytestream-input-read><code>read (<var>SCALAR</var>, <var>LENGTH</var>, [<var>OFFSET</var>])</code>
132 <dd>Read characters from the input stream. This method should behave in
133 a similar manner as the <code>read</code> method of a <code>IO::Handle</code>
134 object that provides a byte stream, except when the <var>OFFSET</var>
135 argument is a negative value, in which case the result is undefined.
136 </dl>
137
138 <p>Following classes are implementing this interface:
139 <ul>
140 <li><a href="DecodeHandle.html"><code>Whatpm::Charset::DecodeHandle::ByteBuffer</code></a>
141 (The class method
142 <code>Whatpm::Charset::DecodeHandle::ByteBuffer->new</code>
143 would generate an instance of this class.)
144 </ul>
145
146 <p>In addition, an <code>IO::Handle</code> object (i.e. an
147 object-oriented representation of Perl handles) can be used where this
148 interface is expected, since the object has the methods mandated by
149 this interface.
150
151 <p>Following method arguments expects objects with this interface:
152 <ul>
153 <li>The first argument of the <code>get_decode_handle</code> method of
154 <code>Message::Charset::Info</code> objects
155 </ul>
156
157 <!--
158 Whatpm::Charset::DecodeHandle::ByteBuffer: read, close
159 (new, read, close)
160 Whatpm::Charset::DecodeHandle::Encode: close, read
161 Whatpm::Charset::DecodeHandle::ISO2022JP: read
162 [+ Whatpm::Charset::DecodeHandle::Encode]
163 Whatpm::Charset::DecodeHandle->create_decode_handle: read
164 Message::Charset::Info->get_decode_handle:
165 [+ Whatpm::Charset::DecodeHandle::*]
166 -->
167
168 </div>
169
170 </div>
171
172 <div class=section id=license>
173 <h2>License</h2>
174
175 <p>Copyright 2008 <a href="http://suika.fam.cx/~wakaba/who?"
176 rel=author lang=ja>Wakaba</a> <code class=mail>&lt;<a
177 href="mailto:w@suika.fam.cx">w@suika.fam.cx</a>></code>
178
179 <p>This library is free software; you can redistribute it and/or
180 modify it under the same terms as Perl itself.
181
182 </div>
183
184 </body>
185 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24