comparison include/urweb.h @ 682:5bbb542243e8

Redo channels, making them single-client
author Adam Chlipala <adamc@hcoop.net>
date Sun, 29 Mar 2009 11:37:29 -0400
parents 44f23712020d
children 9a2c18dab11d
comparison
equal deleted inserted replaced
681:6c9b8875f347 682:5bbb542243e8
6 6
7 extern uw_unit uw_unit_v; 7 extern uw_unit uw_unit_v;
8 8
9 void uw_global_init(void); 9 void uw_global_init(void);
10 10
11 void uw_client_connect(size_t id, int pass, int sock); 11 void uw_client_connect(unsigned id, int pass, int sock);
12 void uw_prune_clients(time_t timeout); 12 void uw_prune_clients(time_t timeout);
13 13
14 uw_context uw_init(size_t outHeaders_len, size_t script_len, size_t page_len, size_t heap_len); 14 uw_context uw_init(size_t outHeaders_len, size_t script_len, size_t page_len, size_t heap_len);
15 void uw_set_db(uw_context, void*); 15 void uw_set_db(uw_context, void*);
16 void *uw_get_db(uw_context); 16 void *uw_get_db(uw_context);
20 void uw_reset_keep_error_message(uw_context); 20 void uw_reset_keep_error_message(uw_context);
21 21
22 failure_kind uw_begin_init(uw_context); 22 failure_kind uw_begin_init(uw_context);
23 void uw_set_headers(uw_context, char *headers); 23 void uw_set_headers(uw_context, char *headers);
24 failure_kind uw_begin(uw_context, char *path); 24 failure_kind uw_begin(uw_context, char *path);
25 void uw_login(uw_context);
25 void uw_commit(uw_context); 26 void uw_commit(uw_context);
26 int uw_rollback(uw_context); 27 int uw_rollback(uw_context);
27 28
28 __attribute__((noreturn)) void uw_error(uw_context, failure_kind, const char *fmt, ...); 29 __attribute__((noreturn)) void uw_error(uw_context, failure_kind, const char *fmt, ...);
29 char *uw_error_message(uw_context); 30 char *uw_error_message(uw_context);
53 char *uw_Basis_htmlifyInt(uw_context, uw_Basis_int); 54 char *uw_Basis_htmlifyInt(uw_context, uw_Basis_int);
54 char *uw_Basis_htmlifyFloat(uw_context, uw_Basis_float); 55 char *uw_Basis_htmlifyFloat(uw_context, uw_Basis_float);
55 char *uw_Basis_htmlifyString(uw_context, uw_Basis_string); 56 char *uw_Basis_htmlifyString(uw_context, uw_Basis_string);
56 char *uw_Basis_htmlifyBool(uw_context, uw_Basis_bool); 57 char *uw_Basis_htmlifyBool(uw_context, uw_Basis_bool);
57 char *uw_Basis_htmlifyTime(uw_context, uw_Basis_time); 58 char *uw_Basis_htmlifyTime(uw_context, uw_Basis_time);
58 char *uw_Basis_htmlifyChannel(uw_context, uw_Basis_channel);
59 59
60 uw_unit uw_Basis_htmlifyInt_w(uw_context, uw_Basis_int); 60 uw_unit uw_Basis_htmlifyInt_w(uw_context, uw_Basis_int);
61 uw_unit uw_Basis_htmlifyFloat_w(uw_context, uw_Basis_float); 61 uw_unit uw_Basis_htmlifyFloat_w(uw_context, uw_Basis_float);
62 uw_unit uw_Basis_htmlifyString_w(uw_context, uw_Basis_string); 62 uw_unit uw_Basis_htmlifyString_w(uw_context, uw_Basis_string);
63 uw_unit uw_Basis_htmlifyBool_w(uw_context, uw_Basis_bool); 63 uw_unit uw_Basis_htmlifyBool_w(uw_context, uw_Basis_bool);
64 uw_unit uw_Basis_htmlifyTime_w(uw_context, uw_Basis_time); 64 uw_unit uw_Basis_htmlifyTime_w(uw_context, uw_Basis_time);
65 65
66 char *uw_Basis_attrifyInt(uw_context, uw_Basis_int); 66 char *uw_Basis_attrifyInt(uw_context, uw_Basis_int);
67 char *uw_Basis_attrifyFloat(uw_context, uw_Basis_float); 67 char *uw_Basis_attrifyFloat(uw_context, uw_Basis_float);
68 char *uw_Basis_attrifyString(uw_context, uw_Basis_string); 68 char *uw_Basis_attrifyString(uw_context, uw_Basis_string);
69 char *uw_Basis_attrifyTime(uw_context, uw_Basis_time);
69 char *uw_Basis_attrifyChannel(uw_context, uw_Basis_channel); 70 char *uw_Basis_attrifyChannel(uw_context, uw_Basis_channel);
71 char *uw_Basis_attrifyClient(uw_context, uw_Basis_client);
70 72
71 uw_unit uw_Basis_attrifyInt_w(uw_context, uw_Basis_int); 73 uw_unit uw_Basis_attrifyInt_w(uw_context, uw_Basis_int);
72 uw_unit uw_Basis_attrifyFloat_w(uw_context, uw_Basis_float); 74 uw_unit uw_Basis_attrifyFloat_w(uw_context, uw_Basis_float);
73 uw_unit uw_Basis_attrifyString_w(uw_context, uw_Basis_string); 75 uw_unit uw_Basis_attrifyString_w(uw_context, uw_Basis_string);
74 76
88 uw_Basis_int uw_Basis_unurlifyInt(uw_context, char **); 90 uw_Basis_int uw_Basis_unurlifyInt(uw_context, char **);
89 uw_Basis_float uw_Basis_unurlifyFloat(uw_context, char **); 91 uw_Basis_float uw_Basis_unurlifyFloat(uw_context, char **);
90 uw_Basis_string uw_Basis_unurlifyString(uw_context, char **); 92 uw_Basis_string uw_Basis_unurlifyString(uw_context, char **);
91 uw_Basis_bool uw_Basis_unurlifyBool(uw_context, char **); 93 uw_Basis_bool uw_Basis_unurlifyBool(uw_context, char **);
92 uw_Basis_time uw_Basis_unurlifyTime(uw_context, char **); 94 uw_Basis_time uw_Basis_unurlifyTime(uw_context, char **);
93 uw_Basis_channel uw_Basis_unurlifyChannel(uw_context, char **);
94 95
95 uw_Basis_string uw_Basis_strcat(uw_context, const char *, const char *); 96 uw_Basis_string uw_Basis_strcat(uw_context, const char *, const char *);
96 uw_Basis_string uw_Basis_strdup(uw_context, const char *); 97 uw_Basis_string uw_Basis_strdup(uw_context, const char *);
97 uw_Basis_string uw_Basis_maybe_strdup(uw_context, const char *); 98 uw_Basis_string uw_Basis_maybe_strdup(uw_context, const char *);
98 99
100 uw_Basis_string uw_Basis_sqlifyFloat(uw_context, uw_Basis_float); 101 uw_Basis_string uw_Basis_sqlifyFloat(uw_context, uw_Basis_float);
101 uw_Basis_string uw_Basis_sqlifyString(uw_context, uw_Basis_string); 102 uw_Basis_string uw_Basis_sqlifyString(uw_context, uw_Basis_string);
102 uw_Basis_string uw_Basis_sqlifyBool(uw_context, uw_Basis_bool); 103 uw_Basis_string uw_Basis_sqlifyBool(uw_context, uw_Basis_bool);
103 uw_Basis_string uw_Basis_sqlifyTime(uw_context, uw_Basis_time); 104 uw_Basis_string uw_Basis_sqlifyTime(uw_context, uw_Basis_time);
104 uw_Basis_string uw_Basis_sqlifyChannel(uw_context, uw_Basis_channel); 105 uw_Basis_string uw_Basis_sqlifyChannel(uw_context, uw_Basis_channel);
106 uw_Basis_string uw_Basis_sqlifyClient(uw_context, uw_Basis_client);
105 107
106 uw_Basis_string uw_Basis_sqlifyIntN(uw_context, uw_Basis_int*); 108 uw_Basis_string uw_Basis_sqlifyIntN(uw_context, uw_Basis_int*);
107 uw_Basis_string uw_Basis_sqlifyFloatN(uw_context, uw_Basis_float*); 109 uw_Basis_string uw_Basis_sqlifyFloatN(uw_context, uw_Basis_float*);
108 uw_Basis_string uw_Basis_sqlifyStringN(uw_context, uw_Basis_string); 110 uw_Basis_string uw_Basis_sqlifyStringN(uw_context, uw_Basis_string);
109 uw_Basis_string uw_Basis_sqlifyBoolN(uw_context, uw_Basis_bool*); 111 uw_Basis_string uw_Basis_sqlifyBoolN(uw_context, uw_Basis_bool*);
110 uw_Basis_string uw_Basis_sqlifyTimeN(uw_context, uw_Basis_time*); 112 uw_Basis_string uw_Basis_sqlifyTimeN(uw_context, uw_Basis_time*);
111 113
112 char *uw_Basis_ensqlBool(uw_Basis_bool); 114 char *uw_Basis_ensqlBool(uw_Basis_bool);
113 115
114 char *uw_Basis_jsifyString(uw_context, uw_Basis_string); 116 char *uw_Basis_jsifyString(uw_context, uw_Basis_string);
117 char *uw_Basis_jsifyChannel(uw_context, uw_Basis_channel);
115 118
116 uw_Basis_string uw_Basis_intToString(uw_context, uw_Basis_int); 119 uw_Basis_string uw_Basis_intToString(uw_context, uw_Basis_int);
117 uw_Basis_string uw_Basis_floatToString(uw_context, uw_Basis_float); 120 uw_Basis_string uw_Basis_floatToString(uw_context, uw_Basis_float);
118 uw_Basis_string uw_Basis_boolToString(uw_context, uw_Basis_bool); 121 uw_Basis_string uw_Basis_boolToString(uw_context, uw_Basis_bool);
119 uw_Basis_string uw_Basis_timeToString(uw_context, uw_Basis_time); 122 uw_Basis_string uw_Basis_timeToString(uw_context, uw_Basis_time);
120 123
121 uw_Basis_int *uw_Basis_stringToInt(uw_context, uw_Basis_string); 124 uw_Basis_int *uw_Basis_stringToInt(uw_context, uw_Basis_string);
122 uw_Basis_float *uw_Basis_stringToFloat(uw_context, uw_Basis_string); 125 uw_Basis_float *uw_Basis_stringToFloat(uw_context, uw_Basis_string);
123 uw_Basis_bool *uw_Basis_stringToBool(uw_context, uw_Basis_string); 126 uw_Basis_bool *uw_Basis_stringToBool(uw_context, uw_Basis_string);
124 uw_Basis_time *uw_Basis_stringToTime(uw_context, uw_Basis_string); 127 uw_Basis_time *uw_Basis_stringToTime(uw_context, uw_Basis_string);
125 uw_Basis_channel *uw_Basis_stringToChannel(uw_context, uw_Basis_string);
126 128
127 uw_Basis_int uw_Basis_stringToInt_error(uw_context, uw_Basis_string); 129 uw_Basis_int uw_Basis_stringToInt_error(uw_context, uw_Basis_string);
128 uw_Basis_float uw_Basis_stringToFloat_error(uw_context, uw_Basis_string); 130 uw_Basis_float uw_Basis_stringToFloat_error(uw_context, uw_Basis_string);
129 uw_Basis_bool uw_Basis_stringToBool_error(uw_context, uw_Basis_string); 131 uw_Basis_bool uw_Basis_stringToBool_error(uw_context, uw_Basis_string);
130 uw_Basis_time uw_Basis_stringToTime_error(uw_context, uw_Basis_string); 132 uw_Basis_time uw_Basis_stringToTime_error(uw_context, uw_Basis_string);
131 uw_Basis_channel uw_Basis_stringToChannel_error(uw_context, uw_Basis_string); 133 uw_Basis_channel uw_Basis_stringToChannel_error(uw_context, uw_Basis_string);
134 uw_Basis_client uw_Basis_stringToClient_error(uw_context, uw_Basis_string);
132 135
133 uw_Basis_string uw_Basis_requestHeader(uw_context, uw_Basis_string); 136 uw_Basis_string uw_Basis_requestHeader(uw_context, uw_Basis_string);
134 137
135 void uw_write_header(uw_context, uw_Basis_string); 138 void uw_write_header(uw_context, uw_Basis_string);
136 139
137 uw_Basis_string uw_Basis_get_cookie(uw_context, uw_Basis_string c); 140 uw_Basis_string uw_Basis_get_cookie(uw_context, uw_Basis_string c);
138 uw_unit uw_Basis_set_cookie(uw_context, uw_Basis_string prefix, uw_Basis_string c, uw_Basis_string v); 141 uw_unit uw_Basis_set_cookie(uw_context, uw_Basis_string prefix, uw_Basis_string c, uw_Basis_string v);
139 142
140 uw_Basis_channel uw_Basis_new_channel(uw_context, uw_unit); 143 uw_Basis_channel uw_Basis_new_channel(uw_context, uw_unit);
141 uw_unit uw_Basis_subscribe(uw_context, uw_Basis_channel);
142 uw_unit uw_Basis_send(uw_context, uw_Basis_channel, uw_Basis_string); 144 uw_unit uw_Basis_send(uw_context, uw_Basis_channel, uw_Basis_string);
145
146 uw_Basis_client uw_Basis_self(uw_context, uw_unit);