cc_tools_qt
Common Environment for Protocol Analysis.
Loading...
Searching...
No Matches
ToolsDataInfo.h
1//
2// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved.
3//
4
5// This file is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18
19#pragma once
20
21#include "cc_tools_qt/ToolsApi.h"
22
23#include <QtCore/QVariant>
24#include <QtCore/QVariantMap>
25
26#include <chrono>
27#include <memory>
28#include <string>
29#include <vector>
30
31namespace cc_tools_qt
32{
33
36struct CC_TOOLS_API ToolsDataInfo
37{
39 using TimestampClock = std::chrono::high_resolution_clock;
40
42 using Timestamp = std::chrono::time_point<TimestampClock>;
43
45 using DataSeq = std::vector<std::uint8_t>;
46
48 using PropertiesMap = QVariantMap;
49
54};
55
57using ToolsDataInfoPtr = std::shared_ptr<ToolsDataInfo>;
58
60CC_TOOLS_API ToolsDataInfoPtr makeDataInfo();
61
65
66} // namespace cc_tools_qt
67
68Q_DECLARE_METATYPE(cc_tools_qt::ToolsDataInfoPtr);
69
70
Main namespace for all classes / functions of the shared library.
CC_TOOLS_API ToolsDataInfoPtr makeDataInfoTimed()
Dynamically allocate ToolsDataInfo and return in in ToolsDataInfoPtr;.
Definition ToolsDataInfo.cpp:52
std::shared_ptr< ToolsDataInfo > ToolsDataInfoPtr
Pointer to ToolsDataInfo.
Definition ToolsDataInfo.h:57
CC_TOOLS_API ToolsDataInfoPtr makeDataInfo()
Dynamically allocate ToolsDataInfo and return in in ToolsDataInfoPtr;.
Definition ToolsDataInfo.cpp:47
Information about incomming or outdoing data.
Definition ToolsDataInfo.h:37
PropertiesMap m_extraProperties
Extra properties that can be used by other componets.
Definition ToolsDataInfo.h:53
QVariantMap PropertiesMap
Type of extra properties storage.
Definition ToolsDataInfo.h:48
DataSeq m_data
Actual raw data.
Definition ToolsDataInfo.h:52
Timestamp m_timestamp
Timestamp when data has been received / sent.
Definition ToolsDataInfo.h:51
std::chrono::high_resolution_clock TimestampClock
Type of clock used for timestamping.
Definition ToolsDataInfo.h:39
std::chrono::time_point< TimestampClock > Timestamp
Type of timestamps.
Definition ToolsDataInfo.h:42
std::vector< std::uint8_t > DataSeq
Type of raw data sequence.
Definition ToolsDataInfo.h:45