Wipe step where the data is a pattern.
Inheritance: WipeStepBase
Esempio n. 1
0
        private bool HandleStep(string line)
        {
            string[] components = line.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);

            if(components.Length < 3) {
                Debug.ReportWarning("Invalid step. Step data: {0}", line);
                return false;
            }

            // get the number
            int number;
            int type;

            if(int.TryParse(components[1], out number) == false) {
                Debug.ReportWarning("Invalid step number. Number field: {0}", components[1]);
                return false;
            }

            // validate the number
            if(number < 0 || number >= stepNumber) {
                Debug.ReportWarning("Invalid step number. Number: {0}, Max. step: {1}", number, stepNumber);
                return false;
            }

            if(int.TryParse(components[2], out type) == false) {
                Debug.ReportWarning("Invalid step Type. Type field: {0}", components[2]);
                return false;
            }

            switch(type) {
            case 0: {
                    PatternWipeStep step = new PatternWipeStep(number);

                    if(step.FromNative(line, splitChars) == true) {
                        wipeSteps.Add(step);
                    }

                    break;
                }
                case 1: {
                    wipeSteps.Add(new RandomWipeStep(number));
                    break;
                }
                case 2: {
                    wipeSteps.Add(new RandomByteStep(number));
                    break;
                }
                case 3: {
                    wipeSteps.Add(new ComplementStep(number));
                    break;
                }
                default: {
                    Debug.ReportWarning("Invalid step Type. Type: {0}", type);
                    return false;
                }
            }

            return true;
        }
Esempio n. 2
0
        public override object Clone()
        {
            PatternWipeStep temp = new PatternWipeStep();
            temp._number = _number;
            temp._type = _type;

            if(_pattern != null) {
                temp._pattern = new byte[_pattern.Length];
                _pattern.CopyTo(temp._pattern, 0);
            }

            return temp;
        }