| | #ifndef CAFFE_UTIL_DB_HPP |
| | #define CAFFE_UTIL_DB_HPP |
| |
|
| | #include <string> |
| |
|
| | #include "caffe/common.hpp" |
| | #include "caffe/proto/caffe.pb.h" |
| |
|
| | namespace caffe { namespace db { |
| |
|
| | enum Mode { READ, WRITE, NEW }; |
| |
|
| | class Cursor { |
| | public: |
| | Cursor() { } |
| | virtual ~Cursor() { } |
| | virtual void SeekToFirst() = 0; |
| | virtual void Next() = 0; |
| | virtual string key() = 0; |
| | virtual string value() = 0; |
| | virtual bool valid() = 0; |
| |
|
| | DISABLE_COPY_AND_ASSIGN(Cursor); |
| | }; |
| |
|
| | class Transaction { |
| | public: |
| | Transaction() { } |
| | virtual ~Transaction() { } |
| | virtual void Put(const string& key, const string& value) = 0; |
| | virtual void Commit() = 0; |
| |
|
| | DISABLE_COPY_AND_ASSIGN(Transaction); |
| | }; |
| |
|
| | class DB { |
| | public: |
| | DB() { } |
| | virtual ~DB() { } |
| | virtual void Open(const string& source, Mode mode) = 0; |
| | virtual void Close() = 0; |
| | virtual Cursor* NewCursor() = 0; |
| | virtual Transaction* NewTransaction() = 0; |
| |
|
| | DISABLE_COPY_AND_ASSIGN(DB); |
| | }; |
| |
|
| | DB* GetDB(DataParameter::DB backend); |
| | DB* GetDB(const string& backend); |
| |
|
| | } |
| | } |
| |
|
| | #endif |
| |
|