• API Documentation
Show / Hide Table of Contents
  • BuildSystem.Allure.Generator
    • AllureServe
  • BuildSystem.Builder.Dotnet
    • BuilderDotnet
    • BuilderDotnetProps
  • BuildSystem.Builder.Midl
    • BuilderMidl
    • BuilderMidlProps
  • BuildSystem.Builder.MsCpp
    • BuilderMsCpp
    • BuilderMsCppProps
  • BuildSystem.Builder.MsDelphi
    • BuilderMsDelphi
    • BuilderMsDelphiProps
  • BuildSystem.BuildSpace
    • IBuildSpace
  • BuildSystem.BuildSpace.Common
    • BuildSpaceCommon
    • RegisterFactoryAssemblies
  • BuildSystem.Cleaner.Common
    • CleanerCommon
    • CleanerCommonProps
  • BuildSystem.Factories
    • BuilderProps
    • CleanerProps
    • Factory<T1, T2>
    • FileCopierProps
    • GenDocProps
    • GenLangProps
    • GitExploreOptions
    • GlobalFactory
    • HashGeneratorProps
    • ITestRunnerProps
    • PackageManagerProps
    • ProjectCacheProps
    • ReclaimerProps
    • ReclaimerStrategyFactory
    • SignerProps
    • TestRunnerProps
    • TlbGenBplProps
    • TlbGenDotnetDllProps
    • TlbGenPasProps
    • VersionManagerProps
  • BuildSystem.FileCopier.Common
    • FileCopierCommon
    • FileCopierCommonProps
  • BuildSystem.GenDoc.DocFX
    • CppReader
    • CSharpConverter
    • DelphiReader
    • GenDocFX
    • GenDocFXProps
    • IReader
    • SourceInfo
    • SourceInfoLang
    • SourceInfoSummary
    • SourceInfoSyntax
    • SourceInfoSyntaxParam
    • SourceInfoType
    • YamlWriter
  • BuildSystem.HashGenerator.Common
    • HashGeneratorCommon
    • HashGeneratorCommonProps
  • BuildSystem.Info
    • BuildInfo
    • JenkinsInfo
    • RunInfo
    • SessionInfo
  • BuildSystem.Loggers
    • LoggerBroadCaster
    • LoggerBuffer
    • LoggerConsole
    • LoggerFile
  • BuildSystem.Logging
    • ILogger
    • LogLevel
    • tagLogLevel
  • BuildSystem.ManagerObject
    • IDictionaryStringString
    • IManager
    • IManagerProp
    • ManagerType
    • tagManagerType
  • BuildSystem.ManagerObject.Interfaces
    • CacheDependencyInfo
    • CacheProjectInfo
    • FileGroup
    • GenLangResult
    • GetPackageInfo
    • GetVersionList
    • HashAlgorithmType
    • IBuilder
    • IBuilderProps
    • ICleaner
    • ICleanerProps
    • IFileCopier
    • IFileCopierProps
    • IGenDoc
    • IGenDocProps
    • IGenLang
    • IGenLangProps
    • IHashGenerator
    • IHashGeneratorProps
    • IPackageManager
    • IPackageManagerProps
    • IProjectCache
    • IProjectCacheProps
    • IReclaimer
    • IReclaimerProps
    • IReclaimerStrategy
    • IReclaimerStrategyProps
    • IRestorer
    • IRestorerProps
    • ISigner
    • ISignerProps
    • ITestRunner
    • ITlbGenBpl
    • ITlbGenBplProps
    • ITlbGenDotnetDll
    • ITlbGenDotnetDllProps
    • ITlbGenPas
    • ITlbGenPasProps
    • IVersionManager
    • IVersionManagerProps
    • ReaderType
    • RestorerDepProp
    • VersionIncrementType
    • VersionIncrementValue
    • VersionManagerType
  • BuildSystem.ManagersFactory
    • IManagersFactory
    • ListManagerNameForVariant
    • ManagerConstNames
    • ManagerNameForVariant
  • BuildSystem.ManagersFactory.Common
    • ManagersFactoryCommon
  • BuildSystem.Nuget.Logging
    • NuGetLogging
  • BuildSystem.Package
    • CachePackageInfo
    • GetNextVersion
    • IPackage
    • IPackageProps
    • LicensePackageInfo
    • PackageAction
    • PackageDependency
    • PackageFiles
    • PackageProps
    • RepoPackageInfo
    • SetDuplicatePushStorageInfo
    • SetStorageInfo
    • StorageInfo
    • VersionProp
  • BuildSystem.Package.Dotnet
    • PackageDotnet
    • PackageDotnetProps
  • BuildSystem.Package.Factory
    • PackageFactory
    • PackageType
  • BuildSystem.Package.Nuget
    • PackageNuget
    • PackageNugetProps
  • BuildSystem.PackageManager.Dotnet
    • PackageManagerDotnet
    • PackageManagerDotnetProps
  • BuildSystem.PackageManager.Nuget
    • PackageManagerNuget
    • PackageManagerNugetProps
  • BuildSystem.Project
    • GetProjectInfoDelegate
    • IProject
    • ProjectGenDocProps
    • ProjectInfo
  • BuildSystem.Project.Base
    • ProjectBase
  • BuildSystem.Project.Cpp
    • ProjectCpp
  • BuildSystem.Project.CSharp
    • ProjectCSharp
  • BuildSystem.Project.Delphi
    • ProjectDelphi
  • BuildSystem.Project.Dependency
    • JsonProjectDependencies
    • NativeDependencies
    • ProjectDependency
  • BuildSystem.Project.Factory
    • ProjectFactory
  • BuildSystem.Project.Idl
    • ProjectIdl
  • BuildSystem.Project.PropReader
    • IProjectPropReader
  • BuildSystem.Project.PropReader.Json
    • ProjectPropReaderJson
  • BuildSystem.Project.Res
    • ProjectRes
  • BuildSystem.Project.Wix
    • ProjectWix
  • BuildSystem.ProjectCache.Common
    • ProjectCacheCommon
    • ProjectCacheCommonProps
  • BuildSystem.ProjectCache.NuGet
    • ProjectCacheNuGet
    • ProjectCacheNuGetProps
  • BuildSystem.ProjectList
    • BuildResultIsRequiredDelegate
    • CalcCopyBuildResultPathDelegate
    • CompilerConstants
    • IAnalyzer
    • IAnalyzerProps
    • IBuildInfoSaver
    • IBuildInfoSaverProps
    • ICompiler
    • ICompilerProps
    • ICopierBuildResults
    • ICopierBuildResultsProps
    • IDeployer
    • IDeployerProps
    • IProjectList
    • IProjectListProps
    • IProjectRestorer
    • IProjectRestorerProps
    • ISourceHashCalculator
    • ISourceHashCalculatorProps
    • ProjectFilter
    • RestoreInsteadOfBuildDelegate
    • SourceHashCalculatorConstants
  • BuildSystem.ProjectList.Common
    • GitHelper
    • GraphDot
    • ManagerRestorer
    • ProjectListCommon
    • ProjectListCommonProps
  • BuildSystem.ProjectList.Factory
    • ProjectListFactory
  • BuildSystem.ProjectList.Helpers
    • AnalyzerCommon
    • AnalyzerCommonProps
    • BuildInfoSaverCommon
    • BuildInfoSaverCommonProps
    • CompilerCommon
    • CompilerCommonProps
    • CopierBuildResultsCommon
    • CopierBuildResultsCommonProps
    • DeployerCommon
    • DeployerCommonProps
    • PackagesRestorer
    • ProjectRestorerCommon
    • ProjectRestorerCommonProps
    • SourceHashCalculatorCommon
    • SourceHashCalculatorCommonProps
    • TransitiveDependenciesBuilder
  • BuildSystem.Reclaimer.NugetCommon
    • ReclaimerNugetCommon
    • ReclaimerNugetCommonProps
  • BuildSystem.Reclaimer.Strategy.Common
    • ReclaimerStrategyCommon
    • ReclaimerStrategyCommonProps
  • BuildSystem.Reclaimer.Strategy.Delegate
    • CalcDeletingPackages
    • ReclaimerStrategyDelegate
    • ReclaimerStrategyDelegateProps
  • BuildSystem.Restorer
    • RestorerProps
  • BuildSystem.Restorer.Nuget
    • RestorerNuget
    • RestorerNugetProps
  • BuildSystem.SettingsReader
    • ISettingsReader
    • ReaderJson
    • SettingsReaderType
  • BuildSystem.SettingsReader.Factory
    • SettingsReaderFactory
  • BuildSystem.SettingsReader.Json
    • SettingsReaderJson
  • BuildSystem.SettingsReader.Object
    • SettingsObject
    • SettingsReaderObject
  • BuildSystem.SharedMemIPC
    • DelayedProcedure
    • HandleRequestProc
    • HandleStreamProc
    • IPCStream
    • SharedMemClient
    • SharedMemObject
    • SharedMemServer
  • BuildSystem.Signer.Win
    • SignerWin
    • SignerWinProps
  • BuildSystem.TestRunner.Common
    • TestRunnerCommon
    • TestRunnerCommonProps
  • BuildSystem.TlbDoc
    • TlbHelpReader
  • BuildSystem.TlbGenBpl.ThroughPas
    • TlbGenBplThroughPas
    • TlbGenBplThroughPasProps
  • BuildSystem.TlbGenDotnetDll.TlbImp
    • TlbGenDotnetDllTlbImp
    • TlbGenDotnetDllTlbImpProps
  • BuildSystem.TlbGenPas.LibImp
    • TlbGenPasLibImp
    • TlbGenPasLibImpProps
  • BuildSystem.TypesCS.Dictionary
    • DictionaryStringString
  • BuildSystem.Utils
    • Matcher
    • PropReader
  • BuildSystem.Utils.AdminRunner
    • AdminRunner
    • SingleRunner
  • BuildSystem.Utils.DirectoryHelper
    • DirectoryCleaner
    • DirectoryCopier
    • DirectoryScanner
  • BuildSystem.Utils.Executor
    • CmdRunner
    • ExeLine
    • ExeRunner
  • BuildSystem.Utils.FileFormatter
    • FileFormatter
  • BuildSystem.Utils.GitHelper
    • GitRepository
  • BuildSystem.Utils.IpcProcessRunner
    • ProcessRunner
  • BuildSystem.Utils.Json
    • JsonDefinesFormatter
    • JsonReader
    • JsonUtils
  • BuildSystem.Utils.PathReader
    • PathReader
  • BuildSystem.Utils.Xml
    • XmlUtils
  • BuildSystem.Variants
    • ConfigurationType
    • TargetPlatform
    • Variant
    • VariantList
  • BuildSystem.VersionManager.Common
    • VersionManagerCommon
    • VersionManagerCommonProps
  • IdeProjectFileEditor
    • DBinOutType
    • DConfigType
    • DotNetOutPathType
    • DotNetReferenceType
    • DPathPropType
    • DPlatformType
    • IDelphiMainSrcEditor
    • IDelphiProjectEditor
    • IDEProjectEditor
    • IDotNetProjectEditor
    • IProjectReferenceEditor
    • IXMLEditor
    • ProjectReferenceInfo
  • ProjectDependencyScanner
    • DependencyScanner
    • IDLAdditionalInfo
    • IDotNetAdditionalInfo
    • IDSProject
    • IDSProjectsList
    • IPDelphiAdditionalInfo
    • IProjectDependencyScanner
    • IProjectsDependenciesScanner
    • PlatformType
    • ProjectType

