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.100 by root, Fri Dec 21 09:43:57 2007 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines