forked from jverkoey/nimbus
/
_a_s_i_web_page_request_8h_source.html
176 lines (158 loc) · 10.5 KB
/
_a_s_i_web_page_request_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Nimbus: /Users/featherless/workbench/ios/nimbus/src/ASIHTTPRequest/src_optional/ASIWebPageRequest/ASIWebPageRequest.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-24278774-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="page">
<div style="position:relative">
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<a style="float: right;margin-right:20px;margin-top:20px" href='http://www.pledgie.com/campaigns/15519'><img alt='Click here to support Nimbus development and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/15519.png?skin_name=chrome' border='0' /></a>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Nimbus
 <span id="projectnumber">0.5.0 - <a href="http://github.com/jverkoey/nimbus">Nimbus is proudly hosted on Github</a></span>
</div>
<div id="projectbrief">An iOS framework whose growth is bounded by O(documentation).</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.4-20110629 -->
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('_a_s_i_web_page_request_8h.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">/Users/featherless/workbench/ios/nimbus/src/ASIHTTPRequest/src_optional/ASIWebPageRequest/ASIWebPageRequest.h</div> </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
<a name="l00002"></a>00002 <span class="comment">// ASIWebPageRequest.h</span>
<a name="l00003"></a>00003 <span class="comment">// Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRequest</span>
<a name="l00004"></a>00004 <span class="comment">//</span>
<a name="l00005"></a>00005 <span class="comment">// Created by Ben Copsey on 29/06/2010.</span>
<a name="l00006"></a>00006 <span class="comment">// Copyright 2010 All-Seeing Interactive. All rights reserved.</span>
<a name="l00007"></a>00007 <span class="comment">//</span>
<a name="l00008"></a>00008 <span class="comment">// This is an EXPERIMENTAL class - use at your own risk!</span>
<a name="l00009"></a>00009 <span class="comment">// It is strongly recommend to set a downloadDestinationPath when using ASIWebPageRequest</span>
<a name="l00010"></a>00010 <span class="comment">// Also, performance will be better if your ASIWebPageRequest has a downloadCache setup</span>
<a name="l00011"></a>00011 <span class="comment">// Known issue: You cannot use startSychronous with an ASIWebPageRequest</span>
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="preprocessor">#import "ASIHTTPRequest.h"</span>
<a name="l00014"></a>00014 <span class="preprocessor">#import <libxml/HTMLparser.h></span>
<a name="l00015"></a>00015 <span class="preprocessor">#import <libxml/xmlsave.h></span>
<a name="l00016"></a>00016 <span class="preprocessor">#import <libxml/xpath.h></span>
<a name="l00017"></a>00017 <span class="preprocessor">#import <libxml/xpathInternals.h></span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="keyword">@class</span> ASINetworkQueue;
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">// Used internally for storing what type of data we got from the server</span>
<a name="l00022"></a>00022 <span class="keyword">typedef</span> <span class="keyword">enum</span> _ASIWebContentType {
<a name="l00023"></a>00023 ASINotParsedWebContentType = 0,
<a name="l00024"></a>00024 ASIHTMLWebContentType = 1,
<a name="l00025"></a>00025 ASICSSWebContentType = 2
<a name="l00026"></a>00026 } ASIWebContentType;
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="comment">// These correspond with the urlReplacementMode property of ASIWebPageRequest</span>
<a name="l00029"></a>00029 <span class="keyword">typedef</span> <span class="keyword">enum</span> _ASIURLReplacementMode {
<a name="l00030"></a>00030
<a name="l00031"></a>00031 <span class="comment">// Don't modify html or css content at all</span>
<a name="l00032"></a>00032 ASIDontModifyURLs = 0,
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="comment">// Replace external resources urls (images, stylesheets etc) with data uris, so their content is embdedded directly in the html/css</span>
<a name="l00035"></a>00035 ASIReplaceExternalResourcesWithData = 1,
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="comment">// Replace external resource urls with the url of locally cached content</span>
<a name="l00038"></a>00038 <span class="comment">// You must set the baseURL of a WebView / UIWebView to a file url pointing at the downloadDestinationPath of the main ASIWebPageRequest if you want to display your content</span>
<a name="l00039"></a>00039 <span class="comment">// See the Mac or iPhone example projects for a demonstration of how to do this</span>
<a name="l00040"></a>00040 <span class="comment">// The hrefs of all hyperlinks are changed to use absolute urls when using this mode</span>
<a name="l00041"></a>00041 ASIReplaceExternalResourcesWithLocalURLs = 2
<a name="l00042"></a>00042 } ASIURLReplacementMode;
<a name="l00043"></a>00043
<a name="l00044"></a>00044
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <span class="keyword">@interface </span>ASIWebPageRequest : ASIHTTPRequest {
<a name="l00047"></a>00047
<a name="l00048"></a>00048 <span class="comment">// Each ASIWebPageRequest for an HTML or CSS file creates its own internal queue to download external resources</span>
<a name="l00049"></a>00049 ASINetworkQueue *externalResourceQueue;
<a name="l00050"></a>00050
<a name="l00051"></a>00051 <span class="comment">// This dictionary stores a list of external resources to download, along with their content-type data or a path to the data</span>
<a name="l00052"></a>00052 NSMutableDictionary *resourceList;
<a name="l00053"></a>00053
<a name="l00054"></a>00054 <span class="comment">// Used internally for parsing HTML (with libxml)</span>
<a name="l00055"></a>00055 xmlDocPtr doc;
<a name="l00056"></a>00056
<a name="l00057"></a>00057 <span class="comment">// If the response is an HTML or CSS file, this will be set so the content can be correctly parsed when it has finished fetching external resources</span>
<a name="l00058"></a>00058 ASIWebContentType webContentType;
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="comment">// Stores a reference to the ASIWebPageRequest that created this request</span>
<a name="l00061"></a>00061 <span class="comment">// Note that a parentRequest can also have a parent request because ASIWebPageRequests parse their contents to look for external resources recursively</span>
<a name="l00062"></a>00062 <span class="comment">// For example, a request for an image can be created by a request for a stylesheet which was created by a request for a web page</span>
<a name="l00063"></a>00063 ASIWebPageRequest *parentRequest;
<a name="l00064"></a>00064
<a name="l00065"></a>00065 <span class="comment">// Controls what ASIWebPageRequest does with external resources. See the notes above for more.</span>
<a name="l00066"></a>00066 ASIURLReplacementMode urlReplacementMode;
<a name="l00067"></a>00067 }
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="comment">// Will return a data URI that contains a base64 version of the content at this url</span>
<a name="l00070"></a>00070 <span class="comment">// This is used when replacing urls in the html and css with actual data</span>
<a name="l00071"></a>00071 <span class="comment">// If you subclass ASIWebPageRequest, you can override this function to return different content or a url pointing at another location</span>
<a name="l00072"></a>00072 - (<a class="code" href="class_n_s_string.html" title="For manipulating NSStrings.">NSString</a> *)contentForExternalURL:(<a class="code" href="class_n_s_string.html" title="For manipulating NSStrings.">NSString</a> *)theURL;
<a name="l00073"></a>00073
<a name="l00074"></a>00074 <span class="comment">// Returns the location that a downloaded external resource's content will be stored in</span>
<a name="l00075"></a>00075 - (<a class="code" href="class_n_s_string.html" title="For manipulating NSStrings.">NSString</a> *)cachePathForRequest:(ASIWebPageRequest *)theRequest;
<a name="l00076"></a>00076
<a name="l00077"></a>00077
<a name="l00078"></a>00078 <span class="keyword">@property</span> (retain, nonatomic) ASIWebPageRequest *parentRequest;
<a name="l00079"></a>00079 <span class="keyword">@property</span> (assign, nonatomic) ASIURLReplacementMode urlReplacementMode;
<a name="l00080"></a>00080 <span class="keyword">@end</span>
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>ASIWebPageRequest.h</b> </li>
</div><!-- .fixedwidth -->
<span class="footer">Generated for Nimbus by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4-20110629 </span>
</ul>
</div>
</div> <!-- page -->
</body>
</html>