summaryrefslogtreecommitdiff
path: root/Runtime/ClusterRenderer/ClusterNetwork.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/ClusterRenderer/ClusterNetwork.h')
-rw-r--r--Runtime/ClusterRenderer/ClusterNetwork.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/Runtime/ClusterRenderer/ClusterNetwork.h b/Runtime/ClusterRenderer/ClusterNetwork.h
new file mode 100644
index 0000000..0d84a08
--- /dev/null
+++ b/Runtime/ClusterRenderer/ClusterNetwork.h
@@ -0,0 +1,40 @@
+#pragma once
+#if ENABLE_CLUSTER_SYNC
+#include "Runtime/Utilities/dynamic_array.h"
+
+void* CreateZMQContext();
+void DestroyZMQContext(void* context);
+
+class MasterSocket
+{
+public:
+ MasterSocket(void* context, const char* mainUrl, const char* ctrlUrl);
+ ~MasterSocket();
+ void Publish(dynamic_array<UInt8>& buffer);
+ bool WaitForSubscriber();
+ bool CheckForUnsubscribe();
+ bool GetAck();
+private:
+ void* m_Context;
+ void* m_MainSocket;
+ void* m_CtrlSocket;
+};
+
+
+class SlaveSocket
+{
+public:
+ SlaveSocket(void* context, const char* mainUrl, const char* ctrlUrl);
+ ~SlaveSocket();
+ void Listen(dynamic_array<UInt8>& buffer);
+ void Subscribe(int slaveId);
+ void Unsubscribe(int slaveId);
+ void SendAck();
+private:
+ void* m_Context;
+ void* m_MainSocket;
+ void* m_CtrlSocket;
+};
+
+
+#endif \ No newline at end of file