// Copyright Epic Games, Inc. All Rights Reserved. #include #include #include #include #include #include namespace zen { void BinaryWriter::Write(const void* data, size_t ByteCount, uint64_t Offset) { RwLock::ExclusiveLockScope _(m_Lock); const size_t NeedEnd = Offset + ByteCount; if (NeedEnd > m_Buffer.size()) { m_Buffer.resize(NeedEnd); } memcpy(m_Buffer.data() + Offset, data, ByteCount); } void SimpleBinaryWriter::Write(const void* Data, size_t Size) { const size_t NeededSize = m_Offset + Size; if (NeededSize > m_Buffer.size()) { const size_t NewCapacity = RoundUp(NeededSize, m_BlockSize); m_Buffer.resize(NewCapacity); } memcpy(m_Buffer.data() + m_Offset, Data, Size); m_Offset += Size; } void SimpleBinaryWriter::Clear() { m_Buffer.clear(); m_Offset = 0; } ////////////////////////////////////////////////////////////////////////// // // Testing related code follows... // #if ZEN_WITH_TESTS void stream_forcelink() { } #endif } // namespace zen