PIP 5.6.1
Platform-Independent Primitives
Классы | Открытые типы | Открытые члены | Открытые статические члены | Открытые атрибуты | Защищенные члены | Полный список членов класса
Класс PIBinaryLog

Класс для записи и чтения бинарных данных в/из файлов логов с поддержкой воспроизведения в различных режимах. Подробнее...

#include <pibinarylog.h>

Граф наследования:PIBinaryLog:
Inheritance graph
[см. легенду]

Классы

struct  BinLogIndex
 Индексированное положение записи внутри файла лога. Подробнее...
 
struct  BinLogInfo
 Сводная информация о файле лога и его индексированных типах записей. Подробнее...
 
struct  BinLogRecordInfo
 Статистика по записям с одинаковым идентификатором. Подробнее...
 

Открытые типы

enum  PlayMode { PlayRealTime , PlayVariableSpeed , PlayStaticDelay }
 Режимы воспроизведения, используемые PIBinaryLog. Подробнее...
 
enum  SplitMode { SplitNone , SplitTime , SplitSize , SplitCount }
 Режимы разделения файлов, используемые при записи логов. Подробнее...
 
- Открытые типы унаследованные от PIIODevice
enum  DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 }
 Режимы открытия PIIODevice. Подробнее...
 
enum  DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 }
 Общие опции, поддерживаемые некоторыми устройствами. Подробнее...
 
enum  DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 }
 Характеристики канала устройства. Подробнее...
 
typedef PIFlags< DeviceOptionDeviceOptions
 Битовая маска значений DeviceOption.
 
typedef PIFlags< DeviceInfoFlagDeviceInfoFlags
 Битовая маска значений DeviceInfoFlag.
 

Открытые члены

 PIBinaryLog ()
 Создает PIBinaryLog со стандартными настройками воспроизведения и разделения файлов.
 
virtual ~PIBinaryLog ()
 Останавливает фоновую активность и закрывает текущий лог.
 
PlayMode playMode () const
 Возвращает текущий PlayMode.
 
SplitMode splitMode () const
 Возвращает текущий SplitMode.
 
PIString logDir () const
 Возвращает каталог, используемый для новых файлов лога.
 
PIString filePrefix () const
 Возвращает префикс имени файла, используемый для новых файлов лога.
 
int defaultID () const
 Возвращает идентификатор записи по умолчанию, используемый write(). Подробнее...
 
double playSpeed () const
 Возвращает текущий множитель скорости воспроизведения.
 
PISystemTime playDelay () const
 Возвращает фиксированную задержку, используемую в режиме PlayStaticDelay.
 
PISystemTime splitTime () const
 Возвращает порог накопленного времени для режима SplitTime. Подробнее...
 
llong splitFileSize () const
 Возвращает порог размера для режима SplitSize. Подробнее...
 
int splitRecordCount () const
 Возвращает порог количества записей для режима SplitCount. Подробнее...
 
bool rapidStart () const
 Возвращает, выдается ли первая запись потокового чтения без начальной задержки.
 
bool createIndexOnFly () const
 Возвращает, собираются ли данные индекса во время записи. Подробнее...
 
void createNewFile (const PIString &path)
 Создает или повторно открывает файл лога по точному пути "path" для записи. Подробнее...
 
void setPlayMode (PlayMode mode)
 Устанавливает текущий PlayMode.
 
void setSplitMode (SplitMode mode)
 Устанавливает текущий SplitMode.
 
void setLogDir (const PIString &path)
 Устанавливает каталог, используемый для вновь создаваемых файлов лога.
 
void setFilePrefix (const PIString &prefix)
 Устанавливает префикс имени файла для вновь создаваемых файлов лога. Подробнее...
 
void setDefaultID (int id)
 Устанавливает идентификатор записи по умолчанию, используемый write(). Подробнее...
 
void setRapidStart (bool enabled)
 Включает немедленную выдачу первой записи при потоковом воспроизведении. Подробнее...
 
void setCreateIndexOnFly (bool yes)
 Включает или выключает сбор индекса во время записи. Подробнее...
 
void setPlaySpeed (double speed)
 Устанавливает множитель скорости воспроизведения и переключает режим в PlayVariableSpeed. Подробнее...
 
void setPlayDelay (const PISystemTime &delay)
 Устанавливает фиксированную задержку между записями и переключает режим в PlayStaticDelay. Подробнее...
 
void setPlayRealTime ()
 Переключает воспроизведение в режим PlayRealTime. Подробнее...
 
void setSplitTime (const PISystemTime &time)
 Устанавливает порог времени для разделения файлов и переключает режим в SplitTime. Подробнее...
 
void setSplitFileSize (llong size)
 Устанавливает порог размера для разделения файлов и переключает режим в SplitSize. Подробнее...
 
void setSplitRecordCount (int count)
 Устанавливает порог количества записей для разделения файлов и переключает режим в SplitCount. Подробнее...
 
void setPause (bool pause)
 Ставит на паузу или возобновляет потоковое воспроизведение и прямую запись.
 
void setFuncGetNewFilePath (std::function< PIString()> f)
 Устанавливает пользовательский генератор путей, используемый для разделяемых файлов и неявного создания файла. Подробнее...
 
int writeBinLog (int id, PIByteArray data)
 Записывает одну запись с явным идентификатором и данными. Подробнее...
 
int writeBinLog (int id, const void *data, int size)
 Записывает одну запись с явным идентификатором и буфером данных. Подробнее...
 
