Caffe2 - C++ API
A deep learning, cross platform ML framework
Public Member Functions | Friends
caffe2::db::DBReader Class Reference

A reader wrapper for DB that also allows us to serialize it. More...

#include <db.h>

Public Member Functions

 DBReader (const string &db_type, const string &source, const int32_t num_shards=1, const int32_t shard_id=0)
 
 DBReader (const DBReaderProto &proto)
 
 DBReader (std::unique_ptr< DB > db)
 
void Open (const string &db_type, const string &source, const int32_t num_shards=1, const int32_t shard_id=0)
 
void Read (string *key, string *value) const
 Read a set of key and value from the db and move to next. More...
 
void SeekToFirst () const
 Seeks to the first key. More...
 
Cursorcursor () const
 Returns the underlying cursor of the db reader. More...
 

Friends

class DBReaderSerializer
 

Detailed Description

A reader wrapper for DB that also allows us to serialize it.

Definition at line 127 of file db.h.

Member Function Documentation

◆ cursor()

Cursor* caffe2::db::DBReader::cursor ( ) const
inline

Returns the underlying cursor of the db reader.

Note that if you directly use the cursor, the read will not be thread safe, because there is no mechanism to stop multiple threads from accessing the same cursor. You should consider using Read() explicitly.

Definition at line 233 of file db.h.

◆ Read()

void caffe2::db::DBReader::Read ( string *  key,
string *  value 
) const
inline

Read a set of key and value from the db and move to next.

Thread safe.

The string objects key and value must be created by the caller and explicitly passed in to this function. This saves one additional object copy.

If the cursor reaches its end, the reader will go back to the head of the db. This function can be used to enable multiple input ops to read the same db.

Note(jiayq): we loosen the definition of a const function here a little bit: the state of the cursor is actually changed. However, this allows us to pass in a DBReader to an Operator without the need of a duplicated output blob.

Definition at line 201 of file db.h.

◆ SeekToFirst()

void caffe2::db::DBReader::SeekToFirst ( ) const
inline

Seeks to the first key.

Thread safe.

Definition at line 220 of file db.h.


The documentation for this class was generated from the following file: