Changeset 30:1dde7e03353f in xplcommon for src/xplcommon/Buffer.h


Ignore:
Timestamp:
01/02/13 11:54:56 (11 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

A little cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/xplcommon/Buffer.h

    r29 r30  
    3535
    3636#include <cstdlib>
     37#include <cstring>
    3738
    3839//------------------------------------------------------------------------------
     
    130131     * @return the number of bytes actually extracted.
    131132     */
    132     size_t extract(void* dest, size_t size, size_t offset = 0);
     133    size_t extract(void* dest, size_t size, size_t offset = 0) const;
    133134};
    134135
     
    207208    length += toAdd;
    208209    return toAdd;
     210}
     211
     212//------------------------------------------------------------------------------
     213
     214inline size_t Buffer::append(const void* src, size_t size)
     215{
     216    size_t toCopy = std::min(size, getAvailable());
     217    memcpy(data + length, src, toCopy);
     218    length += toCopy;
     219    return toCopy;
     220}
     221
     222//------------------------------------------------------------------------------
     223
     224inline size_t Buffer::extract(void* dest, size_t size, size_t offset) const
     225{
     226    size_t toCopy = (offset>=length) ? 0 : std::min(size, length - offset);
     227    memcpy(dest, data + offset, toCopy);
     228    return toCopy;
    209229}
    210230
Note: See TracChangeset for help on using the changeset viewer.