int writeBinLog_raw (int id, const PISystemTime &time, const PIByteArray &data)
 Записать один НЕОБРАБОТАННЫЙ (RAW) запись в файл BinLog, с ID = id, Метка времени = time. Подробнее...
 
int writeBinLog_raw (int id, const PISystemTime &time, const void *data, int size)
 Записать один НЕОБРАБОТАННЫЙ (RAW) запись в файл BinLog, с ID = id, Метка времени = time. Подробнее...
 
int writeCount () const
 Возвращает количество записей, успешно записанных в текущей сессии.
 
PIByteArray readBinLog (int id=0, PISystemTime *time=0, int *readed_id=0)
 Прочитать одну запись из файла BinLog, с ID = id, если id = 0, то будет прочитана любая запись Подробнее...
 
int readBinLog (int id, void *read_to, int max_size, PISystemTime *time=0, int *readed_id=0)
 Прочитать одну запись из файла BinLog, с ID = id, если id = 0 чем любая запись будет прочитана Подробнее...
 
llong logSize () const
 Возвращает текущий размер файла лога в байтах.
 
llong logPos () const
 Возвращает текущую позицию в байтах в открытом файле лога.
 
bool isEnd () const
 Возвращает true, когда позиция чтения находится в конце файла или лог закрыт.
 
bool isEmpty () const
 Возвращает, не содержит ли лог записей сверх заголовка файла.
 
bool isPause () const
 Возвращает текущее состояние паузы.
 
int lastReadedID () const
 Возвращает идентификатор последней записи, прочитанной из файла.
 
PISystemTime lastReadedTimestamp () const
 Возвращает временную метку последней записи, прочитанной из файла.
 
PISystemTime logStartTimestamp () const
 Возвращает временную метку начала сессии, используемую для тайминга воспроизведения.
 
void setHeader (const PIByteArray &header)
 Устанавливает пользовательский заголовок файла для последовательно создаваемых логов. Подробнее...
 
PIByteArray getHeader () const
 Возвращает пользовательский заголовок, сохраненный в текущем открытом логе.
 
int read (void *read_to, int max_size)
 Читает одно сообщение, используя filterID, если он не пуст.
 
int write (const void *data, int size)
 Записывает одну запись, используя defaultID().
 
void restart ()
 Перезапускает чтение и воспроизведение с начала текущего лога.
 
BinLogInfo logInfo () const
 Возвращает кэшированную информацию индекса, если она есть, иначе заново разбирает информацию текущего файла. Подробнее...
 
const PIVector< BinLogIndex > & logIndex () const
 Возвращает текущие данные индекса записей. Подробнее...
 
bool createIndex ()
 Строит индекс записей для текущего файла лога. Подробнее...
 
bool isIndexed ()
 Возвращает, имеет ли текущий лог загруженные данные индекса.
 
int posForTime (const PISystemTime &time)
 Возвращает индекс первой индексированной записи в момент "time" или позже. Подробнее...
 
void seekTo (int rindex)
 Переходит к индексированной записи номер "rindex". Подробнее...
 
bool seek (const PISystemTime &time)
 Переходит к первой индексированной записи в момент "time" или позже. Подробнее...
 
bool seek (llong filepos)
 Переходит к первой индексированной записи, чья позиция в файле находится в точке "filepos" или позже. Подробнее...
 
int pos () const
 Возвращает текущую позицию индексированной записи или -1, если индекс отсутствует.
 
PIByteArray saveIndex () const
 Сериализует текущие данные индекса.
 
bool loadIndex (PIByteArray saved)
 Загружает ранее сериализованные данные индекса для текущего читаемого лога. Подробнее...
 
- Открытые члены унаследованные от PIIODevice
 PIIODevice ()
 Создает пустой PIIODevice.
 
 PIIODevice (const PIString &path, DeviceMode mode=ReadWrite)
 Создает PIIODevice с путём "path" и режимом открытия "mode".
 
virtual ~PIIODevice ()
 Уничтожает базовый объект устройства.
 
DeviceMode mode () const
 Возвращает текущий режим открытия.
 
void setMode (DeviceMode m)
 Устанавливает режим открытия без переоткрытия устройства.
 
DeviceOptions options () const
 Возвращает текущие опции устройства.
 
bool isOptionSet (DeviceOption o) const
 Возвращает, включена ли опция "o".
 
void setOptions (DeviceOptions o)
 Полностью заменяет текущие опции устройства на "o".
 
bool setOption (DeviceOption o, bool yes=true)
 Устанавливает опцию "o" в состояние "yes" и возвращает её предыдущее состояние.
 
DeviceInfoFlags infoFlags () const
 Возвращает характеристики канала устройства.
 
PIString path () const
 Возвращает текущий путь устройства.
 
void setPath (const PIString &path)
 Устанавливает путь устройства без его переоткрытия.
 
bool isReadable () const
 Возвращает, разрешает ли текущий режим чтение.
 
bool isWriteable () const
 Возвращает, разрешает ли текущий режим запись.
 
bool isOpened () const
 Возвращает, открыто ли сейчас устройство.
 
bool isClosed () const
 Возвращает, закрыто ли сейчас устройство.
 
virtual bool canRead () const
 Возвращает, возможно ли чтение прямо сейчас.
 
virtual bool canWrite () const
 Возвращает, возможна ли запись прямо сейчас.
 
void setReopenEnabled (bool yes=true)
 Включает или выключает автоматические попытки переоткрытия при потоковом чтении.
 
