internal override IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_NODE_TRANSITION_TYPE nodeTransitionType) { var nativeDescription = new NativeTypes.FABRIC_NODE_STOP_DESCRIPTION(); nativeDescription.OperationId = this.OperationId; nativeDescription.NodeName = pin.AddBlittable(this.NodeName); nativeDescription.NodeInstanceId = (ulong)this.NodeInstanceId; nativeDescription.StopDurationInSeconds = (uint)this.StopDurationInSeconds; nativeDescription.Reserved = IntPtr.Zero; nodeTransitionType = NativeTypes.FABRIC_NODE_TRANSITION_TYPE.FABRIC_NODE_TRANSITION_TYPE_STOP; return(pin.AddBlittable(nativeDescription)); }
internal static new unsafe NodeStopDescription CreateFromNative(IntPtr nativeRaw) { ReleaseAssert.AssertIfNot(nativeRaw != IntPtr.Zero, StringResources.Error_NullNativePointer); NativeTypes.FABRIC_NODE_STOP_DESCRIPTION native = *(NativeTypes.FABRIC_NODE_STOP_DESCRIPTION *)nativeRaw; Guid operationId = native.OperationId; string nodeName = NativeTypes.FromNativeString(native.NodeName); BigInteger nodeInstanceId = new BigInteger(native.NodeInstanceId); uint durationInSeconds = native.StopDurationInSeconds; TimeSpan duration = TimeSpan.FromSeconds(durationInSeconds); NodeStopDescription description = new NodeStopDescription(operationId, nodeName, nodeInstanceId, (int)duration.TotalSeconds); return(description); }