Class ReclaimerStrategyCommon

Calculates packages which should be deleted:

  1. Filter input list - we can reclaim only packages which are in availableToDelete list
  2. Find all packages according to PackageMask
  3. Filter according to VersionMask
  4. Group by minor version
  5. Inside each group - sort this packages
  6. If LeaveOnlyLastMinorCount is set - add to result all versions except last count. Property MaxLeaveCount doesn't affect this step
  7. Inside each left group - add to result all versions except last MaxLeaveCount
  8. Filter result - there shouldn't be packages which are dependencies for other packages that are not in result
Inheritance
object
ReclaimerStrategyCommon
Implements
IReclaimerStrategy
Namespace: BuildSystem.Reclaimer.Strategy.Common
Assembly: BuildSystem.Core.dll
Syntax
public class ReclaimerStrategyCommon : Object, IReclaimerStrategy

Constructors

ReclaimerStrategyCommon(ILogger?, IReclaimerStrategyProps, string)

Strategy to make retention of packages:

  1. Find all packages according to VersionMask
  2. Sort this packages by version
  3. Last versions per each package MaxLeaveCount packages will be left
  4. Filter packages which are not dependencies for other packages
  5. Filter that IDs in availableToDelete list
Declaration
public ReclaimerStrategyCommon(ILogger? logger, IReclaimerStrategyProps prop, string tempFolder)
Parameters
Type Name Description
ILogger logger

