1#ifndef SCANNER_INTERFACES_H_
2#define SCANNER_INTERFACES_H_
28 virtual std::string
HashFile(
const std::filesystem::path& file_path) = 0;
45 virtual size_t Load(
const std::filesystem::path& source_path) = 0;
54 const std::string& hash)
const = 0;
75 const std::string& hash,
76 const std::string& verdict) = 0;
120 const std::filesystem::path& path) = 0;
128 const std::filesystem::path& path) = 0;
142 virtual std::unique_ptr<IScanner>
Build() = 0;
Defines the contract for a component that can hash a file's content.
Definition interfaces.h:18
virtual std::string HashFile(const std::filesystem::path &file_path)=0
Calculates the hash of a given file.
virtual ~IFileHasher()=default
Defines the contract for a database of malicious signatures.
Definition interfaces.h:35
virtual std::optional< std::string > FindHash(const std::string &hash) const =0
Looks up a hash to see if it is in the database.
virtual ~IHashDatabase()=default
virtual size_t Load(const std::filesystem::path &source_path)=0
Loads malicious signatures from a source.
Defines the contract for a component that logs malicious detections.
Definition interfaces.h:64
virtual void LogDetection(const std::filesystem::path &path, const std::string &hash, const std::string &verdict)=0
Logs the detection of a malicious file.
virtual ~ILogger()=default
An interface for a builder that constructs a configured IScanner.
Definition interfaces.h:104
virtual ~IScannerBuilder()=default
virtual IScannerBuilder & WithThreads(std::size_t num_threads)=0
Sets the number of threads for the scanner.
virtual std::unique_ptr< IScanner > Build()=0
Builds the final IScanner instance.
virtual IScannerBuilder & WithMd5Hasher()=0
Configures the scanner to use an MD5 file hasher.
virtual IScannerBuilder & WithCsvDatabase(const std::filesystem::path &path)=0
Configures the hash database from a CSV file.
virtual IScannerBuilder & WithFileLogger(const std::filesystem::path &path)=0
Configures the logger to write to a file.
Defines the primary contract for the file scanning engine.
Definition interfaces.h:83
virtual ScanResult Scan(const std::filesystem::path &scan_path)=0
Recursively scans a directory for malicious files.
virtual ~IScanner()=default
SCANNER_API std::unique_ptr< IScannerBuilder > CreateScannerBuilder()
Factory function to create a scanner builder instance.
Definition scanner_builder.cpp:12
Holds the final statistics of a completed scan operation.
Definition domain.h:18
#define SCANNER_API
Definition visibility.h:27