Browse Source

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.
0.14
Pieter Wuille 8 years ago
parent
commit
c2c5d42f36
  1. 3
      src/hash.h
  2. 3
      src/script/bitcoinconsensus.cpp
  3. 3
      src/serialize.h
  4. 25
      src/streams.h

3
src/hash.h

@ -138,9 +138,8 @@ public:
CHashWriter(int nTypeIn, int nVersionIn) : nType(nTypeIn), nVersion(nVersionIn) {} 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); ctx.Write((const unsigned char*)pch, size);
return (*this);
} }
// invalidates the object // invalidates the object

3
src/script/bitcoinconsensus.cpp

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

3
src/serialize.h

@ -943,10 +943,9 @@ public:
CSizeComputer(int nTypeIn, int nVersionIn) : nSize(0), nType(nTypeIn), nVersion(nVersionIn) {} 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; this->nSize += nSize;
return *this;
} }
template<typename T> template<typename T>

25
src/streams.h

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

Loading…
Cancel
Save