office-gobmx/include/cppuhelper/bootstrap.hxx
Norbert Thiebaud 2f3305e939 fdo#65108 inter-module includes <> include/cppuhelper
Change-Id: Ife81bf3dacb574b664982f3b4d2c7af9eb78a66a
2013-11-09 18:48:40 -06:00

167 lines
5.3 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_CPPUHELPER_BOOTSTRAP_HXX
#define INCLUDED_CPPUHELPER_BOOTSTRAP_HXX
#include <sal/config.h>
#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/uno/Reference.hxx>
#include <rtl/ustring.hxx>
#include <sal/types.h>
#include <cppuhelper/cppuhelperdllapi.h>
namespace com { namespace sun { namespace star {
namespace container { class XHierarchicalNameAccess; }
namespace uno { class XComponentContext; }
} } }
namespace cppu
{
/** Installs type description manager instance, i.e. registers a callback at cppu core.
@param xTDMgr manager instance
@return true, if successfully registered
*/
CPPUHELPER_DLLPUBLIC sal_Bool SAL_CALL installTypeDescriptionManager(
::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess > const & xTDMgr )
SAL_THROW(());
/** Bootstraps an initial component context with service manager upon
information from bootstrap variables.
This function tries to find its parameters via these bootstrap variables:
- UNO_TYPES -- a space separated list of file urls of type rdbs
- UNO_SERVICES -- a space separated list of file urls of service rdbs
Please look at http://udk.openoffice.org/common/man/concept/uno_default_bootstrapping.html
for further info.
@return component context
*/
CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > SAL_CALL
defaultBootstrap_InitialComponentContext() SAL_THROW( (::com::sun::star::uno::Exception) );
/** Bootstraps an initial component context with service manager upon
information from an ini file.
This function tries to find its parameters via these bootstrap variables:
- UNO_TYPES -- a space separated list of file urls of type rdbs
- UNO_SERVICES -- a space separated list of file urls of service rdbs
Please look at http://udk.openoffice.org/common/man/concept/uno_default_bootstrapping.html
for further info.
@param iniFile ini filename to get bootstrap variables
@return component context
*/
CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > SAL_CALL
defaultBootstrap_InitialComponentContext(const ::rtl::OUString & iniFile) SAL_THROW( (::com::sun::star::uno::Exception) );
/**
* An exception indicating a bootstrap error.
*
* @since UDK 3.2.0
*/
class CPPUHELPER_DLLPUBLIC BootstrapException
{
public:
/**
* Constructs a BootstrapException.
*/
BootstrapException();
/**
* Constructs a BootstrapException with the specified detail message.
*
* @param rMessage
* A message containing any details about the exception.
*/
BootstrapException( const ::rtl::OUString & rMessage );
/**
* Copy constructs a BootstrapException.
*/
BootstrapException( const BootstrapException & e );
/**
* Destructs a BootstrapException.
*/
virtual ~BootstrapException();
/**
* Assigns a BootstrapException.
*/
BootstrapException & operator=( const BootstrapException & e );
/** Gets the message.
@return
A reference to the message. The reference is valid for the lifetime of
this BootstrapException.
*/
const ::rtl::OUString & getMessage() const;
private:
::rtl::OUString m_aMessage;
};
/**
* Bootstraps the component context from a UNO installation.
*
* @return a bootstrapped component context
* @exception BootstrapException
* Thrown in case bootstrap() signals an exception due to a
* bootstrap error.
*
* @since UDK 3.2.0
*/
CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
SAL_CALL bootstrap();
/// @cond INTERNAL
/**
* Helper function to expand vnd.sun.star.expand URLs in contexts where no
* properly bootstrapped UNO is (yet) available.
*
* @param uri
* Some URI (but not a URI reference).
*
* @return
* If uri is a vnd.sun.star.expand URL, then the expansion of that URL is
* returned; expansion may lead to a string that is not a legal URI. Otherwise,
* the uri is returned unchanged.
*
* @exception com::sun::star::lang::IllegalArgumentException
* If uri is a vnd.sun.star.expand URL that contains unknown macros.
*
* @since UDK 3.2.8
*/
CPPUHELPER_DLLPUBLIC ::rtl::OUString
SAL_CALL bootstrap_expandUri(::rtl::OUString const & uri);
/// @endcond
} // end namespace cppu
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */