mirror of
https://gitlab.com/parallel-launcher/parallel-launcher
synced 2025-10-06 00:23:12 +02:00
24 lines
574 B
C++
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 );
|
|
}
|
|
|
|
};
|