void setReopenTimeout (PISystemTime timeout)
 Устанавливает задержку между автоматическими попытками переоткрытия.
 
bool isReopenEnabled () const
 Возвращает, включено ли автоматическое переоткрытие.
 
PISystemTime reopenTimeout ()
 Возвращает задержку между автоматическими попытками переоткрытия.
 
void setThreadedReadSlot (ReadRetFunc func)
 Устанавливает callback, вызываемый после успешного потокового чтения. Подробнее...
 
void setThreadedReadData (void *d)
 Устанавливает пользовательские данные, передаваемые в callback потокового чтения.
 
void setThreadedReadBufferSize (int new_size)
 Устанавливает размер буфера фонового чтения в байтах. Подробнее...
 
int threadedReadBufferSize () const
 Возвращает размер буфера фонового чтения в байтах.
 
const uchar * threadedReadBuffer () const
 Возвращает указатель на внутренний буфер потокового чтения.
 
void * threadedReadData () const
 Возвращает пользовательские данные, передаваемые в callback потокового чтения.
 
bool isThreadedRead () const
 Возвращает, запущено ли потоковое чтение.
 
bool isThreadedReadStopping () const
 Возвращает, находится ли потоковое чтение в процессе остановки.
 
void startThreadedRead ()
 Запускает потоковое чтение.
 
void startThreadedRead (ReadRetFunc func)
 Устанавливает callback потокового чтения в "func" и запускает потоковое чтение.
 
void stopThreadedRead ()
 Запрашивает остановку потокового чтения.
 
void terminateThreadedRead ()
 Прерывает потоковое чтение. Подробнее...
 
bool waitThreadedReadFinished (PISystemTime timeout={})
 Ожидает завершения потокового чтения, но не дольше "timeout".
 
uint threadedReadTimeout () const
 Возвращает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
void setThreadedReadTimeout (uint ms)
 Устанавливает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
bool isThreadedWrite () const
 Возвращает, запущена ли потоковая запись.
 
void startThreadedWrite ()
 Запускает потоковую запись.
 
void stopThreadedWrite ()
 Запрашивает остановку потоковой записи.
 
void terminateThreadedWrite ()
 Прерывает потоковую запись. Подробнее...
 
bool waitThreadedWriteFinished (PISystemTime timeout={})
 Ожидает завершения потоковой записи, но не дольше "timeout".
 
void clearThreadedWriteQueue ()
 Очищает очередь заданий потоковой записи.
 
void start ()
 Запускает потоковое чтение и потоковую запись.
 
void stop ()
 Запрашивает остановку потокового чтения и потоковой записи.
 
void stopAndWait (PISystemTime timeout={})
 Останавливает оба фоновых потока и ожидает их завершения.
 
virtual void interrupt ()
 Прерывает блокирующую операцию устройства.
 
ssize_t read (void *read_to, ssize_t max_size)
 Читает в "read_to" не более "max_size" байт.
 
ssize_t read (PIMemoryBlock mb)
 Читает данные в блок памяти "mb".
 
PIByteArray read (ssize_t max_size)
 Читает не более "max_size" байт и возвращает их как PIByteArray.
 
virtual ssize_t bytesAvailable () const
 Возвращает количество байт доступных для чтения. Подробнее...
 
ssize_t write (const void *data, ssize_t max_size)
 Записывает из "data" не более "max_size" байт.
 
PIByteArray readForTime (PISystemTime timeout)
 Читает данные в течение "timeout" и возвращает накопленные байты.
 
ullong writeThreaded (const void *data, ssize_t max_size)
 Помещает "data" в очередь потоковой записи и возвращает ID задания.
 
ullong writeThreaded (const PIByteArray &data)
 Помещает массив байт "data" в очередь потоковой записи и возвращает ID задания.
 
bool configure (const PIString &config_file, const PIString &section, bool parent_section=false)
 Настраивает устройство из секции "section" файла "config_file". Подробнее...
 
virtual PIConstChars fullPathPrefix () const
 Возвращает префикс устройства, используемый в полной строке пути. Creating devices by unambiguous string.
 
PIString constructFullPath () const
 Возвращает полную строку описания этого устройства, fullPathPrefix() + "://" + ...
 
void configureFromFullPath (const PIString &full_path)
 Настраивает устройство из параметров полной строки описания.
 
PIVariantTypes::IODevice constructVariant () const
 Создает описание PIVariantTypes::IODevice для этого устройства.
 
void configureFromVariant (const PIVariantTypes::IODevice &d)
 Настраивает устройство из PIVariantTypes::IODevice.
 
ssize_t write (const PIMemoryBlock &mb)
 Записывает в устройство блок памяти "mb".
 
bool open ()
 Открывает устройство с текущими путём и режимом.
 
bool open (const PIString &_path)
 Открывает устройство с путём "path".
 
bool open (DeviceMode _mode)
 Открывает устройство с режимом "mode".
 
bool open (const PIString &_path, DeviceMode _mode)
 Открывает устройство с путём "path" и режимом "mode".
 
bool close ()
 Закрывает устройство.
 
ssize_t write (PIByteArray data)
 Записывает "data" в устройство.
 
virtual void flush ()
 Немедленно сбрасывает буферы устройства.
 
void opened ()
 Вызывается после успешного открытия.
 
void closed ()
 Вызывается после успешного закрытия.
 
void threadedReadEvent (const uchar *readed, ssize_t size)
 Вызывается после того, как потоковое чтение получило данные.
 
