Move CBlockLocator to core.h

As CBlockLocator is a P2P data structure, and independent from the
validation logic, it can be moved to core.
This commit is contained in:
Pieter Wuille 2013-10-12 15:22:33 +02:00 committed by Pieter Wuille
parent e4daecda0b
commit f9b15a4fc9
2 changed files with 34 additions and 38 deletions

View file

@ -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

View file

@ -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;
/** 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;
};