internal static unsafe StatefulServicePartition FromNative(NativeTypes.FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM statefulPartitionResultItem) { NativeTypes.FABRIC_SERVICE_PARTITION_INFORMATION *nativePartitionInformation = (NativeTypes.FABRIC_SERVICE_PARTITION_INFORMATION *)statefulPartitionResultItem.PartitionInformation; NativeTypes.FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM_EX1 *statefulPartitionResultItemEx1 = (NativeTypes.FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM_EX1 *)statefulPartitionResultItem.Reserved; return(new StatefulServicePartition( ServicePartitionInformation.FromNative(*nativePartitionInformation), statefulPartitionResultItem.TargetReplicaSetSize, statefulPartitionResultItem.MinReplicaSetSize, (HealthState)statefulPartitionResultItem.HealthState, (ServicePartitionStatus)statefulPartitionResultItem.PartitionStatus, TimeSpan.FromSeconds(statefulPartitionResultItem.LastQuorumLossDurationInSeconds), Epoch.FromNative(statefulPartitionResultItemEx1->PrimaryEpoch))); }
internal static unsafe BackupOperationResult FromNative(IntPtr pointer) { var nativeBackupOperationResult = *(NativeBackupRestoreTypes.FABRIC_BACKUP_OPERATION_RESULT *)pointer; var managedResult = new BackupOperationResult { PartitionId = nativeBackupOperationResult.PartitionId, ServiceName = NativeTypes.FromNativeString(nativeBackupOperationResult.ServiceName), ErrorCode = nativeBackupOperationResult.ErrorCode, TimeStampUtc = NativeTypes.FromNativeFILETIME(nativeBackupOperationResult.TimeStampUtc), Message = NativeTypes.FromNativeString(nativeBackupOperationResult.Message), OperationId = nativeBackupOperationResult.OperationId, }; // Copy backup details in case of success if (managedResult.ErrorCode == 0) { managedResult.BackupId = nativeBackupOperationResult.BackupId; managedResult.BackupLocation = NativeTypes.FromNativeString(nativeBackupOperationResult.BackupLocation); managedResult.EpochOfLastBackupRecord = Epoch.FromNative(nativeBackupOperationResult.EpochOfLastBackupRecord); managedResult.LsnOfLastBackupRecord = nativeBackupOperationResult.LsnOfLastBackupRecord; } return(managedResult); }
private Task UpdateEpochHelper(IntPtr nativeEpoch, long previousEpochLastSequenceNumber, CancellationToken cancellationToken) { Epoch epoch = Epoch.FromNative(nativeEpoch); return(this.stateProvider.UpdateEpochAsync(epoch, previousEpochLastSequenceNumber, cancellationToken)); }