LibreOffice Module unoidl (master) 1
unoidlprovider.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 <set>
15
16#include <rtl/ref.hxx>
17#include <sal/types.h>
18#include <unoidl/unoidl.hxx>
19
20namespace unoidl::detail {
21
22class MappedFile;
23struct MapEntry;
24
25struct Map {
26 MapEntry const * begin;
27 sal_uInt32 size;
28};
29
30struct NestedMap {
32 std::set<Map> trace;
33};
34
35class UnoidlProvider: public Provider {
36public:
37 // throws FileFormatException, NoSuchFileException:
38 explicit UnoidlProvider(OUString const & uri);
39
40 // throws FileFormatException:
41 virtual rtl::Reference< MapCursor > createRootCursor() const override;
42
43 // throws FileFormatException:
44 virtual rtl::Reference< Entity > findEntity(OUString const & name)
45 const override;
46
47private:
48 virtual ~UnoidlProvider() noexcept override;
49
52};
53
54}
55
56/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
UnoidlProvider(OUString const &uri)
virtual rtl::Reference< MapCursor > createRootCursor() const override
virtual ~UnoidlProvider() noexcept override
virtual rtl::Reference< Entity > findEntity(OUString const &name) const override
rtl::Reference< detail::MappedFile > file_
const char * name
MapEntry const * begin