aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/trace/tracerecorder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/trace/tracerecorder.h')
-rw-r--r--src/zenserver/trace/tracerecorder.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/zenserver/trace/tracerecorder.h b/src/zenserver/trace/tracerecorder.h
new file mode 100644
index 000000000..48857aec8
--- /dev/null
+++ b/src/zenserver/trace/tracerecorder.h
@@ -0,0 +1,46 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include <zencore/guid.h>
+#include <zencore/zencore.h>
+
+#include <filesystem>
+#include <memory>
+#include <string>
+#include <vector>
+
+namespace zen {
+
+struct TraceSessionInfo
+{
+ Guid SessionGuid{};
+ Guid TraceGuid{};
+ uint16_t ControlPort = 0;
+ uint8_t TransportVersion = 0;
+ uint8_t ProtocolVersion = 0;
+ std::string RemoteAddress;
+ uint64_t BytesRecorded = 0;
+ std::filesystem::path TraceFilePath;
+};
+
+class TraceRecorder
+{
+public:
+ TraceRecorder();
+ ~TraceRecorder();
+
+ void Initialize(uint16_t InPort, const std::filesystem::path& OutputDir);
+ void Shutdown();
+
+ bool IsRunning() const;
+ uint16_t GetPort() const;
+
+ std::vector<TraceSessionInfo> GetActiveSessions() const;
+
+private:
+ struct Impl;
+ std::unique_ptr<Impl> m_Impl;
+};
+
+} // namespace zen \ No newline at end of file