leveldb
Public Member Functions | Private Attributes | List of all members
leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile Class Reference
Inheritance diagram for leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile:
Inheritance graph
[legend]
Collaboration diagram for leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile:
Collaboration graph
[legend]

Public Member Functions

 PosixSequentialFile (const std::string &fname, FILE *f)
 
virtual ~PosixSequentialFile ()
 
virtual Status Read (size_t n, Slice *result, char *scratch)
 
virtual Status Skip (uint64_t n)
 
- Public Member Functions inherited from leveldb::SequentialFile
 SequentialFile ()
 
virtual ~SequentialFile ()
 

Private Attributes

std::string filename_
 
FILE * file_
 

Detailed Description

Definition at line 35 of file env_posix.cc.

Constructor & Destructor Documentation

§ PosixSequentialFile()

leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::PosixSequentialFile ( const std::string &  fname,
FILE *  f 
)
inline

§ ~PosixSequentialFile()

virtual leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::~PosixSequentialFile ( )
inlinevirtual

Definition at line 43 of file env_posix.cc.

Member Function Documentation

§ Read()

virtual Status leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::Read ( size_t  n,
Slice result,
char *  scratch 
)
inlinevirtual

Implements leveldb::SequentialFile.

Definition at line 45 of file env_posix.cc.

45  {
46  Status s;
47  size_t r = fread_unlocked(scratch, 1, n, file_);
48  *result = Slice(scratch, r);
49  if (r < n) {
50  if (feof(file_)) {
51  // We leave status as ok if we hit the end of the file
52  } else {
53  // A partial read with an error: return a non-ok status
54  s = IOError(filename_, errno);
55  }
56  }
57  return s;
58  }
static Status IOError(const std::string &context, int err_number)
Definition: env_posix.cc:31
Here is the call graph for this function:

§ Skip()

virtual Status leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::Skip ( uint64_t  n)
inlinevirtual

Implements leveldb::SequentialFile.

Definition at line 60 of file env_posix.cc.

60  {
61  if (fseek(file_, n, SEEK_CUR)) {
62  return IOError(filename_, errno);
63  }
64  return Status::OK();
65  }
static Status OK()
Definition: status.h:32
static Status IOError(const std::string &context, int err_number)
Definition: env_posix.cc:31
Here is the call graph for this function:

Member Data Documentation

§ file_

FILE* leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::file_
private

Definition at line 38 of file env_posix.cc.

§ filename_

std::string leveldb::anonymous_namespace{env_posix.cc}::PosixSequentialFile::filename_
private

Definition at line 37 of file env_posix.cc.


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