void threadedWriteEvent (ullong id, ssize_t written_size)
 Вызывается после того, как потоковая запись обработала задание с ID "id".
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает объект и инициализирует его свойство name.
 
virtual ~PIObject ()
 Уничтожает объект, вызывает deleted() и отключает его от событийного графа.
 
PIString name () const
 Возвращает свойство name этого объекта.
 
virtual const char * className () const
 Возвращает зарегистрированное имя класса этого объекта.
 
virtual uint classNameID () const
 Возвращает хэш от className().
 
virtual const char * parentClassName () const
 Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня.
 
bool debug () const
 Возвращает, включен ли вывод piCoutObj для этого объекта.
 
void setName (const PIString &name)
 Устанавливает свойство name этого объекта.
 
void setDebug (bool debug)
 Включает или отключает вывод piCoutObj для этого объекта.
 
PIVariant property (const char *name) const
 Возвращает свойство объекта по имени "name".
 
void setProperty (const char *name, const PIVariant &value)
 Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее...
 
bool isPropertyExists (const char *name) const
 Возвращает, существует ли свойство "name".
 
void setThreadSafe (bool yes)
 Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее...
 
bool isThreadSafe () const
 Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков.
 
bool execute (const PIString &method, const PIVector< PIVariantSimple > &vl)
 Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее...
 
bool execute (const PIString &method)
 Перегрузка execute() для метода без аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0)
 Перегрузка execute() для одного аргумента.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка execute() для двух аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка execute() для трёх аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка execute() для четырёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее...
 
bool executeQueued (PIObject *performer, const PIString &method)
 Перегрузка executeQueued() для метода без аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Перегрузка executeQueued() для одного аргумента.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка executeQueued() для двух аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка executeQueued() для трёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка executeQueued() для четырёх аргументов.
 
void dump (const PIString &line_prefix=PIString()) const
 Выводит диагностическую информацию об объекте в проектный поток вывода.
 
PIStringList scopeList () const
 Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс.
 
PIStringList methodsEH () const
 Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса.
 
bool isMethodEHContains (const PIString &name) const
 Возвращает, существует ли зарегистрированное событие или обработчик с таким именем.
 
PIString methodEHArguments (const PIString &name) const
 Возвращает список типов аргументов зарегистрированного метода через запятую.
 
PIString methodEHFullFormat (const PIString &name) const
 Возвращает полную зарегистрированную сигнатуру метода.
 
PIString methodEHFromAddr (const void *addr) const
 Возвращает имя зарегистрированного метода для указанного адреса точки входа.
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest".
 
void piDisconnect (const PIString &sig)
 Разрывает все соединения этого объекта-источника от события "sig".
 
bool isPIObject () const
 Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject.
 
template<typename T >
bool isTypeOf () const
 Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
T * cast () const
 Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr.
 
void callQueuedEvents ()
 Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю.
 
bool maybeCallQueuedEvents ()
 Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее...
 
void deleteLater ()
 Планирует отложенное удаление объекта. Подробнее...
 
void deleted (PIObject *o)
 Вызывается непосредственно перед уничтожением объекта. Подробнее...
 

Открытые статические члены

static BinLogInfo getLogInfo (const PIString &path)
 Получить информацию и статистику о бинарном логе Подробнее...
 
static bool cutBinLog (const BinLogInfo &src, const PIString &dst, int from, int to)
 Создать новый бинарный лог из части "src" с разрешенными ID и от "from" до "to" позиции файла Подробнее...
 
static bool joinBinLogsSerial (const PIStringList &src, const PIString &dst, std::function< bool(const PIString &, PISystemTime)> progress=nullptr)
 Создать новый бинарный лог из последовательных разделенных бинарных логов "src". Подробнее...
 
- Открытые статические члены унаследованные от PIIODevice
static PIIODevicecreateFromFullPath (const PIString &full_path)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromFullPath() и возвращает его. Подробнее...
 
static PIIODevicecreateFromVariant (const PIVariantTypes::IODevice &d)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromVariant() и возвращает его.
 
static PIString normalizeFullPath (const PIString &full_path)
 Возвращает нормализованную полную строку пути для "full_path".
 
static void splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0)
 Разбирает полную строку пути на путь, режим и опции.
 
static PIStringList availablePrefixes ()
 Возвращает префиксы всех зарегистрированных устройств
 
static PIStringList availableClasses ()
 Возвращает имена классов всех зарегистрированных устройств.
 
- Открытые статические члены унаследованные от PIObject
static bool execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над execute().
 
static bool execute (PIObject *o, const PIString &method)
 Статическая перегрузка execute() без аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка execute() для одного аргумента.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка execute() для двух аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка execute() для трёх аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка execute() для четырёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над executeQueued().
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method)
 Статическая перегрузка executeQueued() без аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка executeQueued() для одного аргумента.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка executeQueued() для двух аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка executeQueued() для трёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка executeQueued() для четырёх аргументов.
 
static PIObject::Connection piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc)
 Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*.
 
static PIObject::Connection piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0)
 Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED().
 
static PIObject::Connection piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc)
 Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора.
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения объекта-источника "src" от события "sig".
 
static void raiseEvent (PIObject *sender, const uint eventID)
 Внутренний помощник доставки для зарегистрированных событий без аргументов.
 
template<typename T0 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0())
 Внутренний помощник доставки для зарегистрированных событий с одним аргументом.
 