_logger

IReclaimerStrategyProps prop

Properties which are the main for classes implementors of IBinder

string tempFolder

Unused at this moment temporary folder

Fields

ClassIdent

Unique ident of class

Declaration
public const string ClassIdent = "ReclaimerStrategy.Common"
Field Value
Type Description
string

Methods

GetDeletingPackages(List<IPackageProps>, List<string>)

Calculates packages which should be deleted:

  1. Filter input list - we can reclaim only packages which are in availableToDelete list
  2. Find all packages according to PackageMask
  3. Filter according to VersionMask
  4. Group by minor version
  5. Inside each group - sort this packages
  6. If LeaveOnlyLastMinorCount is set - add to result all versions except last count. Property MaxLeaveCount doesn't affect this step
  7. Inside each left group - add to result all versions except last MaxLeaveCount
  8. Filter result - there shouldn't be packages which are dependencies for other packages that are not in result
Declaration
public List<IPackageProps> GetDeletingPackages(List<IPackageProps> packages, List<string> availableToDelete)
Parameters
Type Name Description
System.Collections.Generic.List<><IPackageProps> packages
System.Collections.Generic.List<><string> availableToDelete
Returns
Type Description
System.Collections.Generic.List<><IPackageProps>

Implements

IReclaimerStrategy
In This Article
Back to top Generated by DocFX