Bitcoin ABC  0.24.10
P2P Digital Currency
blockfileinfo.h
Go to the documentation of this file.
1 // Copyright (c) 2018-2020 The Bitcoin developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_BLOCKFILEINFO_H
6 #define BITCOIN_BLOCKFILEINFO_H
7 
8 #include <serialize.h>
9 
10 #include <cstdint>
11 #include <string>
12 
14 public:
16  unsigned int nBlocks;
18  unsigned int nSize;
20  unsigned int nUndoSize;
22  unsigned int nHeightFirst;
24  unsigned int nHeightLast;
26  uint64_t nTimeFirst;
28  uint64_t nTimeLast;
29 
31  READWRITE(VARINT(obj.nBlocks));
32  READWRITE(VARINT(obj.nSize));
33  READWRITE(VARINT(obj.nUndoSize));
34  READWRITE(VARINT(obj.nHeightFirst));
35  READWRITE(VARINT(obj.nHeightLast));
36  READWRITE(VARINT(obj.nTimeFirst));
37  READWRITE(VARINT(obj.nTimeLast));
38  }
39 
40  void SetNull() {
41  nBlocks = 0;
42  nSize = 0;
43  nUndoSize = 0;
44  nHeightFirst = 0;
45  nHeightLast = 0;
46  nTimeFirst = 0;
47  nTimeLast = 0;
48  }
49 
51 
52  std::string ToString() const;
53 
55  void AddBlock(unsigned int nHeightIn, uint64_t nTimeIn) {
56  if (nBlocks == 0 || nHeightFirst > nHeightIn) {
57  nHeightFirst = nHeightIn;
58  }
59  if (nBlocks == 0 || nTimeFirst > nTimeIn) {
60  nTimeFirst = nTimeIn;
61  }
62  nBlocks++;
63  if (nHeightIn > nHeightLast) {
64  nHeightLast = nHeightIn;
65  }
66  if (nTimeIn > nTimeLast) {
67  nTimeLast = nTimeIn;
68  }
69  }
70 };
71 
72 #endif // BITCOIN_BLOCKFILEINFO_H
CBlockFileInfo::nTimeFirst
uint64_t nTimeFirst
earliest time of block in file
Definition: blockfileinfo.h:26
CBlockFileInfo::nTimeLast
uint64_t nTimeLast
latest time of block in file
Definition: blockfileinfo.h:28
CBlockFileInfo::CBlockFileInfo
CBlockFileInfo()
Definition: blockfileinfo.h:50
CBlockFileInfo::nBlocks
unsigned int nBlocks
number of blocks stored in file
Definition: blockfileinfo.h:16
VARINT
#define VARINT(obj)
Definition: serialize.h:596
CBlockFileInfo::nHeightFirst
unsigned int nHeightFirst
lowest height of block in file
Definition: blockfileinfo.h:22
READWRITE
#define READWRITE(...)
Definition: serialize.h:179
CBlockFileInfo::nHeightLast
unsigned int nHeightLast
highest height of block in file
Definition: blockfileinfo.h:24
CBlockFileInfo::AddBlock
void AddBlock(unsigned int nHeightIn, uint64_t nTimeIn)
update statistics (does not update nSize)
Definition: blockfileinfo.h:55
CBlockFileInfo
Definition: blockfileinfo.h:13
CBlockFileInfo::SetNull
void SetNull()
Definition: blockfileinfo.h:40
CBlockFileInfo::nUndoSize
unsigned int nUndoSize
number of used bytes in the undo file
Definition: blockfileinfo.h:20
serialize.h
CBlockFileInfo::ToString
std::string ToString() const
Definition: validation.cpp:5765
CBlockFileInfo::nSize
unsigned int nSize
number of used bytes of block file
Definition: blockfileinfo.h:18
CBlockFileInfo::SERIALIZE_METHODS
SERIALIZE_METHODS(CBlockFileInfo, obj)
Definition: blockfileinfo.h:30