blob: 86564eb262d8c80c0e825ab55e244599930bc4ed [file] [log] [blame]
#include "EpicCommonMultiOperator.h"
#include "EpicEnum.h"
namespace epic {
EpicCommonMultiOperator::EpicCommonMultiOperator() :
EpicBaseOperator(0)
{
}
EpicCommonMultiOperator::EpicCommonMultiOperator(int *scenario_id_list, int len) :
EpicBaseOperator(scenario_id_list, len)
{
}
EpicCommonMultiOperator::~EpicCommonMultiOperator()
{
}
bool EpicCommonMultiOperator::doAction(int __unused cmd, void *arg)
{
switch (cmd) {
case eAcquire:
return mConnector->acquire();
case eRelease:
return mConnector->release();
case eAcquireOption:
return doAcquireOption(arg);
default:
return false;
}
return false;
}
bool EpicCommonMultiOperator::doAcquireOption(void *arg)
{
if (arg == nullptr)
return false;
unsigned int *arg_array = reinterpret_cast<unsigned int *>(arg);
unsigned int len_array = *arg_array;
arg_array++;
return mConnector->acquire(arg_array, arg_array + len_array, len_array);
}
}