/[suikacvs]/markup/html/whatpm/Whatpm/CacheManifest.html
Suika

Contents of /markup/html/whatpm/Whatpm/CacheManifest.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download) (as text)
Sun Nov 4 11:49:44 2007 UTC (17 years ago) by wakaba
Branch: MAIN
File MIME type: text/html
++ ChangeLog	4 Nov 2007 11:48:54 -0000
2007-11-04  Wakaba  <wakaba@suika.fam.cx>

	* readme.en.html: Link to |Whatpm::CacheManifest|.

++ whatpm/Whatpm/ChangeLog	4 Nov 2007 11:49:27 -0000
	* Makefile: |CacheManifest.html| is added.

	* CacheManifest.pod: New file.

2007-11-04  Wakaba  <wakaba@suika.fam.cx>

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title>Whatpm::CacheManifest - An HTML5 Cache Manifest Parser</title>
5 <link rel="stylesheet" href="http://suika.fam.cx/www/style/html/pod.css" type="text/css" />
6 <link rev="made" href="mailto:admin@suika.fam.cx" />
7 </head>
8
9 <body>
10
11 <p><a name="__index__"></a></p>
12 <!-- INDEX BEGIN -->
13
14 <ul>
15
16 <li><a href="#name">NAME</a></li>
17 <li><a href="#synopsis">SYNOPSIS</a></li>
18 <li><a href="#description">DESCRIPTION</a></li>
19 <li><a href="#methods">METHODS</a></li>
20 <li><a href="#manifest_data_structure">MANIFEST DATA STRUCTURE</a></li>
21 <li><a href="#dependency">DEPENDENCY</a></li>
22 <li><a href="#see_also">SEE ALSO</a></li>
23 <li><a href="#todo">TODO</a></li>
24 <li><a href="#author">AUTHOR</a></li>
25 <li><a href="#license">LICENSE</a></li>
26 </ul>
27 <!-- INDEX END -->
28
29 <hr />
30 <p>
31 </p>
32 <h1><a name="name">NAME</a></h1>
33 <p>Whatpm::CacheManifest - An HTML5 Cache Manifest Parser</p>
34 <p>
35 </p>
36 <hr />
37 <h1><a name="synopsis">SYNOPSIS</a></h1>
38 <pre>
39 use Whatpm::CacheManifest;
40
41 my $manifest_uri = q&lt;<a href="http://www.example.com/manifest&gt">http://www.example.com/manifest&gt</a>;;
42 my ($manifest_data, $manifest_base_uri)
43 = some_function_to_retrieve_content ($manifest_uri);
44
45 # or,
46
47 my $manifest = Whatpm::CacheManifest-&gt;parse_byte_string
48 ($manifest_data, $manifest_uri, $manifest_base_uri, sub {
49 my %err = @_;
50 warn $err{type}, &quot;\n&quot;;
51 });
52
53 $manifest_data = Encode::decode ('utf-8', $manifest_data);
54 my $manifest = Whatpm::CacheManifest-&gt;parse_char_string
55 ($manifest_data, $manifest_uri, $manifest_base_uri, sub {
56 my %err = @_;
57 warn $err{type}, &quot;\n&quot;;
58 });
59
60 # $manifest-&gt;[0]: Array reference of explicit URIs.
61 # $manifest-&gt;[1]: Hash reference of fallback URIs.
62 # $manifest-&gt;[2]: Array reference of online whitelist.</pre>
63 <p>
64 </p>
65 <hr />
66 <h1><a name="description">DESCRIPTION</a></h1>
67 <p>The <code>Whatpm::CacheManifest</code> module implements the parsing algorithm
68 for HTML5 cache manifest format, used to describe an offline Web
69 application.</p>
70 <p>
71 </p>
72 <hr />
73 <h1><a name="methods">METHODS</a></h1>
74 <p>This module provides two class methods to parse cache manifests:</p>
75 <dl>
76 <dt><strong><a name="item_parse_byte_string"><em>$manifest</em> = Whatpm::CacheManifest-&gt;parse_byte_string (<em>$manifest_bytes</em>, <em>$manifest_uri</em>, <em>$manifest_base_uri</em>, <em>$onerror</em>)</a></strong><br />
77 </dt>
78 <dt><strong><a name="item_parse_char_string"><em>$manifest</em> = Whatpm::CacheManifest-&gt;parse_char_string (<em>$manifest_chars</em>, <em>$manifest_uri</em>, <em>$manifest_base_uri</em>, <em>$onerror</em>)</a></strong><br />
79 </dt>
80 </dl>
81 <p>These methods parse a cache manifest and return that cache manifest
82 in the <a href="#manifest_data_structure">MANIFEST DATA STRUCTURE</a>.</p>
83 <p>Parameters:</p>
84 <dl>
85 <dt><strong><a name="item__24manifest_bytes"><em>$manifest_bytes</em></a></strong><br />
86 </dt>
87 <dd>
88 The content of the manifest files, as a Perl byte string.
89 It may or may not be a valid cache manifest. It will be processed
90 as defined by HTML5 cache manifest parsing specification.
91 It will be interpreted as UTF-8 string, as defined in the specification.
92 </dd>
93 <p></p>
94 <dt><strong><a name="item__24manfiest_chars"><em>$manfiest_chars</em></a></strong><br />
95 </dt>
96 <dd>
97 The content of the manifest files, as a Perl character string.
98 It may or may not be a valid cache manifest. It will be processed
99 as defined by HTML5 cache manifest parsing specification. It may
100 contain <code>U+0000</code> <code>NULL</code> characters; they are converted to
101 <code>U+FFFD</code> <code>REPLACEMENT CHARACTER</code>s as defined in the specification.
102 </dd>
103 <p></p>
104 <dt><strong><a name="item__24manifest_uri"><em>$manifest_uri</em></a></strong><br />
105 </dt>
106 <dd>
107 The IRI of the cache manifest.
108 </dd>
109 <p></p>
110 <dt><strong><a name="item__24manifest_base_uri"><em>$manifest_base_uri</em></a></strong><br />
111 </dt>
112 <dd>
113 The base IRI of the cache manifest.
114 </dd>
115 <p></p>
116 <dt><strong><a name="item__24onerror"><em>$onerror</em></a></strong><br />
117 </dt>
118 <dd>
119 The callback function that will be invoked if the manifest cache
120 has an error (or a warning). It may be omitted. If omitted,
121 any error (or warning) is <code>warn</code>ed with its <code>type</code>.
122 </dd>
123 <dd>
124 <p>@@ TBW</p>
125 </dd>
126 <dd>
127 <p>For the list of the error types, see Whatpm Error Types
128 &lt;http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types&gt;.</p>
129 </dd>
130 <p></p></dl>
131 <p>In addition, a class method to check conformance of cache manifests
132 is provided:</p>
133 <dl>
134 <dt><strong><a name="item_check_manifest">Whatpm::CacheManifest-&gt;check_manifest (<em>$manifest</em>, <em>$onerror</em>)</a></strong><br />
135 </dt>
136 <dd>
137 Check conformance of a cache manifest, given as <em>$manifest</em>.
138 </dd>
139 <dl>
140 <dt><strong><a name="item__24manifest"><em>$manifest</em></a></strong><br />
141 </dt>
142 <dd>
143 The cache manifest to check, in the <a href="#manifest_data_structure">MANIFEST DATA STRUCTURE</a>.
144 </dd>
145 <p></p>
146 <dt><strong><em>$onerror</em></strong><br />
147 </dt>
148 <dd>
149 The callback function that will be invoked if the manifest cache
150 has an error (or a warning). It may be omitted. If omitted,
151 any error (or warning) is <code>warn</code>ed with its <code>type</code>.
152 </dd>
153 <dd>
154 <p>@@ TBW</p>
155 </dd>
156 <dd>
157 <p>For the list of the error types, see Whatpm Error Types
158 &lt;http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types&gt;.</p>
159 </dd>
160 <p></p></dl>
161 <p>A cache manifest is conforming if (a) it is correctly labeled
162 as a cache manifest (e.g. as Internet media type <code>text/cache-manifest</code>)
163 in the transfer layer, (b) parsing the cache manifest by
164 <a href="#item_parse_byte_string"><code>parse_byte_string</code></a> or <a href="#item_parse_char_string"><code>parse_char_string</code></a> raises no error
165 with level <code>m</code> or <code>s</code>, and (c) checking the cache manifest by
166 <a href="#item_check_manifest"><code>check_manifest</code></a> raises no error with level <code>m</code> or <code>s</code>.</p>
167 </dl>
168 <p>
169 </p>
170 <hr />
171 <h1><a name="manifest_data_structure">MANIFEST DATA STRUCTURE</a></h1>
172 <p>If <em>$m</em> is in manifest data structure, <em>$m</em> is a reference to
173 the array with three items: <em>$explicit_uris</em>, <em>$fallback_uris</em>,
174 and <em>$online_whitelist</em>.</p>
175 <p><em>$explicit_uris</em> is a reference to the array, which
176 contains zero or more strings. The strings are IRI references
177 of the explicit entries.</p>
178 <p><em>$fallback_uris</em> is a reference to the hash, which
179 contains zero or more mappings of strings (keys) to strings (values).
180 The keys are IRI references of the oppotunistic caching namespaces.
181 The values are IRI references of the fallback entries corresponding
182 to the oppotunistic caching namespaces.</p>
183 <p><em>$online_whitelist</em> is a reference to the array, which
184 contains zero or more strings. The strings are IRI references
185 in the online whitelist.</p>
186 <p>
187 </p>
188 <hr />
189 <h1><a name="dependency">DEPENDENCY</a></h1>
190 <p>This module depends on <a href="../Message/URI/URIReference.html">the Message::URI::URIReference manpage</a>, which is
191 part of manakai.</p>
192 <p>
193 </p>
194 <hr />
195 <h1><a name="see_also">SEE ALSO</a></h1>
196 <p>Whatpm Error Types
197 &lt;http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types&gt;.</p>
198 <p>HTML5
199 &lt;http://whatwg.org/html5&gt;.</p>
200 <p><a href="../Message/URI/URIReference.html">the Message::URI::URIReference manpage</a>
201 &lt;http://suika.fam.cx/www/manakai-core/lib/Message/URI/URIReference.html&gt;.</p>
202 <p>
203 </p>
204 <hr />
205 <h1><a name="todo">TODO</a></h1>
206 <p>``Same scheme/host/port'' comparison algorithm is not correctly implemented
207 yet.</p>
208 <p>
209 </p>
210 <hr />
211 <h1><a name="author">AUTHOR</a></h1>
212 <p>Wakaba &lt;<a href="mailto:w@suika.fam.cx">w@suika.fam.cx</a>&gt;</p>
213 <p>
214 </p>
215 <hr />
216 <h1><a name="license">LICENSE</a></h1>
217 <p>Copyright 2007 Wakaba &lt;<a href="mailto:w@suika.fam.cx">w@suika.fam.cx</a>&gt;</p>
218 <p>This library is free software; you can redistribute it
219 and/or modify it under the same terms as Perl itself.</p>
220
221 </body>
222
223 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24