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;
}
Exemple #7
0
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();
}