libnxcc: added function ClusterGetMasterNodeId
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 3 Nov 2015 13:10:39 +0000 (15:10 +0200)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 3 Nov 2015 13:10:39 +0000 (15:10 +0200)
include/nxcc.h
src/libnxcc/main.cpp

index e67b494..b062f8a 100644 (file)
@@ -64,6 +64,7 @@ void LIBNXCC_EXPORTABLE ClusterShutdown();
 void LIBNXCC_EXPORTABLE ClusterSetDebugCallback(void (*cb)(int, const TCHAR *, va_list));
 
 UINT32 LIBNXCC_EXPORTABLE ClusterGetLocalNodeId();
+UINT32 LIBNXCC_EXPORTABLE ClusterGetMasterNodeId();
 bool LIBNXCC_EXPORTABLE ClusterIsMasterNode();
 bool LIBNXCC_EXPORTABLE ClusterIsSyncNeeded();
 bool LIBNXCC_EXPORTABLE ClusterAllNodesConnected();
index 329da07..e4c09d2 100644 (file)
@@ -187,6 +187,21 @@ bool LIBNXCC_EXPORTABLE ClusterIsMasterNode()
 }
 
 /**
+ * Get ID of current master. Will return 0 if there is no master node at the moment.
+ */
+UINT32 LIBNXCC_EXPORTABLE ClusterGetMasterNodeId()
+{
+   if (g_nxccMasterNode)
+      return g_nxccNodeId;
+   for(int i = 0; i < CLUSTER_MAX_NODE_ID; i++)
+   {
+      if (g_nxccNodes[i].m_master)
+         return g_nxccNodes[i].m_id;
+   }
+   return 0;
+}
+
+/**
  * Check if synchronization needed
  */
 bool LIBNXCC_EXPORTABLE ClusterIsSyncNeeded()