* Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved.
* Description: Maps a function in function expression to a precompiled function
*/
#include "function.h"
using namespace omniruntime::type;
namespace omniruntime::codegen {
Function::Function(void *address, const std::string &name, const std::vector<std::string> &aliases,
const std::vector<DataTypeId> ¶mTypes, const DataTypeId &retType, NullableResultType nullableResultType,
bool setExecutionContext)
{
this->address = address;
this->nullableResultType = nullableResultType;
this->isExecContextSet = setExecutionContext;
this->signatures.emplace_back(name, paramTypes, retType, address);
for (auto &alias : aliases) {
this->signatures.emplace_back(alias, paramTypes, retType, address);
}
}
Function::~Function() = default;
const std::vector<FunctionSignature> &Function::GetSignatures() const
{
return this->signatures;
}
std::string Function::GetId() const
{
return this->signatures.at(0).ToString();
}
DataTypeId Function::GetReturnType() const
{
return this->signatures.at(0).GetReturnType();
}
const std::vector<DataTypeId> &Function::GetParamTypes() const
{
return this->signatures.at(0).GetParams();
}
const void *Function::GetAddress() const
{
return this->address;
}
const NullableResultType Function::GetNullableResultType() const
{
return this->nullableResultType;
}
bool Function::IsExecutionContextSet() const
{
return this->isExecContextSet;
}
}