Foam::Istream& Foam::UIPstream::read(char& c) { c = externalBuf_[externalBufPosition_]; externalBufPosition_++; checkEof(); return *this; }
Istream& IPstream::read(char& c) { c = buf_[bufPosition_]; bufPosition_++; checkEof(); return *this; }
inline void Foam::UIPstream::readFromBuffer(T& t) { const size_t align = sizeof(T); externalBufPosition_ = align + ((externalBufPosition_ - 1) & ~(align - 1)); t = reinterpret_cast<T&>(externalBuf_[externalBufPosition_]); externalBufPosition_ += sizeof(T); checkEof(); }
Foam::Istream& Foam::UIPstream::read(string& str) { size_t len; readFromBuffer(len); str = &externalBuf_[externalBufPosition_]; externalBufPosition_ += len + 1; checkEof(); return *this; }
Istream& IPstream::read(word& w) { size_t ws; readFromBuffer(ws); w = &buf_[bufPosition_]; bufPosition_ += ws + 1; checkEof(); return *this; }
Istream& IPstream::read(string& s) { size_t ss; readFromBuffer(ss); s = &buf_[bufPosition_]; bufPosition_ += ss + 1; checkEof(); return *this; }
Foam::Istream& Foam::IPstream::read(word& str) { size_t len; readFromBuffer(len); str = &buf_[bufPosition_]; bufPosition_ += len + 1; checkEof(); return *this; }
inline void IPstream::readFromBuffer(void* data, size_t count, size_t align) { if (align > 1) { bufPosition_ = align + ((bufPosition_ - 1) & ~(align - 1)); } register const char* bufPtr = &buf_[bufPosition_]; register char* dataPtr = reinterpret_cast<char*>(data); register size_t i = count; while (i--) *dataPtr++ = *bufPtr++; bufPosition_ += count; checkEof(); }
inline void Foam::UIPstream::readFromBuffer ( void* data, size_t count, size_t align ) { if (align > 1) { externalBufPosition_ = align + ((externalBufPosition_ - 1) & ~(align - 1)); } const char* bufPtr = &externalBuf_[externalBufPosition_]; char* dataPtr = reinterpret_cast<char*>(data); size_t i = count; while (i--) *dataPtr++ = *bufPtr++; externalBufPosition_ += count; checkEof(); }