EV

 view release on metacpan or  search on metacpan

EV.xs  view on Meta::CPAN

               : ix == 1 ? w->rpid
               :           w->rstatus;
	OUTPUT:
        RETVAL

#endif

MODULE = EV		PACKAGE = EV::Stat	PREFIX = ev_stat_

void ev_stat_start (ev_stat *w)
	CODE:
        START (stat, w);

void ev_stat_stop (ev_stat *w)
	CODE:
        STOP (stat, w);

void DESTROY (ev_stat *w)
	CODE:
        STOP (stat, w);
        e_destroy (w);

void set (ev_stat *w, SV *path, NV interval)
	CODE:
{
        sv_setsv (e_fh (w), path);
	RESET (stat, w, (w, SvPVbyte_nolen (e_fh (w)), interval));
}

SV *path (ev_stat *w, SV *new_path = NO_INIT)
	CODE:
{
        RETVAL = e_fh (w) ? newSVsv (e_fh (w)) : &PL_sv_undef;

        if (items > 1)
          {
            sv_2mortal (e_fh (w));
            e_fh (w) = newSVsv (new_path);
            RESET (stat, w, (w, SvPVbyte_nolen (e_fh (w)), w->interval));
          }
}
	OUTPUT:
        RETVAL

NV interval (ev_stat *w, SV *new_interval = NO_INIT)
	CODE:
        RETVAL = w->interval;
        if (items > 1)
          {
            PAUSE (stat);
            w->interval = SvNV (new_interval);
            RESUME (stat);
          }
	OUTPUT:
        RETVAL

void prev (ev_stat *w)
	ALIAS:
        stat = 1
        attr = 2
	PPCODE:
{
	ev_statdata *s = ix ? &w->attr : &w->prev;

        if (ix == 1)
          ev_stat_stat (e_loop (w), w);
        else if (!s->st_nlink)
          errno = ENOENT;

        PL_statcache.st_dev   = s->st_nlink;
        PL_statcache.st_ino   = s->st_ino;
        PL_statcache.st_mode  = s->st_mode;
        PL_statcache.st_nlink = s->st_nlink;
        PL_statcache.st_uid   = s->st_uid;
        PL_statcache.st_gid   = s->st_gid;
        PL_statcache.st_rdev  = s->st_rdev;
        PL_statcache.st_size  = s->st_size;
        PL_statcache.st_atime = s->st_atime;
        PL_statcache.st_mtime = s->st_mtime;
        PL_statcache.st_ctime = s->st_ctime;

        if (GIMME_V == G_SCALAR)
          XPUSHs (boolSV (s->st_nlink));
        else if (GIMME_V == G_ARRAY && s->st_nlink)
          {
            EXTEND (SP, 13);
            PUSHs (sv_2mortal (newSViv (s->st_dev)));
            PUSHs (sv_2mortal (newSViv (s->st_ino)));
            PUSHs (sv_2mortal (newSVuv (s->st_mode)));
            PUSHs (sv_2mortal (newSVuv (s->st_nlink)));
            PUSHs (sv_2mortal (newSViv (s->st_uid)));
            PUSHs (sv_2mortal (newSViv (s->st_gid)));
            PUSHs (sv_2mortal (newSViv (s->st_rdev)));
            PUSHs (sv_2mortal (newSVnv ((NV)s->st_size)));
            PUSHs (sv_2mortal (newSVnv (s->st_atime)));
            PUSHs (sv_2mortal (newSVnv (s->st_mtime)));
            PUSHs (sv_2mortal (newSVnv (s->st_ctime)));
            PUSHs (sv_2mortal (newSVuv (4096)));
            PUSHs (sv_2mortal (newSVnv ((NV)((s->st_size + 4095) / 4096))));
          }
}

MODULE = EV		PACKAGE = EV::Embed	PREFIX = ev_embed_

void ev_embed_start (ev_embed *w)
	CODE:
        START (embed, w);

void ev_embed_stop (ev_embed *w)
	CODE:
        STOP (embed, w);

void DESTROY (ev_embed *w)
	CODE:
        STOP (embed, w);
        e_destroy (w);

void set (ev_embed *w, struct ev_loop *loop)
	CODE:
{
        sv_setsv (e_fh (w), ST (1));



( run in 2.104 seconds using v1.01-cache-2.11-cpan-71847e10f99 )