44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
//
|
|
// liteOpConverter.cpp
|
|
// MNNConverter
|
|
//
|
|
// Created by MNN on 2019/01/31.
|
|
// Copyright © 2018, Alibaba Group Holding Limited
|
|
//
|
|
|
|
#include "liteOpConverter.hpp"
|
|
tflite::BuiltinOperator liteOpConverter:: getOpCode(tflite::OperatorCodeT* opcode) {
|
|
if (opcode->builtin_code <= 0) {
|
|
return (tflite::BuiltinOperator)opcode->deprecated_builtin_code;
|
|
}
|
|
return opcode->builtin_code;
|
|
}
|
|
|
|
liteOpConverterSuit* liteOpConverterSuit::_uniqueSuit = nullptr;
|
|
|
|
liteOpConverter* liteOpConverterSuit::search(const tflite::BuiltinOperator opIndex) {
|
|
auto iter = _liteOpConverters.find(opIndex);
|
|
if (iter == _liteOpConverters.end()) {
|
|
return nullptr;
|
|
}
|
|
return iter->second;
|
|
}
|
|
|
|
liteOpConverterSuit* liteOpConverterSuit::get() {
|
|
if (_uniqueSuit == nullptr) {
|
|
_uniqueSuit = new liteOpConverterSuit;
|
|
}
|
|
return _uniqueSuit;
|
|
}
|
|
|
|
liteOpConverterSuit::~liteOpConverterSuit() {
|
|
for (auto& it : _liteOpConverters) {
|
|
delete it.second;
|
|
}
|
|
_liteOpConverters.clear();
|
|
}
|
|
|
|
void liteOpConverterSuit::insert(liteOpConverter* t, tflite::BuiltinOperator opIndex) {
|
|
_liteOpConverters.insert(std::make_pair(opIndex, t));
|
|
}
|