diff options
| author | Mike Hearn <[email protected]> | 2012-06-25 11:17:22 +0200 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2012-10-20 23:08:56 +0200 |
| commit | 5e650d6d2dbfc284c300668e71188e663d8f0a45 (patch) | |
| tree | bef5ac4e7bfa9845b23ea975be58fa3fe108ef4b /src/leveldb/db/log_writer.h | |
| parent | Merge pull request #1880 from sipa/threadimport (diff) | |
| download | discoin-5e650d6d2dbfc284c300668e71188e663d8f0a45.tar.xz discoin-5e650d6d2dbfc284c300668e71188e663d8f0a45.zip | |
Import LevelDB 1.5, it will be used for the transaction database.
Diffstat (limited to 'src/leveldb/db/log_writer.h')
| -rw-r--r-- | src/leveldb/db/log_writer.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/leveldb/db/log_writer.h b/src/leveldb/db/log_writer.h new file mode 100644 index 000000000..a3a954d96 --- /dev/null +++ b/src/leveldb/db/log_writer.h @@ -0,0 +1,48 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_DB_LOG_WRITER_H_ +#define STORAGE_LEVELDB_DB_LOG_WRITER_H_ + +#include <stdint.h> +#include "db/log_format.h" +#include "leveldb/slice.h" +#include "leveldb/status.h" + +namespace leveldb { + +class WritableFile; + +namespace log { + +class Writer { + public: + // Create a writer that will append data to "*dest". + // "*dest" must be initially empty. + // "*dest" must remain live while this Writer is in use. + explicit Writer(WritableFile* dest); + ~Writer(); + + Status AddRecord(const Slice& slice); + + private: + WritableFile* dest_; + int block_offset_; // Current offset in block + + // crc32c values for all supported record types. These are + // pre-computed to reduce the overhead of computing the crc of the + // record type stored in the header. + uint32_t type_crc_[kMaxRecordType + 1]; + + Status EmitPhysicalRecord(RecordType type, const char* ptr, size_t length); + + // No copying allowed + Writer(const Writer&); + void operator=(const Writer&); +}; + +} // namespace log +} // namespace leveldb + +#endif // STORAGE_LEVELDB_DB_LOG_WRITER_H_ |