Browse Source

Moved WriteBlockToDisk implementation from main.h to main.cpp

miguelfreitas
Eric Lombrozo 12 years ago
parent
commit
226f821942
  1. 26
      src/main.cpp
  2. 26
      src/main.h

26
src/main.cpp

@ -1146,6 +1146,32 @@ CBlockIndex* FindBlockByHeight(int nHeight)
return vBlockIndexByHeight[nHeight]; return vBlockIndexByHeight[nHeight];
} }
bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos)
{
// Open history file to append
CAutoFile fileout = CAutoFile(OpenBlockFile(pos), SER_DISK, CLIENT_VERSION);
if (!fileout)
return error("WriteBlockToDisk() : OpenBlockFile failed");
// Write index header
unsigned int nSize = fileout.GetSerializeSize(block);
fileout << FLATDATA(Params().MessageStart()) << nSize;
// Write block
long fileOutPos = ftell(fileout);
if (fileOutPos < 0)
return error("WriteBlockToDisk() : ftell failed");
pos.nPos = (unsigned int)fileOutPos;
fileout << block;
// Flush stdio buffers and commit to disk before returning
fflush(fileout);
if (!IsInitialBlockDownload())
FileCommit(fileout);
return true;
}
bool CBlock::ReadFromDisk(const CBlockIndex* pindex) bool CBlock::ReadFromDisk(const CBlockIndex* pindex)
{ {
if (!ReadFromDisk(pindex->GetBlockPos())) if (!ReadFromDisk(pindex->GetBlockPos()))

26
src/main.h

@ -755,31 +755,7 @@ public:
/** Functions for disk access for blocks */ /** Functions for disk access for blocks */
inline bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos) bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos);
{
// Open history file to append
CAutoFile fileout = CAutoFile(OpenBlockFile(pos), SER_DISK, CLIENT_VERSION);
if (!fileout)
return error("WriteBlockToDisk() : OpenBlockFile failed");
// Write index header
unsigned int nSize = fileout.GetSerializeSize(block);
fileout << FLATDATA(Params().MessageStart()) << nSize;
// Write block
long fileOutPos = ftell(fileout);
if (fileOutPos < 0)
return error("WriteBlockToDisk() : ftell failed");
pos.nPos = (unsigned int)fileOutPos;
fileout << block;
// Flush stdio buffers and commit to disk before returning
fflush(fileout);
if (!IsInitialBlockDownload())
FileCommit(fileout);
return true;
}

Loading…
Cancel
Save