using System.Collections.Concurrent; using System.IO; namespace BurnOutSharp.Interfaces { /// /// Mark a file type as being able to be scanned /// /// /// This is also used for packers, embedded archives, and other /// installer formats that may need to be "extracted" before they /// can be fully scanned. /// internal interface IScannable { /// /// Scan a file for all internal protections /// /// Scanner object for state tracking /// Path to the input file /// Dictionary mapping paths to protection lists /// Ideally, this should just point to the other scan implementation ConcurrentDictionary> Scan(Scanner scanner, string file); /// /// Scan a stream for all internal protections /// /// Scanner object for state tracking /// Stream representing the input file /// Path to the input file /// Dictionary mapping paths to protection lists ConcurrentDictionary> Scan(Scanner scanner, Stream stream, string file); } }