Vector BLF
ObjectHeader2.h
1 // SPDX-FileCopyrightText: 2013-2021 Tobias Lorenz <tobias.lorenz@gmx.net>
2 //
3 // SPDX-License-Identifier: GPL-3.0-or-later
4 
5 #pragma once
6 
7 #include <Vector/BLF/platform.h>
8 
9 #include <Vector/BLF/AbstractFile.h>
10 #include <Vector/BLF/ObjectHeaderBase.h>
11 
12 #include <Vector/BLF/vector_blf_export.h>
13 
14 namespace Vector {
15 namespace BLF {
16 
22 struct VECTOR_BLF_EXPORT ObjectHeader2 : ObjectHeaderBase {
23  ObjectHeader2(const ObjectType objectType);
24 
25  void read(AbstractFile & is) override;
26  void write(AbstractFile & os) override;
27  uint16_t calculateHeaderSize() const override;
28  uint32_t calculateObjectSize() const override;
29 
31  enum ObjectFlags : uint32_t {
39  TimeTenMics = 0x00000001,
40 
47  TimeOneNans = 0x00000002
48  };
49 
55  uint32_t objectFlags {ObjectFlags::TimeOneNans};
56 
58  enum TimeStampStatus : uint8_t {
65  Orig = 0x01,
66 
73  SwHw = 0x02,
74 
80  User = 0x10
81  };
82 
88  uint8_t timeStampStatus {};
89 
91  uint8_t reservedObjectHeader{0};
92 
102  uint16_t objectVersion {0};
103 
110  uint64_t objectTimeStamp {0};
111 
118  uint64_t originalTimeStamp {0};
119 };
120 
121 }
122 }
Definition: AbstractFile.h:19
Object header.
Definition: ObjectHeader2.h:22
TimeStampStatus
Definition: ObjectHeader2.h:58
ObjectFlags
Definition: ObjectHeader2.h:31
Base object header type definition.
Definition: ObjectHeaderBase.h:166