Gearman-XS

 view release on metacpan or  search on metacpan

Worker.xs  view on Meta::CPAN

  CODE:
    Newxz(worker_cb, 1, gearman_worker_cb);
    worker_cb->func= newSVsv(worker_fn);
    worker_cb->cb_arg= context;
    RETVAL= gearman_worker_add_function(self, function_name, timeout,
                                        _perl_worker_function_callback,
                                        (void *)worker_cb );
  OUTPUT:
    RETVAL

gearman_return_t
work(self)
    gearman_xs_worker *self
  CODE:
    RETVAL= gearman_worker_work(self);
  OUTPUT:
    RETVAL

const char *
error(self)
    gearman_xs_worker *self
  CODE:
    RETVAL= gearman_worker_error(self);
  OUTPUT:
    RETVAL

gearman_worker_options_t
options(self)
    gearman_xs_worker *self
  CODE:
    RETVAL= gearman_worker_options(self);
  OUTPUT:
    RETVAL

void
set_options(self, options)
    gearman_xs_worker *self
    gearman_worker_options_t options
  CODE:
    gearman_worker_set_options(self, options);

void
add_options(self, options)
    gearman_xs_worker *self
    gearman_worker_options_t options
  CODE:
    gearman_worker_add_options(self, options);

void
remove_options(self, options)
    gearman_xs_worker *self
    gearman_worker_options_t options
  CODE:
    gearman_worker_remove_options(self, options);

void
grab_job(self)
    gearman_xs_worker *self
  PREINIT:
    gearman_return_t ret;
  PPCODE:
    gearman_job_st *job= gearman_worker_grab_job(self, NULL, &ret);
    XPUSHs(sv_2mortal(newSViv(ret)));
    if (ret == GEARMAN_SUCCESS)
      XPUSHs(sv_2mortal(_bless("Gearman::XS::Job", job)));
    else
      XPUSHs(&PL_sv_undef);

int
timeout(self)
    gearman_xs_worker *self
  CODE:
    RETVAL= gearman_worker_timeout(self);
  OUTPUT:
    RETVAL

void
set_timeout(self, timeout)
    gearman_xs_worker *self
    int timeout
  CODE:
    gearman_worker_set_timeout(self, timeout);

gearman_return_t
wait(self)
    gearman_xs_worker *self
  CODE:
    RETVAL= gearman_worker_wait(self);
  OUTPUT:
    RETVAL

void
set_log_fn(self, fn, verbose)
    gearman_xs_worker *self
    SV * fn
    gearman_verbose_t verbose
  CODE:
    gearman_worker_set_log_fn(self, _perl_log_fn_callback, newSVsv(fn), verbose);

void
function_exists(self, function_name)
    gearman_xs_worker *self
    const char *function_name
  PPCODE:
    if (gearman_worker_function_exist(self, function_name, strlen(function_name)))
      XSRETURN_YES;
    else
      XSRETURN_NO;

void
DESTROY(self)
    gearman_xs_worker *self
  CODE:
    gearman_worker_free(self);



( run in 0.545 second using v1.01-cache-2.11-cpan-5511b514fd6 )