template<typename T0 , typename T1 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1())
 Внутренний помощник доставки для зарегистрированных событий с двумя аргументами.
 
template<typename T0 , typename T1 , typename T2 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2())
 Внутренний помощник доставки для зарегистрированных событий с тремя аргументами.
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3())
 Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами.
 
static PIObjectfindByName (const PIString &name)
 Возвращает первый живой объект с именем "name", либо nullptr.
 
static bool isPIObject (const PIObject *o)
 Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject.
 
static bool isPIObject (const void *o)
 Перегрузка isPIObject() для нетипизированного указателя.
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
static bool isTypeOf (const void *o)
 Перегрузка isTypeOf() для нетипизированного указателя.
 
static PIString simplifyType (const char *a, bool readable=true)
 Упрощает запись типа C++ для метаданных зарегистрированных методов.
 

Открытые атрибуты

PIVector< int > filterID
 Необязательный список идентификаторов записей, допустимых для read() и потокового воспроизведения. Подробнее...
 
- Открытые атрибуты унаследованные от PIIODevice
bool reopenEnabled
 setReopenEnabled, по умолчанию "true".
 
int reopenTimeout
 setReopenTimeout, по умолчанию 1_s.
 
int threadedReadBufferSize
 setThreadedReadBufferSize в байтах, по умолчанию 4096.
 

Защищенные члены

PIString constructFullPathDevice () const override
 Создать полный путь устройства
 
void configureFromFullPathDevice (const PIString &full_path) override
 Настроить из полного пути устройства
 
PIPropertyStorage constructVariantDevice () const override
 Создать свойства устройства варианта
 
void configureFromVariantDevice (const PIPropertyStorage &d) override
 Настроить из свойств устройства варианта
 
ssize_t readDevice (void *read_to, ssize_t max_size) override
 Чтение из устройства
 
ssize_t writeDevice (const void *data, ssize_t size) override
 Запись в устройство
 
bool openDevice () override
 Открыть устройство
 
bool closeDevice () override
 Закрыть устройство
 
void propertyChanged (const char *s) override
 Обратный вызов изменения свойства
 
bool threadedRead (const uchar *readed, ssize_t size) override
 Обратный вызов потокового чтения
 
DeviceInfoFlags deviceInfoFlags () const override
 Получить флаги информации об устройстве
 
- Защищенные члены унаследованные от PIIODevice
virtual bool configureDevice (const void *e_main, const void *e_parent=0)
 Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*.
 
virtual bool openDevice ()=0
 Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()!
 
virtual bool closeDevice ()
 Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_".
 
virtual ssize_t readDevice (void *read_to, ssize_t max_size)
 Переопределите для чтения данных из устройства
 
virtual ssize_t writeDevice (const void *data, ssize_t max_size)
 Переопределите для записи данных в устройство
 
virtual bool threadedRead (const uchar *readed, ssize_t size)
 Вызывается после успешного потокового чтения; по умолчанию вызывает внешний callback, заданный через setThreadedReadSlot().
 
virtual PIString constructFullPathDevice () const
 Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path().
 
virtual void configureFromFullPathDevice (const PIString &full_path)
 Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath().
 
virtual PIPropertyStorage constructVariantDevice () const
 Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path".
 
virtual void configureFromVariantDevice (const PIPropertyStorage &d)
 Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path".
 
virtual void optionsChanged ()
 Переопределите для реакции на изменение опций устройства.
 
virtual DeviceInfoFlags deviceInfoFlags () const
 Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0.
 
virtual void threadedReadBufferSizeChanged ()
 Переопределите для реакции на новое значение threadedReadBufferSize().
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает объект-источник, который вызвал текущее событие. Подробнее...
 
virtual void propertyChanged (const char *name)
 Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
 

Handlers

PIString createNewFile ()
 Создает новый файл лога в logDir() и возвращает его путь или пустую строку при ошибке. Подробнее...
 

Events

void fileEnd ()
 Вызывается, когда чтение достигает конца файла.
 
void fileError ()
 Вызывается при ошибке проверки заголовка файла или создания файла.
 
void newFile (const PIString &filename)
 Вызывается после успешного создания нового файла лога.
 
void posChanged (int pos)
 Вызывается при изменении текущей индексированной позиции воспроизведения.
 
void threadedReadRecord (PIByteArray data, int id, PISystemTime time)
 Вызывается после выдачи одной записи потоковым воспроизведением.
 

Дополнительные унаследованные члены

Подробное описание

Класс для записи и чтения бинарных данных в/из файлов логов с поддержкой воспроизведения в различных режимах.

Class for read and write binary data to logfile, and playback this data in realtime, or custom speed.

Класс PIBinaryLog предоставляет функциональность для записи бинарных данных в файлы логов и чтения/воспроизведения данных из. них. Он поддерживает несколько режимов воспроизведения, включая режим реального времени, режим переменной скорости и режим статической задержки. Класс также поддерживает разделение файлов логов по размеру, времени или количеству записей.

Synopsis

Binary Log is a file with simple header, where you can read and write some binary data. Any written data include special header with ID, size and timestamp. This header provides separation different messages from the one file by choosing different IDs. With filterID or special functions, like readBinLog() you can choose IDs what you want to read. With function writeBinLog() or setDefaultID() you can choose ID that mark you data. By default ID = 1, and filterID is empty, that mean you read any ID without filtering. ThreadedRead provide you playback data, with delay that you write data. You can choose different playbak modes by set PlayMode.

Basic usage

