internal static unsafe DeployedServiceReplicaDetail CreateFromNative(
            NativeTypes.FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM nativeResultItem)
        {
            DeployedStatelessServiceInstance deployedReplicaInstance = new DeployedStatelessServiceInstance();

            if (nativeResultItem.Reserved != IntPtr.Zero)
            {
                var extended1 = (NativeTypes.FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM_EX1 *)nativeResultItem.Reserved;

                var deployedServiceReplica = *(NativeTypes.FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM *)extended1->DeployedServiceReplica;
                deployedReplicaInstance = DeployedStatelessServiceInstance.FromNative(deployedServiceReplica);
            }

            var rv = new DeployedStatelessServiceInstanceDetail
            {
                CurrentServiceOperation             = (ServiceOperationName)nativeResultItem.CurrentServiceOperation,
                CurrentServiceOperationStartTimeUtc = NativeTypes.FromNativeFILETIME(nativeResultItem.CurrentServiceOperationStartTimeUtc),
                InstanceId   = nativeResultItem.InstanceId,
                PartitionId  = nativeResultItem.PartitionId,
                ReportedLoad = LoadMetricReport.CreateFromNativeList((NativeTypes.FABRIC_LOAD_METRIC_REPORT_LIST *)nativeResultItem.ReportedLoad),
                ServiceName  = new Uri(NativeTypes.FromNativeString(nativeResultItem.ServiceName)),
                DeployedServiceReplicaInstance = deployedReplicaInstance,
            };

            return(rv);
        }
コード例 #2
0
#pragma warning restore 0618

        internal static unsafe DeployedServiceReplica CreateFromNative(
            NativeTypes.FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_ITEM nativeResultItem)
        {
            if ((ServiceKind)nativeResultItem.Kind == ServiceKind.Stateless)
            {
                NativeTypes.FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM nativeStatelessInstanceQueryResult =
                    *(NativeTypes.FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM *)nativeResultItem.Value;
                return(DeployedStatelessServiceInstance.FromNative(nativeStatelessInstanceQueryResult));
            }
            else if ((ServiceKind)nativeResultItem.Kind == ServiceKind.Stateful)
            {
                NativeTypes.FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM nativeStatefulServiceQueryResult =
                    *(NativeTypes.FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM *)nativeResultItem.Value;
                return(DeployedStatefulServiceReplica.FromNative(nativeStatefulServiceQueryResult));
            }
            else
            {
                AppTrace.TraceSource.WriteNoise(
                    "DeployedServiceReplica.CreateFromNative",
                    "Ignoring the result with unsupported ServiceKind value {0}",
                    (int)nativeResultItem.Kind);
                return(null);
            }
        }