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.
0.10
Pieter Wuille 11 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:
void print() const; 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 #endif

38
src/main.h

@ -22,7 +22,6 @@ class CBlock;
class CBlockIndex; class CBlockIndex;
class CKeyItem; class CKeyItem;
class CReserveKey; class CReserveKey;
class CBlockLocator;
class CAddress; class CAddress;
class CInv; 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;
};

Loading…
Cancel
Save