Exemplo n.º 1
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public DictionaryTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var type in types)
            {
                if (!(type is null))
                {
                    this.Insert(type);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public DictionaryTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var type in types)
            {
                if ((object)type != null)
                {
                    Insert(type);
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public HybridTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if ((object)type != null)
                {
                    Insert(type);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public HybridTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            this.OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if (!(type is null))
                {
                    this.Insert(type);
                }
            }
        }
Exemplo n.º 5
0
        public void Insert(FileType fileType)
        {
            if (fileType is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            if (this.typesLength >= this.types.Length)
            {
                var newTypesCount = this.types.Length * 2;
                var newTypes      = new FileType[newTypesCount];
                Array.Copy(this.types, newTypes, this.typesLength);
                this.types = newTypes;
            }

            this.types[this.typesLength] = fileType;
            this.typesLength++;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Constructs a LinearCountingAnalyzer using the supplied IEnumerable<FileType>
        /// </summary>
        /// <param name="fileTypes"></param>
        public LinearCounting(IEnumerable <FileType> fileTypes)
        {
            if (fileTypes is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var fileType in fileTypes)
            {
                if (!(fileType is null))
                {
                    this.Insert(fileType);
                }
            }

            //types.OrderBy(x => x.HeaderOffset);
            //todo sort
            //Array.Sort<FileType>(types, (x,y) => x.HeaderOffset.CompareTo(y.HeaderOffset));
            //types = types;
        }