This class provide all functions of PIIODevice, such open(), close(), read() ,write(), and threaded read/write. function setLogDir() need to set directory for BinLog files function createNewFile() need to create new binlog file function restart() need start from the begining of binlog file

Перечисления

◆ PlayMode

Режимы воспроизведения, используемые PIBinaryLog.

Элементы перечислений
PlayRealTime 

Воспроизведение следует временным меткам записей в реальном времени, режим по умолчанию

PlayVariableSpeed 

Воспроизведение использует записанные интервалы времени, масштабированные через setPlaySpeed()

PlayStaticDelay 

Воспроизведение использует фиксированную задержку из setPlayDelay() и игнорирует временные метки записей

◆ SplitMode

Режимы разделения файлов, используемые при записи логов.

Элементы перечислений
SplitNone 

Не разделять файлы, режим по умолчанию

SplitTime 

Начинать новый файл, когда накопленное время записей превышает заданный предел

SplitSize 

Начинать новый файл, когда размер файла превышает заданный предел

SplitCount 

Начинать новый файл, когда количество записанных записей превышает заданный предел

Методы

◆ defaultID()

int PIBinaryLog::defaultID ( ) const
inline

Возвращает идентификатор записи по умолчанию, используемый write().

Возвращает
ID записи по умолчанию, используемый при записи без явного указания ID.

◆ splitTime()

PISystemTime PIBinaryLog::splitTime ( ) const
inline

Возвращает порог накопленного времени для режима SplitTime.

Возвращает
Временной интервал, используемый для разделения файлов логов в режиме SplitTime.

◆ splitFileSize()

llong PIBinaryLog::splitFileSize ( ) const
inline

Возвращает порог размера для режима SplitSize.

Возвращает
Максимальный размер файла в байтах для разделения файлов логов в режиме SplitSize.

◆ splitRecordCount()

int PIBinaryLog::splitRecordCount ( ) const
inline

Возвращает порог количества записей для режима SplitCount.

Возвращает
Максимальное количество записей на файл для разделения файлов логов в режиме SplitCount.

◆ createIndexOnFly()

bool PIBinaryLog::createIndexOnFly ( ) const
inline

Возвращает, собираются ли данные индекса во время записи.

Возвращает
true, если индекс создается "на лету" во время записи, иначе false.

◆ createNewFile() [1/2]

void PIBinaryLog::createNewFile ( const PIString path)

Создает или повторно открывает файл лога по точному пути "path" для записи.

Создает новый файл бинарного лога по указанному пути. Если файл уже существует, он будет перезаписан.

◆ setFilePrefix()

void PIBinaryLog::setFilePrefix ( const PIString prefix)
inline

Устанавливает префикс имени файла для вновь создаваемых файлов лога.

Устанавливает префикс имени файла, используемый при генерации имен файлов логов. Объединяется с каталогом логов и временной меткой для создания уникальных имен файлов.

Аргументы
prefixПрефикс имени файла.

◆ setDefaultID()

void PIBinaryLog::setDefaultID ( int  id)
inline

Устанавливает идентификатор записи по умолчанию, используемый write().

Устанавливает ID записи по умолчанию, используемый при вызове write без указания ID.

Аргументы
idID записи по умолчанию. Должен быть больше 0.

◆ setRapidStart()

void PIBinaryLog::setRapidStart ( bool  enabled)
inline

Включает немедленную выдачу первой записи при потоковом воспроизведении.

При включении первая запись читается немедленно при запуске воспроизведения без ожидания её метки времени. Это уменьшает начальную задержку.

Аргументы
enabledtrue для включения быстрого старта, false для отключения.

◆ setCreateIndexOnFly()

void PIBinaryLog::setCreateIndexOnFly ( bool  yes)

Включает или выключает сбор индекса во время записи.

Включает или отключает автоматическое создание индекса в процессе записи. При включении индекс строится по мере записи данных.

Аргументы
yestrue для включения создания индекса "на лету", false для отключения.

◆ setPlaySpeed()

void PIBinaryLog::setPlaySpeed ( double  speed)
inline

Устанавливает множитель скорости воспроизведения и переключает режим в PlayVariableSpeed.

Устанавливает множитель скорости воспроизведения. Значение 1.0 означает воспроизведение в реальном времени. Значения больше 1.0 ускоряют воспроизведение, а значения между 0 и 1.0 замедляют его.

Заметки
Эта функция автоматически устанавливает режим воспроизведения в PlayVariableSpeed.
Аргументы
speedМножитель скорости воспроизведения.

◆ setPlayDelay()

void PIBinaryLog::setPlayDelay ( const PISystemTime delay)
inline

Устанавливает фиксированную задержку между записями и переключает режим в PlayStaticDelay.

Устанавливает фиксированную задержку между записями во время воспроизведения, игнорируя исходные метки времени в файле лога.

Заметки
Эта функция автоматически устанавливает режим воспроизведения в PlayStaticDelay.
Аргументы
delayСтатическая задержка между записями.

◆ setPlayRealTime()

void PIBinaryLog::setPlayRealTime ( )
inline

Переключает воспроизведение в режим PlayRealTime.

Устанавливает режим воспроизведения в реальное время, где записи воспроизводятся по их исходным меткам времени.

◆ setSplitTime()

void PIBinaryLog::setSplitTime ( const PISystemTime time)
inline

Устанавливает порог времени для разделения файлов и переключает режим в SplitTime.

Устанавливает временной интервал для разделения файлов логов. Когда разница во времени между записями превышает это значение, создается новый файл.

