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