Sen API
Sen Libraries
Loading...
Searching...
No Matches
Archive manipulation library

Provides means to read and write recordings. More...

Classes

class  sen::db::Annotation
 Represents an annotation which can be added to a recording. More...
class  sen::db::Creation
 Represents the creation of an object. More...
class  sen::db::Cursor< End, T >
 A cursor that can be used to iterate over the contents of a recording. The cursor holds a payload which can have one of the values given as type arguments. More...
class  sen::db::Deletion
 Represents the deletion of an object. More...
class  sen::db::Event
 Represents the emission of an event by some object. More...
struct  sen::db::KeyframeIndex
 The location of a keyframe in an archive. More...
struct  sen::db::ObjectIndexDef
 Describes an object that has been indexed. More...
class  sen::db::End
 Represents the end of the recording. Used in cursors. More...
class  sen::db::Input
 Allows you to access an existing recording in the file system. More...
class  sen::db::Keyframe
 Represents the state of the system at a given time. The state of the system is made of the snapshots of all the objects present at the time of the snapshot. More...
struct  sen::db::ObjectInfo
 Basic information about an object tracked for recording. More...
class  sen::db::Output
 Allows the creation of recordings. More...
class  sen::db::PropertyChange
 Represents the change of a property value. More...
class  sen::db::RecordingMergeObject
 Information about an object found while merging recordings. More...
struct  sen::db::RecordingMergeDuplicateObject
 Conflict data passed to the duplicate object resolver. More...
struct  sen::db::RecordingMergeObjectRename
 New name selected for one object in a duplicate object conflict. More...
struct  sen::db::RecordingMergeKeepSelectedObject
 Object that we need to keep and discards the other in a duplicate conflict. More...
struct  sen::db::RecordingMergeRenameObjects
 Resolution that assigns new names to objects in a duplicate conflict. More...
struct  sen::db::RecordingMergeInput
 Recording input used by the merger. More...
struct  sen::db::RecordingMergeSettings
 Settings used to merge several recording archives into one archive. More...
class  sen::db::Snapshot
 Represents the full state of an object at a point in time. More...

Typedefs

using sen::db::DataCursor = Cursor<End, PropertyChange, Event, Keyframe, Creation, Deletion>
 A cursor that can iterate over data entries.
using sen::db::AnnotationCursor = Cursor<End, Annotation>
 A cursor that can iterate over annotation entries.
using sen::db::ErrorHandler = std::function<void()>
 A function to be called in case of error.
using sen::db::ObjectInfoList = std::vector<ObjectInfo>
 A list of information elements about tracked objects.
using sen::db::RecordingMergeDuplicateObjectResolution
 Decision returned by the duplicate object resolver.
using sen::db::RecordingMergeDuplicateObjectResolver
 Callback used to resolve duplicate object names.
using sen::db::RecordingMergeProgressReporter = std::function<void(std::size_t bytesDone, std::size_t bytesTotal)>
 Reports merge progress. Both values are in bytes of input, and the reporter is called only when the whole-percent figure changes, so it is safe to do visible work in it.

Enumerations

enum class  sen::db::RecordingMergeMode { sen::db::RecordingMergeMode::normalMerge , sen::db::RecordingMergeMode::zeroAligned , sen::db::RecordingMergeMode::offsetAligned }
 Timestamp alignment modes supported when merging recording archives. More...

Detailed Description

Provides means to read and write recordings.


Class Documentation

◆ sen::db::KeyframeIndex

struct sen::db::KeyframeIndex

The location of a keyframe in an archive.

Class Members
uint64_t offset
TimeStamp time

◆ sen::db::ObjectIndexDef

struct sen::db::ObjectIndexDef

Describes an object that has been indexed.

Class Members
ConstTypeHandle< ClassType > type
ObjectId objectId
string name
string session
string bus
uint32_t indexId

◆ sen::db::End

class sen::db::End

Represents the end of the recording. Used in cursors.

◆ sen::db::ObjectInfo

struct sen::db::ObjectInfo

Basic information about an object tracked for recording.

Class Members
const Object * instance
string session
string bus

◆ sen::db::RecordingMergeDuplicateObject

struct sen::db::RecordingMergeDuplicateObject

Conflict data passed to the duplicate object resolver.

Class Members
vector< RecordingMergeObject > objects

◆ sen::db::RecordingMergeObjectRename

struct sen::db::RecordingMergeObjectRename

New name selected for one object in a duplicate object conflict.

Class Members
size_t objectIndex = 0U
string name

◆ sen::db::RecordingMergeKeepSelectedObject

struct sen::db::RecordingMergeKeepSelectedObject

Object that we need to keep and discards the other in a duplicate conflict.

Class Members
size_t selectedObjectIndex = 0U

◆ sen::db::RecordingMergeRenameObjects

struct sen::db::RecordingMergeRenameObjects

Resolution that assigns new names to objects in a duplicate conflict.

Class Members
vector< RecordingMergeObjectRename > renamedObjects

◆ sen::db::RecordingMergeInput

struct sen::db::RecordingMergeInput

Recording input used by the merger.

Class Members
path archivePath
Duration offset {}

◆ sen::db::RecordingMergeSettings

struct sen::db::RecordingMergeSettings

Settings used to merge several recording archives into one archive.

Class Members
vector< RecordingMergeInput > inputArchives
path outputArchive
RecordingMergeMode mode = RecordingMergeMode::normalMerge
RecordingMergeDuplicateObjectResolver duplicateObjectResolver
bool force = false Replace a recording archive already present at the output path.
RecordingMergeProgressReporter progressReporter Optional; no progress is reported when it is empty.

Typedef Documentation

◆ DataCursor

A cursor that can iterate over data entries.

◆ AnnotationCursor

A cursor that can iterate over annotation entries.

◆ ErrorHandler

using sen::db::ErrorHandler = std::function<void()>

A function to be called in case of error.

◆ ObjectInfoList

using sen::db::ObjectInfoList = std::vector<ObjectInfo>

A list of information elements about tracked objects.

◆ RecordingMergeDuplicateObjectResolution

Initial value:
std::variant<RecordingMergeKeepSelectedObject, RecordingMergeRenameObjects>

Decision returned by the duplicate object resolver.

◆ RecordingMergeDuplicateObjectResolver

Initial value:
std::variant< RecordingMergeKeepSelectedObject, RecordingMergeRenameObjects > RecordingMergeDuplicateObjectResolution
Decision returned by the duplicate object resolver.
Definition recording_merger.h:97
Conflict data passed to the duplicate object resolver.
Definition recording_merger.h:73

Callback used to resolve duplicate object names.

◆ RecordingMergeProgressReporter

using sen::db::RecordingMergeProgressReporter = std::function<void(std::size_t bytesDone, std::size_t bytesTotal)>

Reports merge progress. Both values are in bytes of input, and the reporter is called only when the whole-percent figure changes, so it is safe to do visible work in it.

Enumeration Type Documentation

◆ RecordingMergeMode

enum class sen::db::RecordingMergeMode
strong

Timestamp alignment modes supported when merging recording archives.

Enumerator
normalMerge 
zeroAligned 
offsetAligned