Make streams' read and write return void

The stream implementations had two cascading layers (the upper one
with operator<< and operator>>, and a lower one with read and write).
The lower layer's functions are never cascaded (nor should they, as
they should only be used from the higher layer), so make them return
void instead.
This commit is contained in:
Pieter Wuille 2016-10-28 21:55:12 -07:00
parent 50e8a9ccd7
commit c2c5d42f36
4 changed files with 12 additions and 22 deletions

View File

@ -138,9 +138,8 @@ public:
CHashWriter(int nTypeIn, int nVersionIn) : nType(nTypeIn), nVersion(nVersionIn) {}
CHashWriter& write(const char *pch, size_t size) {
void write(const char *pch, size_t size) {
ctx.Write((const unsigned char*)pch, size);
return (*this);
}
// invalidates the object

View File

@ -23,7 +23,7 @@ public:
m_remaining(txToLen)
{}
TxInputStream& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
if (nSize > m_remaining)
throw std::ios_base::failure(std::string(__func__) + ": end of data");
@ -37,7 +37,6 @@ public:
memcpy(pch, m_data, nSize);
m_remaining -= nSize;
m_data += nSize;
return *this;
}
template<typename T>

View File

@ -943,10 +943,9 @@ public:
CSizeComputer(int nTypeIn, int nVersionIn) : nSize(0), nType(nTypeIn), nVersion(nVersionIn) {}
CSizeComputer& write(const char *psz, size_t nSize)
void write(const char *psz, size_t nSize)
{
this->nSize += nSize;
return *this;
}
template<typename T>

View File

@ -255,7 +255,7 @@ public:
void SetVersion(int n) { nVersion = n; }
int GetVersion() { return nVersion; }
CDataStream& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
// Read from the beginning of the buffer
unsigned int nReadPosNext = nReadPos + nSize;
@ -268,14 +268,13 @@ public:
memcpy(pch, &vch[nReadPos], nSize);
nReadPos = 0;
vch.clear();
return (*this);
return;
}
memcpy(pch, &vch[nReadPos], nSize);
nReadPos = nReadPosNext;
return (*this);
}
CDataStream& ignore(int nSize)
void ignore(int nSize)
{
// Ignore from the beginning of the buffer
if (nSize < 0) {
@ -288,17 +287,15 @@ public:
throw std::ios_base::failure("CDataStream::ignore(): end of data");
nReadPos = 0;
vch.clear();
return (*this);
return;
}
nReadPos = nReadPosNext;
return (*this);
}
CDataStream& write(const char* pch, size_t nSize)
void write(const char* pch, size_t nSize)
{
// Write to the end of the buffer
vch.insert(vch.end(), pch, pch + nSize);
return (*this);
}
template<typename Stream>
@ -433,16 +430,15 @@ public:
void SetVersion(int n) { nVersion = n; }
int GetVersion() { return nVersion; }
CAutoFile& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::read: file handle is NULL");
if (fread(pch, 1, nSize, file) != nSize)
throw std::ios_base::failure(feof(file) ? "CAutoFile::read: end of file" : "CAutoFile::read: fread failed");
return (*this);
}
CAutoFile& ignore(size_t nSize)
void ignore(size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::ignore: file handle is NULL");
@ -453,16 +449,14 @@ public:
throw std::ios_base::failure(feof(file) ? "CAutoFile::ignore: end of file" : "CAutoFile::read: fread failed");
nSize -= nNow;
}
return (*this);
}
CAutoFile& write(const char* pch, size_t nSize)
void write(const char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::write: file handle is NULL");
if (fwrite(pch, 1, nSize, file) != nSize)
throw std::ios_base::failure("CAutoFile::write: write failed");
return (*this);
}
template<typename T>
@ -563,7 +557,7 @@ public:
}
// read a number of bytes
CBufferedFile& read(char *pch, size_t nSize) {
void read(char *pch, size_t nSize) {
if (nSize + nReadPos > nReadLimit)
throw std::ios_base::failure("Read attempted past buffer limit");
if (nSize + nRewind > vchBuf.size())
@ -582,7 +576,6 @@ public:
pch += nNow;
nSize -= nNow;
}
return (*this);
}
// return the current reading position