Files
openvino/samples/cpp/common/format_reader/format_reader.cpp

42 lines
898 B
C++
Raw Normal View History

// Copyright (C) 2018-2021 Intel Corporation
2018-10-16 13:45:03 +03:00
// SPDX-License-Identifier: Apache-2.0
//
#include <format_reader.h>
#include <iostream>
2018-10-16 13:45:03 +03:00
#include "MnistUbyte.h"
#include "bmp.h"
#include "opencv_wrapper.h"
2018-10-16 13:45:03 +03:00
using namespace FormatReader;
std::vector<Registry::CreatorFunction> Registry::_data;
Register<MnistUbyte> MnistUbyte::reg;
#ifdef USE_OPENCV
Register<OCVReader> OCVReader::reg;
#else
Register<BitMap> BitMap::reg;
#endif
Reader* Registry::CreateReader(const char* filename) {
2018-10-16 13:45:03 +03:00
for (auto maker : _data) {
Reader* ol = maker(filename);
if (ol != nullptr && ol->size() != 0)
return ol;
if (ol != nullptr)
delete ol;
2018-10-16 13:45:03 +03:00
}
return nullptr;
}
void Registry::RegisterReader(CreatorFunction f) {
_data.push_back(f);
}
FORMAT_READER_API(Reader*) CreateFormatReader(const char* filename) {
2018-10-16 13:45:03 +03:00
return Registry::CreateReader(filename);
2020-02-11 22:48:49 +03:00
}