diff options
Diffstat (limited to 'src/flatfile.h')
-rw-r--r-- | src/flatfile.h | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/src/flatfile.h b/src/flatfile.h index eea41ddf84..d599b8cc42 100644 --- a/src/flatfile.h +++ b/src/flatfile.h @@ -1,12 +1,51 @@ -// Copyright (c) 2019 The Bitcoin Core developers +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2019 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_FLATFILE_H #define BITCOIN_FLATFILE_H -#include <chain.h> +#include <string> + #include <fs.h> +#include <serialize.h> + +struct CDiskBlockPos +{ + int nFile; + unsigned int nPos; + + ADD_SERIALIZE_METHODS; + + template <typename Stream, typename Operation> + inline void SerializationOp(Stream& s, Operation ser_action) { + READWRITE(VARINT(nFile, VarIntMode::NONNEGATIVE_SIGNED)); + READWRITE(VARINT(nPos)); + } + + CDiskBlockPos() { + SetNull(); + } + + CDiskBlockPos(int nFileIn, unsigned int nPosIn) { + nFile = nFileIn; + nPos = nPosIn; + } + + friend bool operator==(const CDiskBlockPos &a, const CDiskBlockPos &b) { + return (a.nFile == b.nFile && a.nPos == b.nPos); + } + + friend bool operator!=(const CDiskBlockPos &a, const CDiskBlockPos &b) { + return !(a == b); + } + + void SetNull() { nFile = -1; nPos = 0; } + bool IsNull() const { return (nFile == -1); } + + std::string ToString() const; +}; /** * FlatFileSeq represents a sequence of numbered files storing raw data. This class facilitates |