8#ifndef SEN_DB_RECORDING_MERGER_H
9#define SEN_DB_RECORDING_MERGER_H
51 [[nodiscard]] const
std::
string&
getBus() const noexcept;
53 [[nodiscard]] const
std::
string&
getName() const noexcept;
55 [[nodiscard]] const
std::
string&
getType() const noexcept;
63 std::filesystem::path archivePath_;
74 std::vector<RecordingMergeObject>
objects;
98 std::variant<RecordingMergeKeepSelectedObject, RecordingMergeRenameObjects>;
A time duration.
Definition duration.h:25
RecordingMergeObject(std::filesystem::path archivePath, uint32_t objectId, std::string session, std::string bus, std::string name, std::string type)
const std::filesystem::path & getArchivePath() const noexcept
const std::string & getType() const noexcept
const std::string & getSession() const noexcept
const std::string & getName() const noexcept
std::string formatFullName() const
Formats the object full name.
const std::string & getBus() const noexcept
uint32_t getObjectId() const noexcept
std::string name
Definition recording_merger.h:81
std::filesystem::path outputArchive
Definition recording_merger.h:119
std::filesystem::path archivePath
Definition recording_merger.h:111
RecordingMergeMode mode
Definition recording_merger.h:120
std::vector< RecordingMergeInput > inputArchives
Definition recording_merger.h:118
std::size_t selectedObjectIndex
Definition recording_merger.h:87
std::size_t objectIndex
Definition recording_merger.h:80
Duration offset
Definition recording_merger.h:112
RecordingMergeProgressReporter progressReporter
Optional; no progress is reported when it is empty.
Definition recording_merger.h:125
RecordingMergeDuplicateObjectResolver duplicateObjectResolver
Definition recording_merger.h:121
std::vector< RecordingMergeObject > objects
Definition recording_merger.h:74
bool force
Replace a recording archive already present at the output path.
Definition recording_merger.h:123
std::vector< RecordingMergeObjectRename > renamedObjects
Definition recording_merger.h:93
RecordingMergeMode
Timestamp alignment modes supported when merging recording archives.
Definition recording_merger.h:28
std::function< void(std::size_t bytesDone, std::size_t bytesTotal)> RecordingMergeProgressReporter
Reports merge progress. Both values are in bytes of input, and the reporter is called only when the w...
Definition recording_merger.h:106
std::function< RecordingMergeDuplicateObjectResolution(const RecordingMergeDuplicateObject &duplicateObject)> RecordingMergeDuplicateObjectResolver
Callback used to resolve duplicate object names.
Definition recording_merger.h:101
std::variant< RecordingMergeKeepSelectedObject, RecordingMergeRenameObjects > RecordingMergeDuplicateObjectResolution
Decision returned by the duplicate object resolver.
Definition recording_merger.h:97
@ zeroAligned
Definition recording_merger.h:30
@ offsetAligned
Definition recording_merger.h:31
@ normalMerge
Definition recording_merger.h:29
Conflict data passed to the duplicate object resolver.
Definition recording_merger.h:73
Object that we need to keep and discards the other in a duplicate conflict.
Definition recording_merger.h:86
New name selected for one object in a duplicate object conflict.
Definition recording_merger.h:79
Resolution that assigns new names to objects in a duplicate conflict.
Definition recording_merger.h:92
Settings used to merge several recording archives into one archive.
Definition recording_merger.h:117
Definition type_specs.h:19
void mergeRecordings(const RecordingMergeSettings &settings)
Merges recording archives into a single archive.