private static unsafe ClusterHealth FromNative(NativeTypes.FABRIC_CLUSTER_HEALTH *nativeClusterHealth) { var clusterHealth = new ClusterHealth(); clusterHealth.AggregatedHealthState = (HealthState)nativeClusterHealth->AggregatedHealthState; if (nativeClusterHealth->Reserved != IntPtr.Zero) { NativeTypes.FABRIC_CLUSTER_HEALTH_EX1 *nativeClusterHealthEx1 = (NativeTypes.FABRIC_CLUSTER_HEALTH_EX1 *)nativeClusterHealth->Reserved; clusterHealth.NodeHealthStates = NodeHealthState.FromNativeList(nativeClusterHealthEx1->NodeHealthStates); clusterHealth.ApplicationHealthStates = ApplicationHealthState.FromNativeList(nativeClusterHealthEx1->ApplicationHealthStates); clusterHealth.HealthEvents = HealthEvent.FromNativeList(nativeClusterHealthEx1->HealthEvents); if (nativeClusterHealthEx1->Reserved != IntPtr.Zero) { var nativeHealthEx2 = (NativeTypes.FABRIC_CLUSTER_HEALTH_EX2 *)nativeClusterHealthEx1->Reserved; clusterHealth.UnhealthyEvaluations = HealthEvaluation.FromNativeList(nativeHealthEx2->UnhealthyEvaluations); if (nativeHealthEx2->Reserved != IntPtr.Zero) { var nativeHealthEx3 = (NativeTypes.FABRIC_CLUSTER_HEALTH_EX3 *)nativeHealthEx2->Reserved; clusterHealth.HealthStatistics = HealthStatistics.CreateFromNative(nativeHealthEx3->HealthStatistics); } } } return(clusterHealth); }
internal static unsafe NodeHealthState FromNative(NativeTypes.FABRIC_NODE_HEALTH_STATE nativeState) { var nodeHealthState = new NodeHealthState(); nodeHealthState.NodeName = NativeTypes.FromNativeString(nativeState.NodeName); nodeHealthState.AggregatedHealthState = (HealthState)nativeState.AggregatedHealthState; return(nodeHealthState); }