github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/c-deps/libroach/snapshot.h (about)

     1  // Copyright 2018 The Cockroach Authors.
     2  //
     3  // Use of this software is governed by the Business Source License
     4  // included in the file licenses/BSL.txt.
     5  //
     6  // As of the Change Date specified in that file, in accordance with
     7  // the Business Source License, use of this software will be governed
     8  // by the Apache License, Version 2.0, included in the file
     9  // licenses/APL.txt.
    10  
    11  #pragma once
    12  
    13  #include <libroach.h>
    14  #include <rocksdb/db.h>
    15  #include "engine.h"
    16  
    17  namespace cockroach {
    18  
    19  struct DBSnapshot : public DBEngine {
    20    const rocksdb::Snapshot* snapshot;
    21  
    22    DBSnapshot(DBEngine* db) : DBEngine(db->rep, db->iters), snapshot(db->rep->GetSnapshot()) {}
    23    virtual ~DBSnapshot();
    24  
    25    virtual DBStatus Put(DBKey key, DBSlice value);
    26    virtual DBStatus Merge(DBKey key, DBSlice value);
    27    virtual DBStatus Delete(DBKey key);
    28    virtual DBStatus SingleDelete(DBKey key);
    29    virtual DBStatus DeleteRange(DBKey start, DBKey end);
    30    virtual DBStatus CommitBatch(bool sync);
    31    virtual DBStatus ApplyBatchRepr(DBSlice repr, bool sync);
    32    virtual DBSlice BatchRepr();
    33    virtual DBStatus Get(DBKey key, DBString* value);
    34    virtual DBIterator* NewIter(DBIterOptions);
    35    virtual DBStatus GetStats(DBStatsResult* stats);
    36    virtual DBStatus GetTickersAndHistograms(DBTickersAndHistogramsResult* stats);
    37    virtual DBString GetCompactionStats();
    38    virtual DBStatus GetEnvStats(DBEnvStatsResult* stats);
    39    virtual DBStatus GetEncryptionRegistries(DBEncryptionRegistries* result);
    40    virtual DBStatus EnvWriteFile(DBSlice path, DBSlice contents);
    41    virtual DBStatus EnvOpenFile(DBSlice path, uint64_t bytes_per_sync, rocksdb::WritableFile** file);
    42    virtual DBStatus EnvReadFile(DBSlice path, DBSlice* contents);
    43    virtual DBStatus EnvAppendFile(rocksdb::WritableFile* file, DBSlice contents);
    44    virtual DBStatus EnvSyncFile(rocksdb::WritableFile* file);
    45    virtual DBStatus EnvCloseFile(rocksdb::WritableFile* file);
    46    virtual DBStatus EnvDeleteFile(DBSlice path);
    47    virtual DBStatus EnvDeleteDirAndFiles(DBSlice dir);
    48    virtual DBStatus EnvLinkFile(DBSlice oldname, DBSlice newname);
    49    virtual DBStatus EnvOpenReadableFile(DBSlice path, rocksdb::RandomAccessFile** file);
    50    virtual DBStatus EnvReadAtFile(rocksdb::RandomAccessFile* file, DBSlice buffer, int64_t offset,
    51                                   int* n);
    52    virtual DBStatus EnvCloseReadableFile(rocksdb::RandomAccessFile* file);
    53    virtual DBStatus EnvOpenDirectory(DBSlice path, rocksdb::Directory** file);
    54    virtual DBStatus EnvSyncDirectory(rocksdb::Directory* file);
    55    virtual DBStatus EnvCloseDirectory(rocksdb::Directory* file);
    56    virtual DBStatus EnvRenameFile(DBSlice oldname, DBSlice newname);
    57    virtual DBStatus EnvCreateDir(DBSlice name);
    58    virtual DBStatus EnvDeleteDir(DBSlice name);
    59    virtual DBStatus EnvListDir(DBSlice name, std::vector<std::string>* result);
    60  };
    61  
    62  }  // namespace cockroach