summaryrefslogtreecommitdiff
path: root/src/caffe/database_factory.cpp
blob: 062de8c02e3df1754fb7041259cff4e4ec59b853 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <string>
#include <utility>

#include "caffe/database_factory.hpp"
#include "caffe/leveldb_database.hpp"
#include "caffe/lmdb_database.hpp"

namespace caffe {

shared_ptr<Database> DatabaseFactory(const DataParameter_DB& type) {
  switch (type) {
  case DataParameter_DB_LEVELDB:
    return shared_ptr<Database>(new LeveldbDatabase());
  case DataParameter_DB_LMDB:
    return shared_ptr<Database>(new LmdbDatabase());
  default:
    LOG(FATAL) << "Unknown database type " << type;
    return shared_ptr<Database>();
  }
}

shared_ptr<Database> DatabaseFactory(const string& type) {
  if ("leveldb" == type) {
    return DatabaseFactory(DataParameter_DB_LEVELDB);
  } else if ("lmdb" == type) {
    return DatabaseFactory(DataParameter_DB_LMDB);
  } else {
    LOG(FATAL) << "Unknown database type " << type;
    return shared_ptr<Database>();
  }
}

}  // namespace caffe