Mesos

 view release on metacpan or  search on metacpan

xsp/ExecutorDriver.xsp  view on Meta::CPAN

%module{Mesos};
#include <ExecutorDriver.hpp>
#include <ProxyExecutor.hpp>
#include <XS/MesosUtils.hpp>
#include <string>
#include <vector>


%name{Mesos::XS::ExecutorDriver} class mesos::perl::ExecutorDriver
{

%{

static void
_xs_init(SV* self, mesos::perl::MesosChannel* channel)
    PPCODE:
        if (SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) {
            // make sure channel ref gets incremented
            mesos::perl::ProxyExecutor* proxy = new mesos::perl::ProxyExecutor(channel->share());
            mesos::perl::ExecutorDriver* driver = new mesos::perl::ExecutorDriver(proxy);
            sv_magic(SvRV(self), Nullsv, PERL_MAGIC_ext,
                             (const char*) driver, 0);
        }

%}

// for now, dont call the c++ destructor
// has a nasty habit of segfaulting(not a perl problem, purely a mesos issue)
//~ExecutorDriver();

Status start();

Status stop();

Status abort();

Status sendStatusUpdate(mesos::TaskStatus status);

Status sendFrameworkMessage(std::string data);

Status status()
    %code{% RETVAL = THIS->status_; %};

};



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