Заметки
Эта функция автоматически устанавливает режим разделения в SplitTime.
Аргументы
timeВременной интервал для разделения файлов.

◆ setSplitFileSize()

void PIBinaryLog::setSplitFileSize ( llong  size)
inline

Устанавливает порог размера для разделения файлов и переключает режим в SplitSize.

Устанавливает максимальный размер файла в байтах для разделения файлов логов. Когда файл достигает этого размера, создается новый файл.

Заметки
Эта функция автоматически устанавливает режим разделения в SplitSize.
Аргументы
sizeМаксимальный размер файла в байтах.

◆ setSplitRecordCount()

void PIBinaryLog::setSplitRecordCount ( int  count)
inline

Устанавливает порог количества записей для разделения файлов и переключает режим в SplitCount.

Устанавливает максимальное количество записей на файл для разделения файлов логов. Когда файл достигает этого количества записей, создается новый файл.

Заметки
Эта функция автоматически устанавливает режим разделения в SplitCount.
Аргументы
countМаксимальное количество записей на файл.

◆ setFuncGetNewFilePath()

void PIBinaryLog::setFuncGetNewFilePath ( std::function< PIString()>  f)
inline

Устанавливает пользовательский генератор путей, используемый для разделяемых файлов и неявного создания файла.

Устанавливает пользовательскую функцию обратного вызова, возвращающую путь к следующему файлу лога при использовании режима разделения. Это переопределяет внутренний генератор путей (logdir() + prefix() + current_time()). Для восстановления внутреннего генератора установите эту функцию в nullptr.

Аргументы
fФункция обратного вызова, возвращающая путь к следующему файлу, или nullptr для использования внутреннего генератора.

◆ writeBinLog() [1/2]

int PIBinaryLog::writeBinLog ( int  id,
PIByteArray  data 
)
inline

Записывает одну запись с явным идентификатором и данными.

Записывает одну запись в файл бинарного лога с указанным ID и данными.

Аргументы
idID записи. Должен быть больше 0.
dataДанные для записи.
Возвращает
Размер данных data в случае успеха, отрицательное значение в случае ошибки.

◆ writeBinLog() [2/2]

int PIBinaryLog::writeBinLog ( int  id,
const void *  data,
int  size 
)

Записывает одну запись с явным идентификатором и буфером данных.

Возвращает размер записанных данных, 0 во время паузы или отрицательное значение при ошибке. Идентификатор должен быть больше нуля.

◆ writeBinLog_raw() [1/2]

int PIBinaryLog::writeBinLog_raw ( int  id,
const PISystemTime time,
const PIByteArray data 
)
inline

Записать один НЕОБРАБОТАННЫЙ (RAW) запись в файл BinLog, с ID = id, Метка времени = time.

Записывает одну запись с явной меткой времени в файл бинарного лога. Метка времени сохраняется как есть, без модификации.

Аргументы
idID записи. Должен быть больше 0.
timeМетка времени, связанная с этой записью.
dataДанные для записи.
Возвращает
0 в случае успеха, отрицательное значение в случае ошибки.

◆ writeBinLog_raw() [2/2]

int PIBinaryLog::writeBinLog_raw ( int  id,
const PISystemTime time,
const void *  data,
int  size 
)

Записать один НЕОБРАБОТАННЫЙ (RAW) запись в файл BinLog, с ID = id, Метка времени = time.

Записывает одну запись с явной меткой времени в файл бинарного лога. Метка времени сохраняется как есть, без модификации.

Аргументы
idID записи. Должен быть больше 0.
timeМетка времени, связанная с этой записью.
dataУказатель на данные для записи.
sizeРазмер данных в байтах.
Возвращает
0 в случае успеха, отрицательное значение в случае ошибки.

◆ readBinLog() [1/2]

PIByteArray PIBinaryLog::readBinLog ( int  id = 0,
PISystemTime time = 0,
int *  readed_id = 0 
)

Прочитать одну запись из файла BinLog, с ID = id, если id = 0, то будет прочитана любая запись

Читает одну запись из файла бинарного лога. Если id равен 0, могут быть прочитаны записи любого ID. Возвращает данные записи как массив байт.

Аргументы
idID записи для чтения, или 0 для чтения любой записи.
timeНеобязательный указатель для сохранения метки времени записи.
readed_idНеобязательный указатель для сохранения ID записи.
Возвращает
Данные записи как массив байт.

◆ readBinLog() [2/2]

int PIBinaryLog::readBinLog ( int  id,
void *  read_to,
int  max_size,
PISystemTime time = 0,
int *  readed_id = 0 
)

Прочитать одну запись из файла BinLog, с ID = id, если id = 0 чем любая запись будет прочитана

Читает одну запись из файла бинарного лога в пользовательский буфер. Если id равен 0, могут быть прочитаны записи любого ID.

Аргументы
idID записи для чтения, или 0 для чтения любой записи.
read_toУказатель на буфер, куда будут сохранены данные записи.
max_sizeМаксимальный размер буфера в байтах.
timeНеобязательный указатель для сохранения метки времени записи.
readed_idНеобязательный указатель для сохранения ID записи.
Возвращает
Фактическое количество прочитанных байт, или отрицательное значение в случае ошибки.

◆ setHeader()

void PIBinaryLog::setHeader ( const PIByteArray header)

Устанавливает пользовательский заголовок файла для последовательно создаваемых логов.

