Source code for AutoArchive._services.archiver._archiver_service_component
# archiver_service_component.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2023 Róbert Čerňanský
from AutoArchive._infrastructure.service import IServiceComponent
from AutoArchive._infrastructure.service._service_accessor import ServiceAccessor
from . import ArchiverServiceProviderIDs, ArchiverServiceIdentification
from ._external_tar_archiver_provider import _ExternalTarArchiverProvider
from ._internal_tar_archiver_provider import _InternalTarArchiverProvider
[docs]
class ArchiverServiceComponent(IServiceComponent):
"""Service component for archiver services.
Registers service identified by :class:`.ArchiverServiceIdentification` with two providers identified
via ArchiverServiceProviderIDs."""
def __init__(self, applicationContext, serviceAccessor: ServiceAccessor):
self.__serviceAccessor = serviceAccessor
serviceAccessor.registerService(ArchiverServiceIdentification, _InternalTarArchiverProvider,
ArchiverServiceProviderIDs.TarInternal)
serviceAccessor.registerService(ArchiverServiceIdentification, _ExternalTarArchiverProvider,
ArchiverServiceProviderIDs.TarExternal)
[docs]
def destroyServices(self):
"See: :meth:`IServiceComponent.destroyServices()`"
self.__serviceAccessor.unregisterService(ArchiverServiceIdentification)