using System;
using System.Collections.Generic;
namespace MarketAlly.AIPlugin.Analysis.Infrastructure
{
///
/// Configuration settings for analysis operations
///
public class AnalysisConfiguration
{
///
/// Default parameters to apply to all plugins
///
public Dictionary DefaultParameters { get; set; } = new();
///
/// Default timeout for analysis operations
///
public TimeSpan DefaultTimeout { get; set; } = TimeSpan.FromMinutes(10);
///
/// Maximum number of concurrent analyses
///
public int MaxConcurrentAnalyses { get; set; } = Environment.ProcessorCount;
///
/// Enable caching of syntax trees and analysis results
///
public bool EnableCaching { get; set; } = true;
///
/// Cache expiration time for syntax trees
///
public TimeSpan CacheExpiration { get; set; } = TimeSpan.FromMinutes(30);
///
/// Cache expiration time for analysis results
///
public TimeSpan CacheExpirationTime { get; set; } = TimeSpan.FromMinutes(30);
///
/// Maximum memory usage before triggering cache cleanup (in MB)
///
public int MaxCacheMemoryMB { get; set; } = 512;
///
/// Enable parallel processing for multi-file analysis
///
public bool EnableParallelProcessing { get; set; } = true;
///
/// Enable detailed logging for debugging
///
public bool EnableDetailedLogging { get; set; } = false;
///
/// Validate plugin parameters before execution
///
public bool ValidateParameters { get; set; } = true;
///
/// Enable security features like path validation
///
public bool EnableSecurityValidation { get; set; } = true;
///
/// Allow loading plugins from external assemblies
///
public bool AllowDynamicPluginLoading { get; set; } = false;
///
/// Directory containing trusted plugin assemblies
///
public string TrustedPluginDirectory { get; set; } = string.Empty;
}
}