LibreOffice Module cppuhelper (master) 1
typemanager.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#pragma once
11
12#include <sal/config.h>
13
14#include <cstddef>
15
16#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
17#include <com/sun/star/container/XSet.hpp>
18#include <com/sun/star/lang/XServiceInfo.hpp>
19#include <com/sun/star/reflection/TypeDescriptionSearchDepth.hpp>
20#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
21#include <com/sun/star/uno/Reference.hxx>
22#include <com/sun/star/uno/Sequence.hxx>
25#include <rtl/ref.hxx>
26#include <sal/types.h>
27
28namespace com::sun::star {
29 namespace reflection { class XTypeDescription; }
30}
31namespace unoidl {
32 class ConstantGroupEntity;
33 class Entity;
34 class EnumTypeEntity;
35 class Manager;
36}
37
38namespace cppuhelper {
39
40typedef cppu::WeakComponentImplHelper<
41 css::lang::XServiceInfo, css::container::XHierarchicalNameAccess,
42 css::container::XSet, css::reflection::XTypeDescriptionEnumerationAccess >
44
46public:
48
49 using TypeManager_Base::acquire;
50 using TypeManager_Base::release;
51
52 void init(std::u16string_view rdbUris);
53
54 css::uno::Any find(OUString const & name);
55
56 css::uno::Reference< css::reflection::XTypeDescription > resolve(
57 OUString const & name);
58
59private:
60 virtual ~TypeManager() noexcept override;
61
62 virtual void SAL_CALL disposing() override;
63
64 virtual OUString SAL_CALL getImplementationName() override;
65
66 virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName) override;
67
68 virtual css::uno::Sequence< OUString > SAL_CALL
69 getSupportedServiceNames() override;
70
71 virtual css::uno::Any SAL_CALL getByHierarchicalName(
72 OUString const & aName) override;
73
74 virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const & aName) override;
75
76 virtual css::uno::Type SAL_CALL getElementType() override;
77
78 virtual sal_Bool SAL_CALL hasElements() override;
79
80 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
81 createEnumeration() override;
82
83 virtual sal_Bool SAL_CALL has(css::uno::Any const & aElement) override;
84
85 virtual void SAL_CALL insert(css::uno::Any const & aElement) override;
86
87 virtual void SAL_CALL remove(css::uno::Any const & aElement) override;
88
89 virtual css::uno::Reference< css::reflection::XTypeDescriptionEnumeration >
91 OUString const & moduleName,
92 css::uno::Sequence< css::uno::TypeClass > const & types,
93 css::reflection::TypeDescriptionSearchDepth depth) override;
94
95 void readRdbDirectory(std::u16string_view uri, bool optional);
96
97 void readRdbFile(std::u16string_view uri, bool optional);
98
99 css::uno::Any getSequenceType(OUString const & name);
100
101 css::uno::Any getInstantiatedStruct(
102 OUString const & name, sal_Int32 separator);
103
104 css::uno::Any getInterfaceMember(
105 std::u16string_view name, std::size_t separator);
106
107 css::uno::Any getNamed(
108 OUString const & name,
109 rtl::Reference< unoidl::Entity > const & entity);
110
111 static css::uno::Any getEnumMember(
113 std::u16string_view member);
114
115 static css::uno::Any getConstant(
116 std::u16string_view constantGroupName,
118 std::u16string_view member);
119
121
123};
124
125}
126
127/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
base class for all classes who want derive from cppu::WeakComponentImplHelperXX.
Definition: basemutex.hxx:40
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual sal_Bool SAL_CALL hasElements() override
static css::uno::Any getEnumMember(rtl::Reference< unoidl::EnumTypeEntity > const &entity, std::u16string_view member)
virtual void SAL_CALL remove(css::uno::Any const &aElement) override
virtual css::uno::Reference< css::reflection::XTypeDescriptionEnumeration > SAL_CALL createTypeDescriptionEnumeration(OUString const &moduleName, css::uno::Sequence< css::uno::TypeClass > const &types, css::reflection::TypeDescriptionSearchDepth depth) override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual css::uno::Any SAL_CALL getByHierarchicalName(OUString const &aName) override
css::uno::Reference< css::reflection::XTypeDescription > resolve(OUString const &name)
virtual sal_Bool SAL_CALL has(css::uno::Any const &aElement) override
css::uno::Any find(OUString const &name)
virtual ~TypeManager() noexcept override
rtl::Reference< unoidl::Entity > findEntity(OUString const &name)
virtual void SAL_CALL insert(css::uno::Any const &aElement) override
void readRdbDirectory(std::u16string_view uri, bool optional)
css::uno::Any getNamed(OUString const &name, rtl::Reference< unoidl::Entity > const &entity)
css::uno::Any getInterfaceMember(std::u16string_view name, std::size_t separator)
css::uno::Any getInstantiatedStruct(OUString const &name, sal_Int32 separator)
rtl::Reference< unoidl::Manager > manager_
virtual sal_Bool SAL_CALL supportsService(OUString const &ServiceName) override
virtual css::uno::Type SAL_CALL getElementType() override
css::uno::Any getSequenceType(OUString const &name)
void init(std::u16string_view rdbUris)
virtual void SAL_CALL disposing() override
void readRdbFile(std::u16string_view uri, bool optional)
virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const &aName) override
static css::uno::Any getConstant(std::u16string_view constantGroupName, rtl::Reference< unoidl::ConstantGroupEntity > const &entity, std::u16string_view member)
const char * name
OUString aName
cppu::WeakComponentImplHelper< css::lang::XServiceInfo, css::container::XHierarchicalNameAccess, css::container::XSet, css::reflection::XTypeDescriptionEnumerationAccess > TypeManager_Base
Definition: typemanager.hxx:43
unsigned char sal_Bool