packages feed

hs-mesos-0.20.0.0: ext/types/resource_usage.cpp

#include <iostream>
#include "types.h"

using namespace mesos;

ResourceUsagePtr toResourceUsage(SlaveIDPtr slaveID,
				 FrameworkIDPtr frameworkID,
				 ExecutorIDPtr executorID,
				 char* executorName,
				 int nameLen,
				 TaskIDPtr taskID,
				 ResourceStatisticsPtr statistics)
{
  ResourceUsagePtr usage = new ResourceUsage();
  *usage->mutable_slave_id() = *slaveID;
  *usage->mutable_framework_id() = *frameworkID;
  if (executorID != NULL)
    *usage->mutable_executor_id() = *executorID;
  if (executorName != NULL)
    usage->set_executor_name(executorName, nameLen);
  if (taskID != NULL)
    *usage->mutable_task_id() = *taskID;
  if (statistics != NULL)
    *usage->mutable_statistics() = *statistics;

  return usage;
}

void fromResourceUsage(ResourceUsagePtr usage,
		       SlaveIDPtr* slaveID,
		       FrameworkIDPtr* frameworkID,
		       ExecutorIDPtr* executorID,
		       char** executorName,
		       int* nameLen,
		       TaskIDPtr* taskID,
		       ResourceStatisticsPtr* statistics)
{
  *slaveID = usage->mutable_slave_id();
  *frameworkID = usage->mutable_framework_id();
  if (usage->has_executor_id())
    *executorID = usage->mutable_executor_id();
  if (usage->has_executor_name())
    {
      std::string* n = usage->mutable_executor_name();
      *executorName = (char*) n->data();
      *nameLen = n->size();
    }
  if (usage->has_task_id())
    *taskID = usage->mutable_task_id();
  if (usage->has_statistics())
    *statistics = usage->mutable_statistics();
}

void destroyResourceUsage(ResourceUsagePtr usage)
{
  delete usage;
}