Table of Contents

Class PackageManagerBase

Namespace
ZeroInstall.Services.Native
Assembly
ZeroInstall.Services.dll

Base class for IPackageManager implementations using template methods.

public abstract class PackageManagerBase : IPackageManager
Inheritance
PackageManagerBase
Implements
Derived
Inherited Members

Remarks

This class is immutable and thread-safe.

Properties

DistributionName

The name of the Distributions this package manager provides packages for.

protected abstract string DistributionName { get; }

Property Value

string

Methods

GetImplementations(string)

Retrieves a set of specific native implementations for a package name.

protected abstract IEnumerable<ExternalImplementation> GetImplementations(string packageName)

Parameters

packageName string

The name of the package to look for.

Returns

IEnumerable<ExternalImplementation>

Lookup(ImplementationSelection)

Looks up the specific ExternalImplementation an ImplementationSelection was based on.

public ExternalImplementation? Lookup(ImplementationSelection selection)

Parameters

selection ImplementationSelection

The implementation selection to look up.

Returns

ExternalImplementation

The ExternalImplementation; null if selection does not refer to a package known to this package manager.

Query(PackageImplementation, params string[])

Queries the package manager for all ExternalImplementations that match a specific PackageImplementation definition.

public IEnumerable<ExternalImplementation> Query(PackageImplementation package, params string[] distributions)

Parameters

package PackageImplementation

The definition of the package to look for.

distributions string[]

Specifies the distributions to check for matching packages. Leave empty to check in all available distributions.

Returns

IEnumerable<ExternalImplementation>