PIChunkStream::extract changed to PIBinaryStream

This commit is contained in:
2023-08-30 17:08:11 +03:00
parent 64a474c343
commit 3afa0ce0ab
2 changed files with 11 additions and 14 deletions

View File

@@ -183,17 +183,6 @@ void PIChunkStream::readAll() {
PIChunkStream::~PIChunkStream() {}
bool PIChunkStream::extract(PIByteArray & data, bool read_all) {
if (data.size_s() < 4) return false;
data >> tmp_data;
if (tmp_data.size_s() < 4) return false;
data_ = &tmp_data;
_init();
if (read_all) readAll();
return true;
}
void PIChunkStream::_init() {
first_byte_taken = false;
last_id = -1;

View File

@@ -89,14 +89,22 @@ public:
}
//! \~english
//! Extract %PIByteArray from "data" and set it current stream.
//! Extract %PIByteArray from "stream" and set it current stream.
//! If "read_all" then call \a readAll() after extract.
//! Returns if has data to read.
//! \~russian
//! Извлекает %PIByteArray из "data" и инициализирует им поток.
//! Извлекает %PIByteArray из "stream" и инициализирует им поток.
//! Если указан "read_all", то вызывает \a readAll() после инициализации.
//! Возвращает если ли данные для чтения.
bool extract(PIByteArray & data, bool read_all = false);
template<typename T>
bool extract(PIBinaryStream<T> & stream, bool read_all = false) {
stream >> tmp_data;
if (stream.wasReadError() || tmp_data.size_s() < 4) return false;
data_ = &tmp_data;
_init();
if (read_all) readAll();
return true;
}
void setSource(const PIByteArray & data);
void setSource(PIByteArray * data);