LibreOffice Module sd (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sd::framework::ModuleController Class Referencefinal

The ModuleController has two tasks: More...

#include <ModuleController.hxx>

Inheritance diagram for sd::framework::ModuleController:
[legend]
Collaboration diagram for sd::framework::ModuleController:
[legend]

Public Member Functions

 ModuleController (const rtl::Reference<::sd::DrawController > &rxController)
 
virtual void disposing (std::unique_lock< std::mutex > &) override
 
virtual void SAL_CALL requestResource (const OUString &rsResourceURL) override
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelper< typename... Ifc >
virtual void SAL_CALL acquire () noexcept override
 
virtual void SAL_CALL release () noexcept override
 
virtual void SAL_CALL dispose () noexcept final override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes () override
 
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId () override
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelperBase
virtual ~WeakComponentImplHelperBase () override
 
virtual void SAL_CALL dispose () override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual void disposing (std::unique_lock< std::mutex > &)
 
- Public Member Functions inherited from comphelper::UnoImplBase
virtual ~UnoImplBase ()
 

Private Member Functions

 ModuleController (const ModuleController &)=delete
 
virtual ~ModuleController () noexcept override
 
void ProcessFactory (const OUString &ServiceName, ::std::vector< OUString > aURLs)
 Called for every entry in the ResourceFactories configuration entry. More...
 
void InstantiateStartupServices ()
 Instantiate startup services. More...
 

Private Attributes

rtl::Reference<::sd::DrawControllermxController
 
std::unordered_map< OUString, OUString > maResourceToFactoryMap
 
std::unordered_map< OUString, css::uno::WeakReference< css::uno::XInterface > > maLoadedFactories
 

Additional Inherited Members

- Protected Member Functions inherited from comphelper::WeakComponentImplHelperBase
void throwIfDisposed (std::unique_lock< std::mutex > &)
 
- Protected Attributes inherited from comphelper::WeakComponentImplHelperBase
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > maEventListeners
 
- Protected Attributes inherited from comphelper::UnoImplBase
std::mutex m_aMutex
 
bool m_bDisposed
 

Detailed Description

The ModuleController has two tasks:

  1. It reads the org.openoffice.Office.Impress/MultiPaneGUI/Framework/ResourceFactories configuration data that maps from resource URLs to service names of factories that can create resources for the URLs. When the configuration controller wants to create a resource for which it does not have a factory, it asks the ModuleController to provide one. The ModuleController looks up the service name registered for the URL of the resource and instantiates this service. The service is expected to register on its creation a factory for the resource in question.
  2. The ModuleController instantiates PresentationFactoryProvider. This service can then register as listeners at the ConfigurationController or do whatever they like.

Definition at line 57 of file ModuleController.hxx.

Constructor & Destructor Documentation

◆ ModuleController() [1/2]

sd::framework::ModuleController::ModuleController ( const rtl::Reference<::sd::DrawController > &  rxController)
Exceptions
std::exception

Load a list of URL to service mappings. The mappings are stored in the mpResourceToFactoryMap member.

Definition at line 43 of file ModuleController.cxx.

References InstantiateStartupServices(), mxController, and ProcessFactory().

◆ ModuleController() [2/2]

sd::framework::ModuleController::ModuleController ( const ModuleController )
privatedelete

◆ ~ModuleController()

sd::framework::ModuleController::~ModuleController ( )
overrideprivatevirtualnoexcept

Definition at line 79 of file ModuleController.cxx.

Member Function Documentation

◆ disposing()

void sd::framework::ModuleController::disposing ( std::unique_lock< std::mutex > &  )
overridevirtual

◆ InstantiateStartupServices()

void sd::framework::ModuleController::InstantiateStartupServices ( )
private

Instantiate startup services.

This method is called once when a new ModuleController object is created.

Definition at line 105 of file ModuleController.cxx.

References Exception, sd::framework::PresentationFactory::install(), mxController, and SAL_WARN.

Referenced by ModuleController().

◆ ProcessFactory()

void sd::framework::ModuleController::ProcessFactory ( const OUString &  ServiceName,
::std::vector< OUString >  aURLs 
)
private

Called for every entry in the ResourceFactories configuration entry.

Definition at line 91 of file ModuleController.cxx.

References maResourceToFactoryMap, SAL_INFO, and sServiceName.

Referenced by ModuleController().

◆ requestResource()

void SAL_CALL sd::framework::ModuleController::requestResource ( const OUString &  rsResourceURL)
overridevirtual

Member Data Documentation

◆ maLoadedFactories

std::unordered_map<OUString, css::uno::WeakReference<css::uno::XInterface> > sd::framework::ModuleController::maLoadedFactories
private

Definition at line 74 of file ModuleController.hxx.

Referenced by disposing(), and requestResource().

◆ maResourceToFactoryMap

std::unordered_map<OUString, OUString> sd::framework::ModuleController::maResourceToFactoryMap
private

Definition at line 73 of file ModuleController.hxx.

Referenced by disposing(), ProcessFactory(), and requestResource().

◆ mxController

rtl::Reference<::sd::DrawController> sd::framework::ModuleController::mxController
private

The documentation for this class was generated from the following files: