18#include <osl/file.hxx>
19#include <osl/mutex.hxx>
21#include <rtl/ustring.hxx>
33class AggregatingModule:
public ModuleEntity {
42 virtual ~AggregatingModule() noexcept
override {}
44 virtual std::vector< OUString > getMemberNames()
const override;
52std::vector< OUString > AggregatingModule::getMemberNames()
const {
53 std::set< OUString > names;
57 std::vector< OUString >
ns(
58 static_cast< ModuleEntity *
>(ent.get())->getMemberNames());
59 names.insert(
ns.begin(),
ns.end());
62 return std::vector< OUString >(names.begin(), names.end());
65class AggregatingCursor:
public MapCursor {
74 virtual ~AggregatingCursor() noexcept
override {}
80 std::vector< rtl::Reference< Provider > >
providers_;
82 std::vector< rtl::Reference< Provider > >::iterator
iterator_;
92 if (
seen_.insert(
n).second) {
93 if (
name !=
nullptr) {
97 ?
new AggregatingModule(
109void AggregatingCursor::findCursor() {
111 if (
name_.isEmpty()) {
112 cursor_ = (*iterator_)->createRootCursor();
116 cursor_ =
static_cast< ModuleEntity *
>(ent.get())->
172 osl::MutexGuard g(
mutex_);
180 osl::MutexGuard g(
mutex_);
199 osl::DirectoryItem item;
200 if (osl::DirectoryItem::get(uri, item) == osl::FileBase::E_None) {
201 osl::FileStatus status(osl_FileStatus_Mask_Type);
202 if (item.getFileStatus(status) == osl::FileBase::E_None
203 && status.getFileType() == osl::FileStatus::Directory)
208 if (uri.endsWith(
".idl")) {
216 "FileFormatException \"" << e.
getDetail() <<
"\", retrying <" << uri
217 <<
"> as legacy format");
virtual SAL_DLLPRIVATE ~AccumulationBasedServiceEntity() noexcept override
virtual SAL_DLLPRIVATE ~ConstantGroupEntity() noexcept override
virtual SAL_DLLPRIVATE ~Entity() noexcept override
virtual SAL_DLLPRIVATE ~EnumTypeEntity() noexcept override
virtual SAL_DLLPRIVATE ~ExceptionTypeEntity() noexcept override
virtual SAL_DLLPRIVATE ~InterfaceBasedSingletonEntity() noexcept override
virtual SAL_DLLPRIVATE ~InterfaceTypeEntity() noexcept override
SAL_DLLPRIVATE rtl::Reference< Provider > loadProvider(OUString const &uri)
std::vector< rtl::Reference< Provider > > providers_
rtl::Reference< Provider > addProvider(OUString const &uri)
rtl::Reference< MapCursor > createCursor(OUString const &name) const
virtual SAL_DLLPRIVATE ~Manager() noexcept override
rtl::Reference< Entity > findEntity(OUString const &name) const
virtual SAL_DLLPRIVATE ~MapCursor() noexcept override
virtual SAL_DLLPRIVATE ~ModuleEntity() noexcept override
SAL_DLLPRIVATE ~NoSuchFileException() noexcept
virtual SAL_DLLPRIVATE ~PlainStructTypeEntity() noexcept override
virtual SAL_DLLPRIVATE ~PolymorphicStructTypeTemplateEntity() noexcept override
virtual SAL_DLLPRIVATE ~Provider() noexcept override
virtual SAL_DLLPRIVATE ~PublishableEntity() noexcept override
virtual SAL_DLLPRIVATE ~ServiceBasedSingletonEntity() noexcept override
virtual SAL_DLLPRIVATE ~SingleInterfaceBasedServiceEntity() noexcept override
virtual SAL_DLLPRIVATE ~TypedefEntity() noexcept override
#define SAL_INFO(area, stream)
enumrange< T >::Iterator begin(enumrange< T >)
rtl::Reference< MapCursor > cursor_
std::set< OUString > seen_
std::vector< rtl::Reference< Provider > >::iterator iterator_
std::vector< rtl::Reference< Provider > > providers_