packages feed

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

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

using namespace mesos;

CommandInfoPtr toCommandInfo(CommandInfo_URIPtr* uris,
			     int urisLen,
			     EnvironmentPtr environment,
			     bool shell,
			     char* value,
			     int valueLen,
                             StdStringPtr* args,
			     int argsLen,
			     char* username,
			     int usernameLen
			     )
{
  CommandInfoPtr info = new CommandInfo();

  for (int i = 0; i < urisLen; ++i)
    *info->add_uris() = *uris[i];

  if (environment != NULL)
    *info->mutable_environment() = *environment;

  info->set_shell(shell);

  info->set_value(value, valueLen);

  for (int i = 0; i < argsLen; ++i)
    *info->add_arguments() = *args[i];

  if (username != NULL)
    info->set_user(username, usernameLen);

  return info;
}

void fromCommandInfo(CommandInfoPtr info,
		     CommandInfo_URIPtr** uris,
		     int* urisLen,
		     EnvironmentPtr* environment,
		     bool* shell,
		     char** value,
		     int* valueLen,
		     StdStringPtr** args,
		     int* argsLen,
		     char** username,
		     int* usernameLen)
{

  *uris = info->mutable_uris()->mutable_data();
  *urisLen = info->uris_size();

  if (info->has_environment())
    *environment = info->mutable_environment();

  *value = (char*) info->mutable_value()->data();
  *valueLen = info->mutable_value()->size();

  *shell = info->shell();
  if (!*shell)
    {
      *args = info->mutable_arguments()->mutable_data();
      *argsLen = info->arguments_size();
    }

  if (info->has_user())
    {
      *username = (char*) info->mutable_user()->data();
      *usernameLen = info->mutable_user()->size();
    }
}

void destroyCommandInfo(CommandInfoPtr info)
{
  delete info;
}