/* */ #include "ByteArrayDiskWriter.h" #include "Util.h" ByteArrayDiskWriter::ByteArrayDiskWriter() { } ByteArrayDiskWriter::~ByteArrayDiskWriter() {} void ByteArrayDiskWriter::clear() { buf.str(""); } void ByteArrayDiskWriter::initAndOpenFile(const string& filename, int64_t totalLength) { clear(); } void ByteArrayDiskWriter::openFile(const string& filename, int64_t totalLength) { } void ByteArrayDiskWriter::closeFile() {} void ByteArrayDiskWriter::openExistingFile(const string& filename, int64_t totalLength) { openFile(filename); } void ByteArrayDiskWriter::writeData(const unsigned char* data, int32_t dataLength, int64_t position) { if(size() < position) { buf.seekp(size(), ios::beg); for(int64_t i = size(); i < position; ++i) { buf.put('\0'); } } else { buf.seekp(position, ios::beg); } buf.write(reinterpret_cast(data), dataLength); } int32_t ByteArrayDiskWriter::readData(unsigned char* data, int32_t len, int64_t position) { buf.seekg(position, ios::beg); buf.read(reinterpret_cast(data), len); buf.clear(); return buf.gcount(); }