Устанавливает пользовательские данные заголовка, которые будут записаны в файл лога и могут быть получены позже с помощью getHeader().

Аргументы
headerПользовательские данные заголовка для записи.

◆ logInfo()

BinLogInfo PIBinaryLog::logInfo ( ) const
inline

Возвращает кэшированную информацию индекса, если она есть, иначе заново разбирает информацию текущего файла.

Возвращает
Структура BinLogInfo, содержащая исчерпывающую информацию о файле лога.

◆ logIndex()

const PIVector< BinLogIndex > & PIBinaryLog::logIndex ( ) const
inline

Возвращает текущие данные индекса записей.

Осмысленные данные появляются после createIndex(), loadIndex() или записи с активным индексированием.

◆ createIndex()

bool PIBinaryLog::createIndex ( )

Строит индекс записей для текущего файла лога.

Строит индекс файла лога для быстрого случайного доступа к записям. Индекс хранит позицию, ID и метку времени для каждой записи.

Возвращает
true, если создание индекса прошло успешно, иначе false.

◆ posForTime()

int PIBinaryLog::posForTime ( const PISystemTime time)

Возвращает индекс первой индексированной записи в момент "time" или позже.

Находит индекс записи с меткой времени, ближайшей к указанному времени. Требует, чтобы файл был проиндексирован заранее.

Аргументы
timeЦелевая метка времени для поиска.
Возвращает
Индекс ближайшей записи, или -1, если не проиндексировано или время раньше первой записи.

◆ seekTo()

void PIBinaryLog::seekTo ( int  rindex)

Переходит к индексированной записи номер "rindex".

Переходит к конкретной записи по её индексу в файле лога.

Аргументы
rindexИндекс записи, к которой нужно перейти.

◆ seek() [1/2]

bool PIBinaryLog::seek ( const PISystemTime time)

Переходит к первой индексированной записи в момент "time" или позже.

Переходит к записи с меткой времени, ближайшей к указанному времени. Требует, чтобы файл был проиндексирован заранее.

Аргументы
timeЦелевая метка времени для перехода.
Возвращает
true, если переход прошел успешно, иначе false.

◆ seek() [2/2]

bool PIBinaryLog::seek ( llong  filepos)

Переходит к первой индексированной записи, чья позиция в файле находится в точке "filepos" или позже.

Переходит к конкретной байтовой позиции в файле лога для чтения или воспроизведения.

Аргументы
fileposПозиция в байтах в файле.
Возвращает
true, если переход прошел успешно, иначе false.

◆ loadIndex()

bool PIBinaryLog::loadIndex ( PIByteArray  saved)

Загружает ранее сериализованные данные индекса для текущего читаемого лога.

Загружает индекс, который был ранее сохранен с помощью saveIndex(). Файл должен быть открыт перед загрузкой индекса.

Аргументы
savedСериализованные данные индекса для загрузки.
Возвращает
true, если индекс был загружен успешно, иначе false.

◆ createNewFile() [2/2]

PIString PIBinaryLog::createNewFile ( )

Создает новый файл лога в logDir() и возвращает его путь или пустую строку при ошибке.

Имена файлов по умолчанию имеют вид filePrefix() + "yyyy_MM_dd__hh_mm_ss.binlog".

◆ getLogInfo()

PIBinaryLog::BinLogInfo PIBinaryLog::getLogInfo ( const PIString path)
static

Получить информацию и статистику о бинарном логе

Анализирует указанный файл лога и возвращает исчерпывающую информацию, включая статистику записей, размер файла и временной диапазон. Это статический метод, который можно вызывать без экземпляра.

Аргументы
pathПуть к анализируемому файлу лога.
Возвращает
Структура BinLogInfo, содержащая информацию о файле и статистику.

◆ cutBinLog()

bool PIBinaryLog::cutBinLog ( const BinLogInfo src,
const PIString dst,
int  from,
int  to 
)
static

Создать новый бинарный лог из части "src" с разрешенными ID и от "from" до "to" позиции файла

Создает новый файл лога путем извлечения записей из исходного лога между указанными позициями файла. Включаются только записи в пределах указанного диапазона ID фильтра.

Аргументы
srcИнформация об исходном логе, содержащая путь и метаданные.
dstПуть, где будет создан новый файл лога.
fromНачальная позиция файла (включительно).
toКонечная позиция файла (исключительно).
Возвращает
true, если операция вырезания прошла успешно, иначе false.

◆ joinBinLogsSerial()

bool PIBinaryLog::joinBinLogsSerial ( const PIStringList src,
const PIString dst,
std::function< bool(const PIString &, PISystemTime)>  progress = nullptr 
)
static

Создать новый бинарный лог из последовательных разделенных бинарных логов "src".

Конкатенирует несколько разделенных файлов логов в один файл лога. Исходные файлы должны быть в хронологическом порядке. Можно предоставить необязательный обратный вызов прогресса для отслеживания операции.

Аргументы
srcСписок путей к исходным файлам лога для объединения.
dstПуть, где будет создан объединенный файл лога.
progressНеобязательная функция обратного вызова, получающая текущий путь к файлу и метку времени, возвращающая true для продолжения или false для отмены.
Возвращает
true, если операция объединения прошла успешно, иначе false.

Данные класса

◆ filterID

PIVector<int> PIBinaryLog::filterID

Необязательный список идентификаторов записей, допустимых для read() и потокового воспроизведения.

Список ID записей для фильтрации при чтении. Будут прочитаны только записи с этими ID. Пустой список означает чтение всех ID.