hs-mesos-0.20.0.0: ext/types/master_info.cpp
#include <iostream>
#include "types.h"
using namespace mesos;
MasterInfoPtr toMasterInfo(char* infoID,
int infoIDLen,
unsigned int infoIP,
unsigned int* infoPort,
char* pid,
int pidLen,
char* hostname,
int hostnameLen)
{
MasterInfoPtr masterInfo = new MasterInfo();
masterInfo->set_id(infoID, infoIDLen);
masterInfo->set_ip(infoIP);
if (infoPort != NULL)
masterInfo->set_port(*infoPort);
if (pid != NULL)
masterInfo->set_pid(pid, pidLen);
if (hostname != NULL)
masterInfo->set_hostname(hostname, hostnameLen);
return masterInfo;
}
void fromMasterInfo(MasterInfoPtr info,
char** infoID,
int* infoIDLen,
unsigned int* infoIP,
unsigned int* infoPort,
char** pid,
int* pidLen,
char** hostname,
int* hostnameLen)
{
std::string* i = info->mutable_id();
*infoID = (char*) i->data();
*infoIDLen = i->size();
*infoIP = info->ip();
*infoPort = info->port();
if (info->has_pid())
{
std::string* p = info->mutable_pid();
*pid = (char*) p->data();
*pidLen = p->size();
}
if (info->has_hostname())
{
std::string* h = info->mutable_hostname();
*hostname = (char*) h->data();
*hostnameLen = h->size();
}
}
void destroyMasterInfo(MasterInfoPtr info)
{
delete info;
}