// Copyright (c) 2011-2016 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "MemoryInputStream.h" #include #include #include // memcpy namespace Common { MemoryInputStream::MemoryInputStream(const void* buffer, size_t bufferSize) : buffer(static_cast(buffer)), bufferSize(bufferSize), position(0) {} size_t MemoryInputStream::getPosition() const { return position; } bool MemoryInputStream::endOfStream() const { return position == bufferSize; } size_t MemoryInputStream::readSome(void* data, size_t size) { assert(position <= bufferSize); size_t readSize = std::min(size, bufferSize - position); if (readSize > 0) { memcpy(data, buffer + position, readSize); position += readSize; } return readSize; } }