27#include <unordered_map>
28#include <unordered_set>
31#include <rtl/ustring.hxx>
32#include <rtl/strbuf.hxx>
34#include <com/sun/star/uno/Sequence.hxx>
35#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
36#include <com/sun/star/lang/XMultiComponentFactory.hpp>
37#include <com/sun/star/uno/XComponentContext.hpp>
38#include <com/sun/star/i18n/XCollator.hpp>
39#include <com/sun/star/deployment/XPackage.hpp>
40#include <com/sun/star/ucb/XSimpleFileAccess3.hpp>
68 OUString aProgramSwitch,
69 std::u16string_view aOrder )
97 std::u16string_view ids );
109 explicit KeywordInfo(
const std::vector< KeywordElement >& aVector );
111 css::uno::Sequence< OUString >&
114 css::uno::Sequence< css::uno::Sequence< OUString > >&
117 css::uno::Sequence< css::uno::Sequence< OUString > >&
120 css::uno::Sequence< css::uno::Sequence< OUString > >&
138 const OUString& instPath,
139 const OUString& productName,
140 const OUString& productVersion,
141 const OUString& styleSheet,
142 css::uno::Reference< css::uno::XComponentContext >
const & xContext );
151 const std::vector< OUString >&
getModuleList(
const OUString& Language );
154 const OUString& Language );
158 const OUString& Language );
161 const OUString& Language,
bool helpText =
false,
162 const OUString* pExtensionPath =
nullptr );
164 std::u16string_view
Module,
165 const OUString& Language,
bool helpText =
false,
166 const OUString* pExtensionPath =
nullptr );
172 css::uno::Reference< css::i18n::XCollator >
173 getCollator(std::unique_lock<std::mutex>& rGuard,
const OUString& Language);
181 OStringBuffer& buffer );
187 void changeCSS(
const OUString& newStyleSheet);
194 const OUString& Language,
195 std::u16string_view
Id,
196 OStringBuffer& buffer );
202 css::uno::Reference< css::container::XHierarchicalNameAccess >
203 jarFile(std::unique_lock<std::mutex>& rGuard, std::u16string_view jar,
204 const OUString& Language );
206 css::uno::Reference< css::container::XHierarchicalNameAccess >
208 const OUString& path, OUString* o_pExtensionPath =
nullptr,
209 OUString* o_pExtensionRegistryPath =
nullptr );
215 OUString
processLang( std::unique_lock<std::mutex>& rGuard,
const OUString& Language );
222 OUString
expandURL(
const OUString& aURL );
223 OUString
expandURL( std::unique_lock<std::mutex>& rGuard,
const OUString& aURL );
226 const css::uno::Reference< css::uno::XComponentContext >& xContext );
231 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
232 css::uno::Reference< css::lang::XMultiComponentFactory >
m_xSMgr;
233 css::uno::Reference< css::ucb::XSimpleFileAccess3 >
m_xSFA;
257 typedef std::unordered_map< OUString, std::unique_ptr<helpdatafileproxy::Hdf> >
DatabasesTable;
263 typedef std::unordered_map< OUString, std::unique_ptr<StaticModuleInformation> >
ModInfoTable;
272 css::uno::Reference< css::container::XHierarchicalNameAccess > >
ZipFileTable;
304 typedef std::unordered_map
317 Databases& rDatabases, OUString aInitialModule, OUString aLanguage );
319 OUString aLanguage );
324 (
const css::uno::Reference< css::deployment::XPackage >& xPackage,
325 css::uno::Reference< css::deployment::XPackage >& o_xParentPackageBundle );
329 ( css::uno::Reference< css::deployment::XPackage >& o_xParentPackageBundle );
331 ( css::uno::Reference< css::deployment::XPackage >& o_xParentPackageBundle );
333 ( css::uno::Reference< css::deployment::XPackage >& o_xParentPackageBundle );
335 const css::uno::Reference< css::deployment::XPackage >& xPackage );
337 std::u16string_view rFileExtension,
338 const css::uno::Reference< css::deployment::XPackage >& xPackage );
340 const css::uno::Reference< css::deployment::XPackage >& xPackage );
342 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
343 css::uno::Reference< css::ucb::XSimpleFileAccess3 >
m_xSFA;
351 css::uno::Sequence< css::uno::Reference
355 css::uno::Sequence< css::uno::Reference
359 css::uno::Sequence< css::uno::Reference
373 Databases& rDatabases,
const OUString& aInitialModule,
const OUString& aLanguage,
bool bHelpText )
378 const OUString& aLanguage,
bool bHelpText )
387 const css::uno::Reference< css::deployment::XPackage >& xPackage,
388 OUString* o_pExtensionPath, OUString* o_pExtensionRegistryPath );
398 Databases& rDatabases,
const OUString& aInitialModule,
const OUString& aLanguage )
402 OUString
nextDbFile(std::unique_lock<std::mutex>& rGuard,
bool& o_rbExtension);
406 const css::uno::Reference< css::deployment::XPackage >& xPackage );
414 Databases& rDatabases,
const OUString& aInitialModule,
const OUString& aLanguage )
418 css::uno::Reference< css::container::XHierarchicalNameAccess >
420 css::uno::Reference<css::deployment::XPackage>& o_xParentPackageBundle,
421 OUString* o_pExtensionPath, OUString* o_pExtensionRegistryPath );
424 css::uno::Reference< css::container::XHierarchicalNameAccess >
426 const css::uno::Reference< css::deployment::XPackage >& xPackage,
427 OUString* o_pExtensionPath, OUString* o_pExtensionRegistryPath );
443 const css::uno::Reference< css::deployment::XPackage >& xPackage );
DataBaseIterator(css::uno::Reference< css::uno::XComponentContext > const &xContext, Databases &rDatabases, const OUString &aInitialModule, const OUString &aLanguage, bool bHelpText)
DataBaseIterator(Databases &rDatabases, const OUString &aInitialModule, const OUString &aLanguage, bool bHelpText)
helpdatafileproxy::Hdf * nextHdf(OUString *o_pExtensionPath=nullptr, OUString *o_pExtensionRegistryPath=nullptr)
helpdatafileproxy::Hdf * implGetHdfFromPackage(const css::uno::Reference< css::deployment::XPackage > &xPackage, OUString *o_pExtensionPath, OUString *o_pExtensionRegistryPath)
css::uno::Reference< css::container::XHierarchicalNameAccess > findJarFileForPath(const OUString &jar, const OUString &Language, const OUString &path, OUString *o_pExtensionPath=nullptr, OUString *o_pExtensionRegistryPath=nullptr)
KeywordInfo * getKeyword(const OUString &Module, const OUString &Language)
OString getImageTheme() const
const OUString & getProductName() const
void cascadingStylesheet(const OUString &Language, OStringBuffer &buffer)
Returns the cascading style sheet used to format the HTML-output.
OUString m_aInstallDirectory
KeywordInfoTable m_aKeywordInfo
helpdatafileproxy::Hdf * getHelpDataFile(std::u16string_view Module, const OUString &Language, bool helpText=false, const OUString *pExtensionPath=nullptr)
OUString getInstallPathAsURL()
ZipFileTable m_aZipFileTable
std::vector< char > m_vCustomCSSDoc
StaticModuleInformation * getStaticInformationForModule(std::u16string_view Module, const OUString &Language)
css::uno::Reference< css::i18n::XCollator > getCollator(std::unique_lock< std::mutex > &rGuard, const OUString &Language)
The following method returns the Collator for the given language-country combination.
OUString m_vReplacement[7]
std::unordered_map< OUString, OUString > LangSetTable
std::unordered_map< OUString, std::unique_ptr< helpdatafileproxy::Hdf > > DatabasesTable
css::uno::Reference< css::lang::XMultiComponentFactory > m_xSMgr
std::vector< OUString > m_avModules
void changeCSS(const OUString &newStyleSheet)
Changes the stylesheet for further reads.
const std::vector< OUString > & getModuleList(const OUString &Language)
css::uno::Reference< css::container::XHierarchicalNameAccess > jarFile(std::unique_lock< std::mutex > &rGuard, std::u16string_view jar, const OUString &Language)
Has the purpose of forcing the jarfile to stay open.
void replaceName(OUString &oustring) const
Databases(bool showBasic, const OUString &instPath, const OUString &productName, const OUString &productVersion, const OUString &styleSheet, css::uno::Reference< css::uno::XComponentContext > const &xContext)
Input is the installdirectory in system dependent notation.
std::unordered_map< OUString, css::uno::Reference< css::i18n::XCollator > > CollatorTable
std::unordered_set< OString > EmptyActiveTextSet
DatabasesTable m_aDatabases
css::uno::Reference< css::ucb::XSimpleFileAccess3 > m_xSFA
CollatorTable m_aCollatorTable
std::unordered_map< OUString, std::unique_ptr< KeywordInfo > > KeywordInfoTable
static OUString expandURL(const OUString &aURL, const css::uno::Reference< css::uno::XComponentContext > &xContext)
css::uno::Reference< css::uno::XComponentContext > m_xContext
void setActiveText(const OUString &Module, const OUString &Language, std::u16string_view Id, OStringBuffer &buffer)
Returns the active help text for the given module, language and id.
void setInstallPath(const OUString &aInstallDirectory)
OUString expandURL(const OUString &aURL)
EmptyActiveTextSet m_aEmptyActiveTextSet
const OUString & getProductVersion() const
std::unordered_map< OUString, std::unique_ptr< StaticModuleInformation > > ModInfoTable
bool checkModuleMatchForExtension(std::u16string_view Database, const OUString &doclist)
std::unordered_map< OUString, css::uno::Reference< css::container::XHierarchicalNameAccess > > ZipFileTable
OUString processLang(const OUString &Language)
Maps a given language-locale combination to language or locale.
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aUserPackagesSeq
css::uno::Reference< css::deployment::XPackage > implGetNextUserHelpPackage(css::uno::Reference< css::deployment::XPackage > &o_xParentPackageBundle)
css::uno::Reference< css::deployment::XPackage > implGetNextSharedHelpPackage(css::uno::Reference< css::deployment::XPackage > &o_xParentPackageBundle)
css::uno::Reference< css::ucb::XSimpleFileAccess3 > m_xSFA
css::uno::Reference< css::uno::XComponentContext > m_xContext
static css::uno::Reference< css::deployment::XPackage > implGetHelpPackageFromPackage(const css::uno::Reference< css::deployment::XPackage > &xPackage, css::uno::Reference< css::deployment::XPackage > &o_xParentPackageBundle)
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aBundledPackagesSeq
OUString implGetFileFromPackage(std::u16string_view rFileExtension, const css::uno::Reference< css::deployment::XPackage > &xPackage)
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aSharedPackagesSeq
ExtensionIteratorBase(css::uno::Reference< css::uno::XComponentContext > const &xContext, Databases &rDatabases, OUString aInitialModule, OUString aLanguage)
bool m_bBundledPackagesLoaded
OUString implGetFileFromPackage(std::unique_lock< std::mutex > &rGuard, std::u16string_view rFileExtension, const css::uno::Reference< css::deployment::XPackage > &xPackage)
OUString m_aInitialModule
void implGetLanguageVectorFromPackage(::std::vector< OUString > &rv, const css::uno::Reference< css::deployment::XPackage > &xPackage)
bool m_bUserPackagesLoaded
css::uno::Reference< css::deployment::XPackage > implGetNextBundledHelpPackage(css::uno::Reference< css::deployment::XPackage > &o_xParentPackageBundle)
bool m_bSharedPackagesLoaded
static ExtensionHelpExistenceMap aHelpExistenceMap
void deleteTempIndexFolder(std::u16string_view aIndexFolder)
OUString nextIndexFolder(bool &o_rbExtension, bool &o_rbTemporary)
IndexFolderIterator(Databases &rDatabases, const OUString &aInitialModule, const OUString &aLanguage)
OUString implGetIndexFolderFromPackage(bool &o_rbTemporary, const css::uno::Reference< css::deployment::XPackage > &xPackage)
css::uno::Reference< css::container::XHierarchicalNameAccess > nextJarFile(std::unique_lock< std::mutex > &rGuard, css::uno::Reference< css::deployment::XPackage > &o_xParentPackageBundle, OUString *o_pExtensionPath, OUString *o_pExtensionRegistryPath)
JarFileIterator(css::uno::Reference< css::uno::XComponentContext > const &xContext, Databases &rDatabases, const OUString &aInitialModule, const OUString &aLanguage)
css::uno::Reference< css::container::XHierarchicalNameAccess > implGetJarFromPackage(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< css::deployment::XPackage > &xPackage, OUString *o_pExtensionPath, OUString *o_pExtensionRegistryPath)
OUString implGetDbFileFromPackage(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< css::deployment::XPackage > &xPackage)
KeyDataBaseFileIterator(css::uno::Reference< css::uno::XComponentContext > const &xContext, Databases &rDatabases, const OUString &aInitialModule, const OUString &aLanguage)
OUString nextDbFile(std::unique_lock< std::mutex > &rGuard, bool &o_rbExtension)
KeywordElement(Databases const *pDatabases, helpdatafileproxy::Hdf *pHdf, OUString key, std::u16string_view ids)
css::uno::Sequence< OUString > listAnchor
css::uno::Sequence< OUString > listId
void init(Databases const *pDatabases, helpdatafileproxy::Hdf *pHdf, std::u16string_view ids)
css::uno::Sequence< OUString > listTitle
css::uno::Sequence< css::uno::Sequence< OUString > > & getIdList()
css::uno::Sequence< css::uno::Sequence< OUString > > & getAnchorList()
css::uno::Sequence< css::uno::Sequence< OUString > > & getTitleList()
css::uno::Sequence< css::uno::Sequence< OUString > > listId
css::uno::Sequence< css::uno::Sequence< OUString > > listAnchor
css::uno::Sequence< css::uno::Sequence< OUString > > listTitle
KeywordInfo(const std::vector< KeywordElement > &aVector)
css::uno::Sequence< OUString > & getKeywordList()
css::uno::Sequence< OUString > listKey
std::unordered_map< OUString, bool > ExtensionHelpExistenceMap
sal_Int32 toInt32(std::u16string_view rStr)