31 #include <libtorrent/bencode.hpp>
32 #include <libtorrent/entry.hpp>
35 #include <QFileDevice>
41 , m_buffer {
std::make_shared<QByteArray>()}
42 , m_bufferSize {bufferSize}
49 if (m_buffer.use_count() == 1)
51 if (m_device->error() == QFileDevice::NoError)
52 m_device->write(*m_buffer);
60 if (m_buffer->size() >= m_bufferSize)
62 if (m_device->error() == QFileDevice::NoError)
63 m_device->write(*m_buffer);
71 QSaveFile
file {path};
72 if (!
file.open(QIODevice::WriteOnly) || (
file.write(data) != data.size()) || !
file.flush() || !
file.commit())
73 return nonstd::make_unexpected(
file.errorString());
79 QSaveFile
file {path};
80 if (!
file.open(QIODevice::WriteOnly))
81 return nonstd::make_unexpected(
file.errorString());
84 if ((
file.size() != bencodedDataSize) || !
file.flush() || !
file.commit())
85 return nonstd::make_unexpected(
file.errorString());
std::shared_ptr< QByteArray > m_buffer
~FileDeviceOutputIterator()
FileDeviceOutputIterator(QFileDevice &device, const int bufferSize=(4 *1024))
FileDeviceOutputIterator & operator=(char c)
nonstd::expected< void, QString > saveToFile(const QString &path, const QByteArray &data)
file(GLOB QBT_TS_FILES "${qBittorrent_SOURCE_DIR}/src/lang/*.ts") set_source_files_properties($