Show / Hide Table of Contents

Class CategoryIntegrationManager

Manages desktop integration via AccessPoints, grouping them into categories.

Inheritance
Object
ManagerBase
IntegrationManagerBase
IntegrationManager
CategoryIntegrationManager
Implements
IDisposable
ICategoryIntegrationManager
IIntegrationManager
Inherited Members
IntegrationManager.ChangedWindowMessageID
IntegrationManager.Config
IntegrationManager.AppListPath
IntegrationManager.GetDir(Boolean, String[])
IntegrationManager.AddAppInternal(FeedTarget)
IntegrationManager.AddAppInternal(String, Requirements, Feed)
IntegrationManager.AddAppInternal(AppEntry, Converter<FeedUri, Feed>)
IntegrationManager.RemoveAppInternal(AppEntry)
IntegrationManager.UpdateAppInternal(AppEntry, Feed)
IntegrationManager.AddAccessPointsInternal(AppEntry, Feed, IReadOnlyCollection<AccessPoint>)
IntegrationManager.RemoveAccessPointsInternal(AppEntry, IEnumerable<AccessPoint>)
IntegrationManager.RepairAppInternal(AppEntry, Feed)
IntegrationManager.Finish()
IntegrationManager.MutexName
IntegrationManagerBase.AddApp(FeedTarget)
IntegrationManagerBase.AddApp(String, Requirements, Feed)
IntegrationManagerBase.RemoveApp(AppEntry)
IntegrationManagerBase.UpdateApp(AppEntry, Feed)
IntegrationManagerBase.UpdateApp(AppEntry, Feed, Requirements)
IntegrationManagerBase.AddAccessPoints(AppEntry, Feed, IEnumerable<AccessPoint>)
IntegrationManagerBase.RemoveAccessPoints(AppEntry, IEnumerable<AccessPoint>)
IntegrationManagerBase.Repair(Converter<FeedUri, Feed>)
IntegrationManagerBase.AppList
ManagerBase.Handler
ManagerBase.AcquireMutex()
ManagerBase.Dispose()
ManagerBase.MachineWide
Namespace: ZeroInstall.DesktopIntegration
Assembly: ZeroInstall.DesktopIntegration.dll
Syntax
public class CategoryIntegrationManager : IntegrationManager, ICategoryIntegrationManager, IIntegrationManager
Remarks

To prevent race-conditions there may only be one desktop integration class instance active at any given time. This class acquires a mutex upon calling its constructor and releases it upon calling Dispose().

Constructors

CategoryIntegrationManager(Config, ITaskHandler, Boolean)

Creates a new integration manager using the default AppList (creating a new one if missing). Performs Mutex-based locking!

Declaration
public CategoryIntegrationManager(Config config, ITaskHandler handler, bool machineWide = false)
Parameters
Type Name Description
Config config

User settings controlling network behaviour.

ITaskHandler handler

A callback object used when the the user is to be informed about the progress of long-running operations such as downloads.

Boolean machineWide

Apply operations machine-wide instead of just for the current user.

Exceptions
Type Condition
IOException

A problem occurred while accessing the AppList file.

UnauthorizedAccessException

Read or write access to the AppList file is not permitted or another desktop integration class is currently active.

InvalidDataException

A problem occurred while deserializing an XML file.

Fields

AllCategories

A list of all known AccessPoint categories.

Declaration
public static readonly string[] AllCategories
Field Value
Type Description
String[]

StandardCategories

A list of recommended standard AccessPoint categories.

Declaration
public static readonly string[] StandardCategories
Field Value
Type Description
String[]

Methods

AddAccessPointCategories(AppEntry, Feed, String[])

Applies a category of AccessPoints for an application.

Declaration
public void AddAccessPointCategories(AppEntry appEntry, Feed feed, params string[] categories)
Parameters
Type Name Description
AppEntry appEntry

The application being integrated.

Feed feed

The feed providing additional metadata, icons, etc. for the application.

String[] categories

A list of all AccessPoint categories to be added to the already applied ones.

Exceptions
Type Condition
ConflictException

One or more of the categories would cause a conflict with the existing AccessPoints in AppList.

OperationCanceledException

The user canceled the task.

IOException

A problem occurred while writing to the filesystem or registry.

WebException

A problem occurred while downloading additional data (such as icons).

UnauthorizedAccessException

Write access to the filesystem or registry is not permitted.

RemoveAccessPointCategories(AppEntry, String[])

Removes a category of already applied AccessPoints for an application.

Declaration
public void RemoveAccessPointCategories(AppEntry appEntry, params string[] categories)
Parameters
Type Name Description
AppEntry appEntry

The application being integrated.

String[] categories

A list of all AccessPoint categories to be removed from the already applied ones.

Exceptions
Type Condition
IOException

A problem occurred while writing to the filesystem or registry.

UnauthorizedAccessException

Write access to the filesystem or registry is not permitted.

Explicit Interface Implementations

IIntegrationManager.get_MachineWide()

Declaration
bool IIntegrationManager.get_MachineWide()
Returns
Type Description
Boolean

Implements

System.IDisposable
ICategoryIntegrationManager
IIntegrationManager
In This Article
Back to top Copyright Bastian Eicher et al