Browse Source

Move CBlockLocator to core.h

As CBlockLocator is a P2P data structure, and independent from the
validation logic, it can be moved to core.
pull/1/head
Pieter Wuille 9 years ago committed by Pieter Wuille
parent
commit
f9b15a4fc9
  1. 34
      src/core.h
  2. 38
      src/main.h

34
src/core.h

@ -661,4 +661,38 @@ public: @@ -661,4 +661,38 @@ public:
void print() const;
};
/** Describes a place in the block chain to another node such that if the
* other node doesn't have the same branch, it can find a recent common trunk.
* The further back it is, the further before the fork it may be.
*/
struct CBlockLocator
{
std::vector<uint256> vHave;
CBlockLocator() {}
CBlockLocator(const std::vector<uint256>& vHaveIn)
{
vHave = vHaveIn;
}
IMPLEMENT_SERIALIZE
(
if (!(nType & SER_GETHASH))
READWRITE(nVersion);
READWRITE(vHave);
)
void SetNull()
{
vHave.clear();
}
bool IsNull()
{
return vHave.empty();
}
};
#endif

38
src/main.h

@ -22,7 +22,6 @@ class CBlock; @@ -22,7 +22,6 @@ class CBlock;
class CBlockIndex;
class CKeyItem;
class CReserveKey;
class CBlockLocator;
class CAddress;
class CInv;
@ -1047,43 +1046,6 @@ extern CChain chainActive; @@ -1047,43 +1046,6 @@ extern CChain chainActive;
/** Describes a place in the block chain to another node such that if the
* other node doesn't have the same branch, it can find a recent common trunk.
* The further back it is, the further before the fork it may be.
*/
class CBlockLocator
{
protected:
std::vector<uint256> vHave;
public:
CBlockLocator() {}
CBlockLocator(const std::vector<uint256>& vHaveIn)
{
vHave = vHaveIn;
}
IMPLEMENT_SERIALIZE
(
if (!(nType & SER_GETHASH))
READWRITE(nVersion);
READWRITE(vHave);
)
void SetNull()
{
vHave.clear();
}
bool IsNull()
{
return vHave.empty();
}
friend class CChain;
};

Loading…
Cancel
Save