1a17a5f6f8329060d8451a45dc56cacc8900ec01
[platform/upstream/dldt.git] / inference-engine / samples / common / format_reader / format_reader.cpp
1 // Copyright (C) 2018 Intel Corporation
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5
6 #include <iostream>
7 #include <format_reader.h>
8 #include "bmp.h"
9 #include "MnistUbyte.h"
10 #include "opencv_wraper.h"
11
12 using namespace FormatReader;
13
14 std::vector<Registry::CreatorFunction> Registry::_data;
15
16 Register<MnistUbyte> MnistUbyte::reg;
17 #ifdef USE_OPENCV
18 Register<OCVReader> OCVReader::reg;
19 #else
20 Register<BitMap> BitMap::reg;
21 #endif
22
23 Reader *Registry::CreateReader(const char *filename) {
24     for (auto maker : _data) {
25         Reader *ol = maker(filename);
26         if (ol != nullptr && ol->size() != 0) return ol;
27         if (ol != nullptr) ol->Release();
28     }
29     return nullptr;
30 }
31
32 void Registry::RegisterReader(CreatorFunction f) {
33     _data.push_back(f);
34 }
35
36 FORMAT_READER_API(Reader*)CreateFormatReader(const char *filename) {
37     return Registry::CreateReader(filename);
38 }