Files
parallel-launcher/src/core/memory-stream.hpp
2025-07-27 19:36:46 -04:00

24 lines
574 B
C++

#include <QBuffer>
class QtMemoryStream : public QBuffer {
private:
const int m_resizeFactor;
public:
inline QtMemoryStream( int initialCapacity = 1023, int resizeFactor = 4 ) : QBuffer(), m_resizeFactor( resizeFactor ) {
buffer().reserve( initialCapacity );
open( QIODevice::ReadWrite );
}
protected:
virtual qint64 writeData( const char *data, qint64 len ) override {
if( len + buffer().size() > (qint64)buffer().capacity() ) {
buffer().reserve( ((buffer().capacity() + 1) * m_resizeFactor) - 1 );
}
return QBuffer::writeData( data, len );
}
};