示例#1
0
        internal static unsafe ScheduleBasedBackupPolicy FromNative(NativeBackupRestoreTypes.FABRIC_BACKUP_POLICY backupPolicy)
        {
            var scheduleBasedPolicy = new ScheduleBasedBackupPolicy();

            scheduleBasedPolicy.PopulateBackupPolicyFromNative(backupPolicy);

            var scheduleBasedPolicyDescription =
                *(NativeBackupRestoreTypes.FABRIC_SCHEDULE_BASED_BACKUP_POLICY *)backupPolicy.PolicyDescription;

            scheduleBasedPolicy.RunSchedule = (BackupPolicyRunSchedule)scheduleBasedPolicyDescription.RunScheduleType;
            scheduleBasedPolicy.RunDays     = GetRunDaysFromByte(scheduleBasedPolicyDescription.RunDays);
            scheduleBasedPolicy.RunTimes    = GetRunTimesFromNative(scheduleBasedPolicyDescription.RunTimesList);
            return(scheduleBasedPolicy);
        }
示例#2
0
        internal static unsafe BackupPolicy FromNative(IntPtr pointer)
        {
            var nativeBackupPolicy = *(NativeBackupRestoreTypes.FABRIC_BACKUP_POLICY *)pointer;

            if (nativeBackupPolicy.PolicyType ==
                NativeBackupRestoreTypes.FABRIC_BACKUP_POLICY_TYPE.FABRIC_BACKUP_POLICY_TYPE_FREQUENCY_BASED)
            {
                return(FrequencyBasedBackupPolicy.FromNative(nativeBackupPolicy));
            }
            else if (nativeBackupPolicy.PolicyType ==
                     NativeBackupRestoreTypes.FABRIC_BACKUP_POLICY_TYPE.FABRIC_BACKUP_POLICY_TYPE_SCHEDULE_BASED)
            {
                return(ScheduleBasedBackupPolicy.FromNative(nativeBackupPolicy));
            }

            return(null);
        }