CAutoFile: Explicit Get() and remove unused methods
Also add documentation to some methods.
This commit is contained in:
parent
fef24cab1a
commit
a873823864
5 changed files with 25 additions and 18 deletions
|
@ -139,7 +139,7 @@ void Shutdown()
|
||||||
{
|
{
|
||||||
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
||||||
CAutoFile est_fileout(fopen(est_path.string().c_str(), "wb"), SER_DISK, CLIENT_VERSION);
|
CAutoFile est_fileout(fopen(est_path.string().c_str(), "wb"), SER_DISK, CLIENT_VERSION);
|
||||||
if (est_fileout)
|
if (!est_fileout.IsNull())
|
||||||
mempool.WriteFeeEstimates(est_fileout);
|
mempool.WriteFeeEstimates(est_fileout);
|
||||||
else
|
else
|
||||||
LogPrintf("%s: Failed to write fee estimates to %s\n", __func__, est_path.string());
|
LogPrintf("%s: Failed to write fee estimates to %s\n", __func__, est_path.string());
|
||||||
|
@ -1064,7 +1064,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||||
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
||||||
CAutoFile est_filein(fopen(est_path.string().c_str(), "rb"), SER_DISK, CLIENT_VERSION);
|
CAutoFile est_filein(fopen(est_path.string().c_str(), "rb"), SER_DISK, CLIENT_VERSION);
|
||||||
// Allowed to fail as this file IS missing on first startup.
|
// Allowed to fail as this file IS missing on first startup.
|
||||||
if (est_filein)
|
if (!est_filein.IsNull())
|
||||||
mempool.ReadFeeEstimates(est_filein);
|
mempool.ReadFeeEstimates(est_filein);
|
||||||
fFeeEstimatesInitialized = true;
|
fFeeEstimatesInitialized = true;
|
||||||
|
|
||||||
|
|
16
src/main.cpp
16
src/main.cpp
|
@ -1051,7 +1051,7 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock
|
||||||
CBlockHeader header;
|
CBlockHeader header;
|
||||||
try {
|
try {
|
||||||
file >> header;
|
file >> header;
|
||||||
fseek(file, postx.nTxOffset, SEEK_CUR);
|
fseek(file.Get(), postx.nTxOffset, SEEK_CUR);
|
||||||
file >> txOut;
|
file >> txOut;
|
||||||
} catch (std::exception &e) {
|
} catch (std::exception &e) {
|
||||||
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
||||||
|
@ -1114,16 +1114,16 @@ bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos)
|
||||||
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
||||||
|
|
||||||
// Write block
|
// Write block
|
||||||
long fileOutPos = ftell(fileout);
|
long fileOutPos = ftell(fileout.Get());
|
||||||
if (fileOutPos < 0)
|
if (fileOutPos < 0)
|
||||||
return error("WriteBlockToDisk : ftell failed");
|
return error("WriteBlockToDisk : ftell failed");
|
||||||
pos.nPos = (unsigned int)fileOutPos;
|
pos.nPos = (unsigned int)fileOutPos;
|
||||||
fileout << block;
|
fileout << block;
|
||||||
|
|
||||||
// Flush stdio buffers and commit to disk before returning
|
// Flush stdio buffers and commit to disk before returning
|
||||||
fflush(fileout);
|
fflush(fileout.Get());
|
||||||
if (!IsInitialBlockDownload())
|
if (!IsInitialBlockDownload())
|
||||||
FileCommit(fileout);
|
FileCommit(fileout.Get());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2843,7 +2843,7 @@ bool static LoadBlockIndexDB()
|
||||||
for (std::set<int>::iterator it = setBlkDataFiles.begin(); it != setBlkDataFiles.end(); it++)
|
for (std::set<int>::iterator it = setBlkDataFiles.begin(); it != setBlkDataFiles.end(); it++)
|
||||||
{
|
{
|
||||||
CDiskBlockPos pos(*it, 0);
|
CDiskBlockPos pos(*it, 0);
|
||||||
if (!CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION)) {
|
if (CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION).IsNull()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4556,7 +4556,7 @@ bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock)
|
||||||
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
||||||
|
|
||||||
// Write undo data
|
// Write undo data
|
||||||
long fileOutPos = ftell(fileout);
|
long fileOutPos = ftell(fileout.Get());
|
||||||
if (fileOutPos < 0)
|
if (fileOutPos < 0)
|
||||||
return error("CBlockUndo::WriteToDisk : ftell failed");
|
return error("CBlockUndo::WriteToDisk : ftell failed");
|
||||||
pos.nPos = (unsigned int)fileOutPos;
|
pos.nPos = (unsigned int)fileOutPos;
|
||||||
|
@ -4569,9 +4569,9 @@ bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock)
|
||||||
fileout << hasher.GetHash();
|
fileout << hasher.GetHash();
|
||||||
|
|
||||||
// Flush stdio buffers and commit to disk before returning
|
// Flush stdio buffers and commit to disk before returning
|
||||||
fflush(fileout);
|
fflush(fileout.Get());
|
||||||
if (!IsInitialBlockDownload())
|
if (!IsInitialBlockDownload())
|
||||||
FileCommit(fileout);
|
FileCommit(fileout.Get());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1939,7 +1939,7 @@ bool CAddrDB::Write(const CAddrMan& addr)
|
||||||
catch (std::exception &e) {
|
catch (std::exception &e) {
|
||||||
return error("%s : Serialize or I/O error - %s", __func__, e.what());
|
return error("%s : Serialize or I/O error - %s", __func__, e.what());
|
||||||
}
|
}
|
||||||
FileCommit(fileout);
|
FileCommit(fileout.Get());
|
||||||
fileout.fclose();
|
fileout.fclose();
|
||||||
|
|
||||||
// replace existing peers.dat, if any, with new peers.dat.XXXX
|
// replace existing peers.dat, if any, with new peers.dat.XXXX
|
||||||
|
|
|
@ -1116,14 +1116,21 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get wrapped FILE* with transfer of ownership.
|
||||||
|
* @note This will invalidate the CAutoFile object, and makes it the responsibility of the caller
|
||||||
|
* of this function to clean up the returned FILE*.
|
||||||
|
*/
|
||||||
FILE* release() { FILE* ret = file; file = NULL; return ret; }
|
FILE* release() { FILE* ret = file; file = NULL; return ret; }
|
||||||
operator FILE*() { return file; }
|
|
||||||
FILE* operator->() { return file; }
|
|
||||||
FILE& operator*() { return *file; }
|
|
||||||
FILE** operator&() { return &file; }
|
|
||||||
FILE* operator=(FILE* pnew) { return file = pnew; }
|
|
||||||
bool IsNull() const { return (file == NULL); }
|
|
||||||
|
|
||||||
|
/** Get wrapped FILE* without transfer of ownership.
|
||||||
|
* @note Ownership of the FILE* will remain with this class. Use this only if the scope of the
|
||||||
|
* CAutoFile outlives use of the passed pointer.
|
||||||
|
*/
|
||||||
|
FILE* Get() const { return file; }
|
||||||
|
|
||||||
|
/** Return true if the wrapped FILE* is NULL, false otherwise.
|
||||||
|
*/
|
||||||
|
bool IsNull() const { return (file == NULL); }
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stream subset
|
// Stream subset
|
||||||
|
|
|
@ -36,7 +36,7 @@ bool read_block(const std::string& filename, CBlock& block)
|
||||||
fseek(fp, 8, SEEK_SET); // skip msgheader/size
|
fseek(fp, 8, SEEK_SET); // skip msgheader/size
|
||||||
|
|
||||||
CAutoFile filein(fp, SER_DISK, CLIENT_VERSION);
|
CAutoFile filein(fp, SER_DISK, CLIENT_VERSION);
|
||||||
if (!filein) return false;
|
if (filein.IsNull()) return false;
|
||||||
|
|
||||||
filein >> block;
|
filein >> block;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue