Plasma Engine  2.0
Loading...
Searching...
No Matches
DataTransfer.h
1#pragma once
2
3#include <Foundation/Basics.h>
4#include <Foundation/Communication/Telemetry.h>
5#include <Foundation/Containers/Set.h>
6#include <Foundation/Strings/String.h>
7
8class PL_FOUNDATION_DLL plDataTransfer;
9
11class PL_FOUNDATION_DLL plDataTransferObject
12{
13 PL_DISALLOW_COPY_AND_ASSIGN(plDataTransferObject);
14
15public:
30 plDataTransferObject(plDataTransfer& ref_belongsTo, plStringView sObjectName, plStringView sMimeType, plStringView sFileExtension);
31
34
38 plStreamWriter& GetWriter() { return m_Msg.GetWriter(); }
39
41 void Transmit();
42
43private:
44 friend class plDataTransfer;
45
46 bool m_bHasBeenTransferred;
47 plDataTransfer& m_BelongsTo;
49};
50
74class PL_FOUNDATION_DLL plDataTransfer
75{
76public:
79
81 virtual ~plDataTransfer();
82
84 void DisableDataTransfer();
85
87 void EnableDataTransfer(plStringView sDataName);
88
90 void RequestDataTransfer();
91
96 bool IsTransferRequested(bool bReset = true);
97
98private:
99 virtual void OnTransferRequest() {}
100
101 void SendStatus();
102
104 void Transfer(plDataTransferObject& Object);
105
106private:
107 friend class plDataTransferObject;
108
109 static void TelemetryMessage(void* pPassThrough);
110 static void TelemetryEventsHandler(const plTelemetry::TelemetryEventData& e);
111 static void Initialize();
112 static void SendAllDataTransfers();
113
114 static bool s_bInitialized;
115
116 bool m_bEnabled;
117 bool m_bTransferRequested;
118 plString m_sDataName;
119 static plSet<plDataTransfer*> s_AllTransfers;
120};
A 'data transfer' is a blob of data that an application can send to connected tools such as plInspect...
Definition DataTransfer.h:75
A small wrapper class around an plTelemetryMessage for sending a 'data transfer'. See plDataTransfer ...
Definition DataTransfer.h:12
plStreamWriter & GetWriter()
Returns the stream writer that you need to use to write the data into the object.
Definition DataTransfer.h:38
Definition Set.h:238
Interface for binary out (write) streams.
Definition Stream.h:107
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Definition TelemetryMessage.h:6
Definition Telemetry.h:169