ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/EV.xs
(Generate patch)

Comparing EV/EV.xs (file contents):
Revision 1.97 by root, Fri Dec 21 04:41:12 2007 UTC vs.
Revision 1.98 by root, Fri Dec 21 05:10:01 2007 UTC

1115 CODE: 1115 CODE:
1116 RETVAL = newSVsv (w->fh); 1116 RETVAL = newSVsv (w->fh);
1117 OUTPUT: 1117 OUTPUT:
1118 RETVAL 1118 RETVAL
1119 1119
1120MODULE = EV PACKAGE = EV::Loop PREFIX = ev_loop_ 1120MODULE = EV PACKAGE = EV::Loop PREFIX = ev_
1121 1121
1122SV *new (SV *klass, unsigned int flags = 0) 1122SV *new (SV *klass, unsigned int flags = 0)
1123 CODE: 1123 CODE:
1124{ 1124{
1125 struct ev_loop *loop = ev_loop_new (flags); 1125 struct ev_loop *loop = ev_loop_new (flags);
1134 1134
1135void DESTROY (struct ev_loop *loop) 1135void DESTROY (struct ev_loop *loop)
1136 CODE: 1136 CODE:
1137 if (loop != evapi.default_loop) /* global destruction sucks */ 1137 if (loop != evapi.default_loop) /* global destruction sucks */
1138 ev_loop_destroy (loop); 1138 ev_loop_destroy (loop);
1139
1140void ev_loop_fork (struct ev_loop *loop)
1141
1142NV ev_now (struct ev_loop *loop)
1143
1144unsigned int ev_backend (struct ev_loop *loop)
1145
1146unsigned int ev_loop_count (struct ev_loop *loop)
1147
1148void ev_loop (struct ev_loop *loop, int flags = 0)
1149
1150void ev_unloop (struct ev_loop *loop, int how = 1)
1151
1152void ev_feed_fd_event (struct ev_loop *loop, int fd, int revents = EV_NONE)
1153
1154#if 0
1155
1156void ev_feed_signal_event (struct ev_loop *loop, SV *signal)
1157 CODE:
1158{
1159 Signal signum = sv_signum (signal);
1160 CHECK_SIG (signal, signum);
1161
1162 ev_feed_signal_event (loop, signum);
1163}
1164
1165#endif
1139 1166
1140ev_io *io (struct ev_loop *loop, SV *fh, int events, SV *cb) 1167ev_io *io (struct ev_loop *loop, SV *fh, int events, SV *cb)
1141 ALIAS: 1168 ALIAS:
1142 io_ns = 1 1169 io_ns = 1
1143 CODE: 1170 CODE:
1151 if (!ix) START (io, RETVAL); 1178 if (!ix) START (io, RETVAL);
1152} 1179}
1153 OUTPUT: 1180 OUTPUT:
1154 RETVAL 1181 RETVAL
1155 1182
1183ev_timer *timer (struct ev_loop *loop, NV after, NV repeat, SV *cb)
1184 ALIAS:
1185 timer_ns = 1
1186 INIT:
1187 CHECK_REPEAT (repeat);
1188 CODE:
1189 RETVAL = e_new (sizeof (ev_timer), cb, ST (0));
1190 ev_timer_set (RETVAL, after, repeat);
1191 if (!ix) START (timer, RETVAL);
1192 OUTPUT:
1193 RETVAL
1194
1195SV *periodic (struct ev_loop *loop, NV at, NV interval, SV *reschedule_cb, SV *cb)
1196 ALIAS:
1197 periodic_ns = 1
1198 INIT:
1199 CHECK_REPEAT (interval);
1200 CODE:
1201{
1202 ev_periodic *w;
1203 w = e_new (sizeof (ev_periodic), cb, ST (0));
1204 w->fh = SvTRUE (reschedule_cb) ? newSVsv (reschedule_cb) : 0;
1205 ev_periodic_set (w, at, interval, w->fh ? e_periodic_cb : 0);
1206 RETVAL = e_bless ((ev_watcher *)w, stash_periodic);
1207 if (!ix) START (periodic, w);
1208}
1209 OUTPUT:
1210 RETVAL
1211
1212#if 0
1213
1214ev_signal *signal (struct ev_loop *loop, SV *signal, SV *cb)
1215 ALIAS:
1216 signal_ns = 1
1217 CODE:
1218{
1219 Signal signum = sv_signum (signal);
1220 CHECK_SIG (signal, signum);
1221
1222 RETVAL = e_new (sizeof (ev_signal), cb, ST (0));
1223 ev_signal_set (RETVAL, signum);
1224 if (!ix) START (signal, RETVAL);
1225}
1226 OUTPUT:
1227 RETVAL
1228
1229#endif
1230
1231ev_idle *idle (struct ev_loop *loop, SV *cb)
1232 ALIAS:
1233 idle_ns = 1
1234 CODE:
1235 RETVAL = e_new (sizeof (ev_idle), cb, ST (0));
1236 ev_idle_set (RETVAL);
1237 if (!ix) START (idle, RETVAL);
1238 OUTPUT:
1239 RETVAL
1240
1241ev_prepare *prepare (struct ev_loop *loop, SV *cb)
1242 ALIAS:
1243 prepare_ns = 1
1244 CODE:
1245 RETVAL = e_new (sizeof (ev_prepare), cb, ST (0));
1246 ev_prepare_set (RETVAL);
1247 if (!ix) START (prepare, RETVAL);
1248 OUTPUT:
1249 RETVAL
1250
1251ev_check *check (struct ev_loop *loop, SV *cb)
1252 ALIAS:
1253 check_ns = 1
1254 CODE:
1255 RETVAL = e_new (sizeof (ev_check), cb, ST (0));
1256 ev_check_set (RETVAL);
1257 if (!ix) START (check, RETVAL);
1258 OUTPUT:
1259 RETVAL
1260
1261ev_fork *fork (struct ev_loop *loop, SV *cb)
1262 ALIAS:
1263 fork_ns = 1
1264 CODE:
1265 RETVAL = e_new (sizeof (ev_fork), cb, ST (0));
1266 ev_fork_set (RETVAL);
1267 if (!ix) START (fork, RETVAL);
1268 OUTPUT:
1269 RETVAL
1270
1271ev_child *child (struct ev_loop *loop, int pid, SV *cb)
1272 ALIAS:
1273 child_ns = 1
1274 CODE:
1275 RETVAL = e_new (sizeof (ev_child), cb, ST (0));
1276 ev_child_set (RETVAL, pid);
1277 if (!ix) START (child, RETVAL);
1278 OUTPUT:
1279 RETVAL
1280
1281ev_stat *stat (struct ev_loop *loop, SV *path, NV interval, SV *cb)
1282 ALIAS:
1283 stat_ns = 1
1284 CODE:
1285 RETVAL = e_new (sizeof (ev_stat), cb, ST (0));
1286 RETVAL->fh = newSVsv (path);
1287 ev_stat_set (RETVAL, SvPVbyte_nolen (RETVAL->fh), interval);
1288 if (!ix) START (stat, RETVAL);
1289 OUTPUT:
1290 RETVAL
1291
1292ev_embed *embed (struct ev_loop *loop, struct ev_loop *other, SV *cb = &PL_sv_undef)
1293 ALIAS:
1294 embed_ns = 1
1295 CODE:
1296{
1297 if (!(ev_backend (other) & ev_embeddable_backends ()))
1298 croak ("passed loop is not embeddable via EV::embed,");
1299
1300 RETVAL = e_new (sizeof (ev_embed), cb, ST (0));
1301 RETVAL->fh = newSVsv (ST (1));
1302 ev_embed_set (RETVAL, other);
1303
1304 if (!SvOK (cb)) ev_set_cb (RETVAL, 0);
1305
1306 if (!ix) START (embed, RETVAL);
1307}
1308 OUTPUT:
1309 RETVAL
1310
1311void once (struct ev_loop *loop, SV *fh, int events, SV *timeout, SV *cb)
1312 CODE:
1313 ev_once (
1314 loop,
1315 sv_fileno (fh), events,
1316 SvOK (timeout) ? SvNV (timeout) : -1.,
1317 e_once_cb,
1318 newSVsv (cb)
1319 );
1320

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines