Mercurial > urweb
comparison include/urweb/urweb.h @ 1739:c414850f206f
Add support for -boot flag, which allows in-tree execution of Ur/Web
The boot flag rewrites most hardcoded paths to point to the build
directory, and also forces static compilation. This is convenient
for developing Ur/Web, or if you cannot 'sudo make install' Ur/Web.
The following changes were made:
* Header files were moved to include/urweb instead of include;
this lets FFI users point their C_INCLUDE_PATH at this directory
at write <urweb/urweb.h>. For internal Ur/Web executables,
we simply pass -I$PATH/include/urweb as normal.
* Differentiate between LIB and SRCLIB; SRCLIB is Ur and JavaScript
source files, while LIB is compiled products from libtool. For
in-tree compilation these live in different places.
* No longer reference Config for paths; instead use Settings; these
settings can be changed dynamically by Compiler.enableBoot ()
(TODO: add a disableBoot function.)
* config.h is now generated directly in include/urweb/config.h,
for consistency's sake (especially since it gets installed
along with the rest of the headers!)
* All of the autotools build products got updated.
* The linkStatic field in protocols now only contains the name of the
build product, and not the absolute path.
Future users have to be careful not to reference the Settings files
to early, lest they get an old version (this was the source of two
bugs during development of this patch.)
author | Edward Z. Yang <ezyang@mit.edu> |
---|---|
date | Wed, 02 May 2012 17:17:57 -0400 |
parents | |
children | e9587120831a |
comparison
equal
deleted
inserted
replaced
1738:1a35e75b6967 | 1739:c414850f206f |
---|---|
1 #ifndef URWEB_H | |
2 #define URWEB_H | |
3 | |
4 #include <sys/types.h> | |
5 | |
6 #include "types.h" | |
7 | |
8 int uw_really_send(int sock, const void *buf, ssize_t len); | |
9 int uw_really_write(int fd, const void *buf, size_t len); | |
10 | |
11 extern uw_unit uw_unit_v; | |
12 | |
13 void uw_global_init(void); | |
14 void uw_app_init(uw_app*); | |
15 | |
16 void uw_client_connect(unsigned id, int pass, int sock, | |
17 int (*send)(int sockfd, const void *buf, size_t len), | |
18 int (*close)(int fd), | |
19 void *logger_data, uw_logger log_error); | |
20 void uw_prune_clients(uw_context); | |
21 failure_kind uw_initialize(uw_context); | |
22 | |
23 uw_context uw_init(int id, void *logger_data, uw_logger log_debug); | |
24 void uw_close(uw_context); | |
25 int uw_set_app(uw_context, uw_app*); | |
26 uw_app *uw_get_app(uw_context); | |
27 void uw_set_db(uw_context, void*); | |
28 void *uw_get_db(uw_context); | |
29 void uw_free(uw_context); | |
30 void uw_reset(uw_context); | |
31 void uw_reset_keep_request(uw_context); | |
32 void uw_reset_keep_error_message(uw_context); | |
33 char *uw_get_url_prefix(uw_context); | |
34 | |
35 failure_kind uw_begin_init(uw_context); | |
36 void uw_set_on_success(char *); | |
37 void uw_set_headers(uw_context, char *(*get_header)(void *, const char *), void *get_header_data); | |
38 failure_kind uw_begin(uw_context, char *path); | |
39 failure_kind uw_begin_onError(uw_context, char *msg); | |
40 void uw_login(uw_context); | |
41 void uw_commit(uw_context); | |
42 int uw_rollback(uw_context, int will_retry); | |
43 | |
44 __attribute__((noreturn)) void uw_error(uw_context, failure_kind, const char *fmt, ...); | |
45 char *uw_error_message(uw_context); | |
46 void uw_set_error_message(uw_context, const char *fmt, ...); | |
47 uw_Basis_string uw_dup_and_clear_error_message(uw_context); | |
48 int uw_has_error(uw_context); | |
49 void uw_push_cleanup(uw_context, void (*func)(void *), void *arg); | |
50 void uw_pop_cleanup(uw_context); | |
51 | |
52 void *uw_malloc(uw_context, size_t); | |
53 void uw_begin_region(uw_context); | |
54 void uw_end_region(uw_context); | |
55 void uw_memstats(uw_context); | |
56 | |
57 int uw_send(uw_context, int sock); | |
58 int uw_print(uw_context, int fd); | |
59 int uw_output(uw_context ctx, int (*output)(void *data, const char *buf, size_t len), void *data); | |
60 | |
61 int uw_set_input(uw_context, const char *name, char *value); | |
62 int uw_set_file_input(uw_context, char *name, uw_Basis_file); | |
63 | |
64 char *uw_get_input(uw_context, int name); | |
65 char *uw_get_optional_input(uw_context, int name); | |
66 uw_Basis_file uw_get_file_input(uw_context, int name); | |
67 void uw_enter_subform(uw_context, int name); | |
68 void uw_leave_subform(uw_context); | |
69 int uw_enter_subforms(uw_context, int name); | |
70 int uw_next_entry(uw_context); | |
71 | |
72 void uw_write(uw_context, const char*); | |
73 | |
74 uw_Basis_source uw_Basis_new_client_source(uw_context, uw_Basis_string); | |
75 uw_unit uw_Basis_set_client_source(uw_context, uw_Basis_source, uw_Basis_string); | |
76 | |
77 void uw_set_script_header(uw_context, const char*); | |
78 char *uw_Basis_get_settings(uw_context, uw_unit); | |
79 char *uw_get_real_script(uw_context); | |
80 | |
81 uw_Basis_string uw_Basis_maybe_onload(uw_context, uw_Basis_string); | |
82 uw_Basis_string uw_Basis_maybe_onunload(uw_context, uw_Basis_string); | |
83 | |
84 void uw_set_needs_push(uw_context, int); | |
85 void uw_set_needs_sig(uw_context, int); | |
86 | |
87 char *uw_Basis_htmlifyInt(uw_context, uw_Basis_int); | |
88 char *uw_Basis_htmlifyFloat(uw_context, uw_Basis_float); | |
89 char *uw_Basis_htmlifyString(uw_context, uw_Basis_string); | |
90 char *uw_Basis_htmlifyBool(uw_context, uw_Basis_bool); | |
91 char *uw_Basis_htmlifyTime(uw_context, uw_Basis_time); | |
92 char *uw_Basis_htmlifySpecialChar(uw_context, unsigned char); | |
93 char *uw_Basis_htmlifySource(uw_context, uw_Basis_source); | |
94 | |
95 uw_unit uw_Basis_htmlifyInt_w(uw_context, uw_Basis_int); | |
96 uw_unit uw_Basis_htmlifyFloat_w(uw_context, uw_Basis_float); | |
97 uw_unit uw_Basis_htmlifyString_w(uw_context, uw_Basis_string); | |
98 uw_unit uw_Basis_htmlifyBool_w(uw_context, uw_Basis_bool); | |
99 uw_unit uw_Basis_htmlifyTime_w(uw_context, uw_Basis_time); | |
100 uw_unit uw_Basis_htmlifySpecialChar_w(uw_context, unsigned char); | |
101 uw_unit uw_Basis_htmlifySource_w(uw_context, uw_Basis_source); | |
102 | |
103 char *uw_Basis_attrifyInt(uw_context, uw_Basis_int); | |
104 char *uw_Basis_attrifyFloat(uw_context, uw_Basis_float); | |
105 char *uw_Basis_attrifyString(uw_context, uw_Basis_string); | |
106 char *uw_Basis_attrifyChar(uw_context, uw_Basis_char); | |
107 char *uw_Basis_attrifyTime(uw_context, uw_Basis_time); | |
108 char *uw_Basis_attrifyChannel(uw_context, uw_Basis_channel); | |
109 char *uw_Basis_attrifyClient(uw_context, uw_Basis_client); | |
110 char *uw_Basis_attrifyCss_class(uw_context, uw_Basis_css_class); | |
111 | |
112 uw_unit uw_Basis_attrifyInt_w(uw_context, uw_Basis_int); | |
113 uw_unit uw_Basis_attrifyFloat_w(uw_context, uw_Basis_float); | |
114 uw_unit uw_Basis_attrifyString_w(uw_context, uw_Basis_string); | |
115 uw_unit uw_Basis_attrifyChar_w(uw_context, uw_Basis_char); | |
116 | |
117 char *uw_Basis_urlifyInt(uw_context, uw_Basis_int); | |
118 char *uw_Basis_urlifyFloat(uw_context, uw_Basis_float); | |
119 char *uw_Basis_urlifyString(uw_context, uw_Basis_string); | |
120 char *uw_Basis_urlifyBool(uw_context, uw_Basis_bool); | |
121 char *uw_Basis_urlifyTime(uw_context, uw_Basis_time); | |
122 char *uw_Basis_urlifyChannel(uw_context, uw_Basis_channel); | |
123 char *uw_Basis_urlifySource(uw_context, uw_Basis_source); | |
124 | |
125 uw_unit uw_Basis_urlifyInt_w(uw_context, uw_Basis_int); | |
126 uw_unit uw_Basis_urlifyFloat_w(uw_context, uw_Basis_float); | |
127 uw_unit uw_Basis_urlifyString_w(uw_context, uw_Basis_string); | |
128 uw_unit uw_Basis_urlifyBool_w(uw_context, uw_Basis_bool); | |
129 uw_unit uw_Basis_urlifyTime_w(uw_context, uw_Basis_time); | |
130 uw_unit uw_Basis_urlifyChannel_w(uw_context, uw_Basis_channel); | |
131 uw_unit uw_Basis_urlifySource_w(uw_context, uw_Basis_source); | |
132 | |
133 uw_Basis_unit uw_Basis_unurlifyUnit(uw_context ctx, char **s); | |
134 uw_Basis_int uw_Basis_unurlifyInt(uw_context, char **); | |
135 uw_Basis_float uw_Basis_unurlifyFloat(uw_context, char **); | |
136 uw_Basis_string uw_Basis_unurlifyString(uw_context, char **); | |
137 uw_Basis_string uw_Basis_unurlifyString_fromClient(uw_context, char **); | |
138 uw_Basis_bool uw_Basis_unurlifyBool(uw_context, char **); | |
139 uw_Basis_time uw_Basis_unurlifyTime(uw_context, char **); | |
140 | |
141 uw_Basis_int uw_Basis_strlen(uw_context, const char *); | |
142 uw_Basis_bool uw_Basis_strlenGe(uw_context, uw_Basis_string, uw_Basis_int); | |
143 uw_Basis_char uw_Basis_strsub(uw_context, const char *, uw_Basis_int); | |
144 uw_Basis_string uw_Basis_strsuffix(uw_context, const char *, uw_Basis_int); | |
145 uw_Basis_string uw_Basis_strcat(uw_context, const char *, const char *); | |
146 uw_Basis_string uw_Basis_mstrcat(uw_context ctx, ...); | |
147 uw_Basis_int *uw_Basis_strindex(uw_context, const char *, uw_Basis_char); | |
148 uw_Basis_int *uw_Basis_strsindex(uw_context, const char *, const char *needle); | |
149 uw_Basis_string uw_Basis_strchr(uw_context, const char *, uw_Basis_char); | |
150 uw_Basis_int uw_Basis_strcspn(uw_context, const char *, const char *); | |
151 uw_Basis_string uw_Basis_substring(uw_context, const char *, uw_Basis_int, uw_Basis_int); | |
152 uw_Basis_string uw_Basis_str1(uw_context, uw_Basis_char); | |
153 | |
154 uw_Basis_string uw_strdup(uw_context, const char *); | |
155 uw_Basis_string uw_maybe_strdup(uw_context, const char *); | |
156 char *uw_memdup(uw_context, const char *, size_t); | |
157 | |
158 uw_Basis_string uw_Basis_sqlifyInt(uw_context, uw_Basis_int); | |
159 uw_Basis_string uw_Basis_sqlifyFloat(uw_context, uw_Basis_float); | |
160 uw_Basis_string uw_Basis_sqlifyString(uw_context, uw_Basis_string); | |
161 uw_Basis_string uw_Basis_sqlifyChar(uw_context, uw_Basis_char); | |
162 uw_Basis_string uw_Basis_sqlifyBool(uw_context, uw_Basis_bool); | |
163 uw_Basis_string uw_Basis_sqlifyTime(uw_context, uw_Basis_time); | |
164 uw_Basis_string uw_Basis_sqlifyBlob(uw_context, uw_Basis_blob); | |
165 uw_Basis_string uw_Basis_sqlifyChannel(uw_context, uw_Basis_channel); | |
166 uw_Basis_string uw_Basis_sqlifyClient(uw_context, uw_Basis_client); | |
167 | |
168 uw_Basis_string uw_Basis_sqlifyIntN(uw_context, uw_Basis_int*); | |
169 uw_Basis_string uw_Basis_sqlifyFloatN(uw_context, uw_Basis_float*); | |
170 uw_Basis_string uw_Basis_sqlifyStringN(uw_context, uw_Basis_string); | |
171 uw_Basis_string uw_Basis_sqlifyBoolN(uw_context, uw_Basis_bool*); | |
172 uw_Basis_string uw_Basis_sqlifyTimeN(uw_context, uw_Basis_time*); | |
173 | |
174 char *uw_Basis_ensqlBool(uw_Basis_bool); | |
175 char *uw_Basis_ensqlTime(uw_context ctx, uw_Basis_time); | |
176 | |
177 char *uw_Basis_jsifyString(uw_context, uw_Basis_string); | |
178 char *uw_Basis_jsifyChar(uw_context, uw_Basis_char); | |
179 char *uw_Basis_jsifyChannel(uw_context, uw_Basis_channel); | |
180 char *uw_Basis_jsifyTime(uw_context, uw_Basis_time); | |
181 | |
182 uw_Basis_string uw_Basis_intToString(uw_context, uw_Basis_int); | |
183 uw_Basis_string uw_Basis_floatToString(uw_context, uw_Basis_float); | |
184 uw_Basis_string uw_Basis_charToString(uw_context, uw_Basis_char); | |
185 uw_Basis_string uw_Basis_boolToString(uw_context, uw_Basis_bool); | |
186 uw_Basis_string uw_Basis_timeToString(uw_context, uw_Basis_time); | |
187 | |
188 uw_Basis_int *uw_Basis_stringToInt(uw_context, uw_Basis_string); | |
189 uw_Basis_float *uw_Basis_stringToFloat(uw_context, uw_Basis_string); | |
190 uw_Basis_char *uw_Basis_stringToChar(uw_context, uw_Basis_string); | |
191 uw_Basis_bool *uw_Basis_stringToBool(uw_context, uw_Basis_string); | |
192 uw_Basis_time *uw_Basis_stringToTime(uw_context, const char *); | |
193 | |
194 uw_Basis_int uw_Basis_stringToInt_error(uw_context, uw_Basis_string); | |
195 uw_Basis_float uw_Basis_stringToFloat_error(uw_context, uw_Basis_string); | |
196 uw_Basis_char uw_Basis_stringToChar_error(uw_context, uw_Basis_string); | |
197 uw_Basis_bool uw_Basis_stringToBool_error(uw_context, uw_Basis_string); | |
198 uw_Basis_time uw_Basis_stringToTime_error(uw_context, const char *); | |
199 uw_Basis_blob uw_Basis_stringToBlob_error(uw_context, uw_Basis_string, size_t); | |
200 uw_Basis_channel uw_Basis_stringToChannel_error(uw_context, uw_Basis_string); | |
201 uw_Basis_client uw_Basis_stringToClient_error(uw_context, uw_Basis_string); | |
202 | |
203 uw_Basis_time uw_Basis_unsqlTime(uw_context, uw_Basis_string); | |
204 | |
205 uw_Basis_string uw_Basis_requestHeader(uw_context, uw_Basis_string); | |
206 | |
207 void uw_write_header(uw_context, uw_Basis_string); | |
208 void uw_clear_headers(uw_context); | |
209 | |
210 uw_Basis_string uw_Basis_get_cookie(uw_context, uw_Basis_string c); | |
211 uw_unit uw_Basis_set_cookie(uw_context, uw_Basis_string prefix, uw_Basis_string c, uw_Basis_string v, uw_Basis_time *expires, uw_Basis_bool secure); | |
212 uw_unit uw_Basis_clear_cookie(uw_context, uw_Basis_string prefix, uw_Basis_string c); | |
213 | |
214 uw_Basis_channel uw_Basis_new_channel(uw_context, uw_unit); | |
215 uw_unit uw_Basis_send(uw_context, uw_Basis_channel, uw_Basis_string); | |
216 | |
217 uw_Basis_client uw_Basis_self(uw_context); | |
218 | |
219 uw_Basis_string uw_Basis_bless(uw_context, uw_Basis_string); | |
220 uw_Basis_string uw_Basis_blessMime(uw_context, uw_Basis_string); | |
221 uw_Basis_string uw_Basis_blessRequestHeader(uw_context, uw_Basis_string); | |
222 uw_Basis_string uw_Basis_blessResponseHeader(uw_context, uw_Basis_string); | |
223 | |
224 uw_Basis_string uw_Basis_checkUrl(uw_context, uw_Basis_string); | |
225 uw_Basis_string uw_Basis_checkMime(uw_context, uw_Basis_string); | |
226 uw_Basis_string uw_Basis_checkRequestHeader(uw_context, uw_Basis_string); | |
227 uw_Basis_string uw_Basis_checkResponseHeader(uw_context, uw_Basis_string); | |
228 | |
229 uw_Basis_string uw_Basis_getHeader(uw_context, uw_Basis_string name); | |
230 uw_unit uw_Basis_setHeader(uw_context, uw_Basis_string name, uw_Basis_string value); | |
231 | |
232 uw_Basis_string uw_unnull(uw_Basis_string); | |
233 uw_Basis_string uw_Basis_makeSigString(uw_context, uw_Basis_string); | |
234 int uw_streq(uw_Basis_string, uw_Basis_string); | |
235 uw_Basis_string uw_Basis_sigString(uw_context, uw_unit); | |
236 | |
237 uw_Basis_string uw_Basis_fileName(uw_context, uw_Basis_file); | |
238 uw_Basis_string uw_Basis_fileMimeType(uw_context, uw_Basis_file); | |
239 uw_Basis_blob uw_Basis_fileData(uw_context, uw_Basis_file); | |
240 uw_Basis_int uw_Basis_blobSize(uw_context, uw_Basis_blob); | |
241 uw_Basis_blob uw_Basis_textBlob(uw_context, uw_Basis_string); | |
242 | |
243 uw_Basis_string uw_Basis_postType(uw_context, uw_Basis_postBody); | |
244 uw_Basis_string uw_Basis_postData(uw_context, uw_Basis_postBody); | |
245 void uw_noPostBody(uw_context); | |
246 void uw_postBody(uw_context, uw_Basis_postBody); | |
247 int uw_hasPostBody(uw_context); | |
248 uw_Basis_postBody uw_getPostBody(uw_context); | |
249 | |
250 void uw_mayReturnIndirectly(uw_context); | |
251 __attribute__((noreturn)) void uw_return_blob(uw_context, uw_Basis_blob, uw_Basis_string mimeType); | |
252 __attribute__((noreturn)) void uw_redirect(uw_context, uw_Basis_string url); | |
253 | |
254 uw_Basis_time uw_Basis_now(uw_context); | |
255 uw_Basis_time uw_Basis_addSeconds(uw_context, uw_Basis_time, uw_Basis_int); | |
256 uw_Basis_int uw_Basis_diffInSeconds(uw_context, uw_Basis_time, uw_Basis_time); | |
257 uw_Basis_int uw_Basis_toSeconds(uw_context, uw_Basis_time); | |
258 uw_Basis_int uw_Basis_diffInMilliseconds(uw_context, uw_Basis_time, uw_Basis_time); | |
259 uw_Basis_int uw_Basis_toMilliseconds(uw_context, uw_Basis_time); | |
260 extern const uw_Basis_time uw_Basis_minTime; | |
261 | |
262 void uw_register_transactional(uw_context, void *data, uw_callback commit, uw_callback rollback, uw_callback_with_retry free); | |
263 | |
264 void uw_check_heap(uw_context, size_t extra); | |
265 char *uw_heap_front(uw_context); | |
266 void uw_set_heap_front(uw_context, char*); | |
267 | |
268 uw_Basis_string uw_Basis_unAs(uw_context, uw_Basis_string); | |
269 | |
270 extern char *uw_sqlfmtInt; | |
271 extern char *uw_sqlfmtFloat; | |
272 extern int uw_Estrings; | |
273 extern char *uw_sqlsuffixString; | |
274 extern char *uw_sqlsuffixChar; | |
275 extern char *uw_sqlsuffixBlob; | |
276 extern char *uw_sqlfmtUint4; | |
277 | |
278 void *uw_get_global(uw_context, char *name); | |
279 void uw_set_global(uw_context, char *name, void *data, uw_callback free); | |
280 | |
281 uw_Basis_bool uw_Basis_isalnum(uw_context, uw_Basis_char); | |
282 uw_Basis_bool uw_Basis_isalpha(uw_context, uw_Basis_char); | |
283 uw_Basis_bool uw_Basis_isblank(uw_context, uw_Basis_char); | |
284 uw_Basis_bool uw_Basis_iscntrl(uw_context, uw_Basis_char); | |
285 uw_Basis_bool uw_Basis_isdigit(uw_context, uw_Basis_char); | |
286 uw_Basis_bool uw_Basis_isgraph(uw_context, uw_Basis_char); | |
287 uw_Basis_bool uw_Basis_islower(uw_context, uw_Basis_char); | |
288 uw_Basis_bool uw_Basis_isprint(uw_context, uw_Basis_char); | |
289 uw_Basis_bool uw_Basis_ispunct(uw_context, uw_Basis_char); | |
290 uw_Basis_bool uw_Basis_isspace(uw_context, uw_Basis_char); | |
291 uw_Basis_bool uw_Basis_isupper(uw_context, uw_Basis_char); | |
292 uw_Basis_bool uw_Basis_isxdigit(uw_context, uw_Basis_char); | |
293 uw_Basis_char uw_Basis_tolower(uw_context, uw_Basis_char); | |
294 uw_Basis_char uw_Basis_toupper(uw_context, uw_Basis_char); | |
295 | |
296 uw_Basis_int uw_Basis_ord(uw_context, uw_Basis_char); | |
297 uw_Basis_char uw_Basis_chr(uw_context, uw_Basis_int); | |
298 | |
299 uw_Basis_string uw_Basis_currentUrl(uw_context); | |
300 void uw_set_currentUrl(uw_context, char *); | |
301 | |
302 extern size_t uw_messages_max, uw_clients_max, uw_headers_max, uw_page_max, uw_heap_max, uw_script_max; | |
303 extern size_t uw_inputs_max, uw_cleanup_max, uw_subinputs_max, uw_deltas_max, uw_transactionals_max, uw_globals_max; | |
304 | |
305 extern size_t uw_database_max; | |
306 | |
307 extern int uw_time; | |
308 | |
309 void uw_set_deadline(uw_context, int); | |
310 void uw_check_deadline(uw_context); | |
311 | |
312 uw_Basis_unit uw_Basis_debug(uw_context, uw_Basis_string); | |
313 uw_Basis_int uw_Basis_naughtyDebug(uw_context, uw_Basis_string); | |
314 | |
315 void uw_set_client_data(uw_context, void *); | |
316 | |
317 uw_Basis_int uw_Basis_rand(uw_context); | |
318 | |
319 extern int uw_time_max, uw_supports_direct_status, uw_min_heap; | |
320 | |
321 failure_kind uw_runCallback(uw_context, void (*callback)(uw_context)); | |
322 | |
323 uw_Basis_string uw_Basis_timef(uw_context, const char *fmt, uw_Basis_time); | |
324 uw_Basis_time uw_Basis_stringToTimef(uw_context, const char *fmt, uw_Basis_string); | |
325 uw_Basis_time uw_Basis_stringToTimef_error(uw_context, const char *fmt, uw_Basis_string); | |
326 | |
327 uw_Basis_string uw_Basis_crypt(uw_context, uw_Basis_string key, uw_Basis_string salt); | |
328 | |
329 uw_Basis_bool uw_Basis_eq_time(uw_context, uw_Basis_time, uw_Basis_time); | |
330 uw_Basis_bool uw_Basis_lt_time(uw_context, uw_Basis_time, uw_Basis_time); | |
331 uw_Basis_bool uw_Basis_le_time(uw_context, uw_Basis_time, uw_Basis_time); | |
332 | |
333 void uw_buffer_init(size_t max, uw_buffer *, size_t initial); | |
334 void uw_buffer_free(uw_buffer *); | |
335 void uw_buffer_reset(uw_buffer *); | |
336 int uw_buffer_check(uw_buffer *, size_t extra); | |
337 size_t uw_buffer_used(uw_buffer *); | |
338 size_t uw_buffer_avail(uw_buffer *); | |
339 int uw_buffer_append(uw_buffer *, const char *, size_t); | |
340 | |
341 void uw_setQueryString(uw_context, uw_Basis_string); | |
342 uw_Basis_string uw_queryString(uw_context); | |
343 | |
344 uw_Basis_time *uw_Basis_readUtc(uw_context, uw_Basis_string); | |
345 | |
346 void uw_isPost(uw_context); | |
347 uw_Basis_bool uw_Basis_currentUrlHasPost(uw_context); | |
348 uw_Basis_bool uw_Basis_currentUrlHasQueryString(uw_context); | |
349 | |
350 void uw_cutErrorLocation(char *); | |
351 | |
352 uw_Basis_string uw_Basis_fresh(uw_context); | |
353 | |
354 uw_Basis_float uw_Basis_floatFromInt(uw_context, uw_Basis_int); | |
355 uw_Basis_int uw_Basis_ceil(uw_context, uw_Basis_float); | |
356 uw_Basis_int uw_Basis_trunc(uw_context, uw_Basis_float); | |
357 uw_Basis_int uw_Basis_round(uw_context, uw_Basis_float); | |
358 | |
359 #endif |