/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _OSL_MODULE_HXX_ #define _OSL_MODULE_HXX_ #include #include namespace osl { class Module { Module( const Module&); Module& operator = ( const Module&); public: static sal_Bool getUrlFromAddress(void * addr, ::rtl::OUString & libraryUrl) { return osl_getModuleURLFromAddress(addr, &libraryUrl.pData); } /** Get module URL from the specified function address in the module. Similar to getUrlFromAddress, but use a function address to get URL of the Module. Use Function pointer as symbol address to conceal type conversion. @param addr [in] function address in oslGenericFunction format. @param libraryUrl [in|out] receives the URL of the module. @return
sal_True
on success
sal_False
can not get the URL from the specified function address or the parameter is invalid.
@see getUrlFromAddress */ static sal_Bool getUrlFromAddress( oslGenericFunction addr, ::rtl::OUString & libraryUrl){ return osl_getModuleURLFromFunctionAddress( addr, &libraryUrl.pData ); } Module(): m_Module(0){} #ifndef DISABLE_DYNLOADING Module( const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT) : m_Module(0) { load( strModuleName, nRtldMode); } #endif ~Module() { #ifndef DISABLE_DYNLOADING osl_unloadModule(m_Module); #endif } #ifndef DISABLE_DYNLOADING sal_Bool SAL_CALL load( const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT) { unload(); m_Module= osl_loadModule( strModuleName.pData, nRtldMode ); return is(); } /// @since UDK 3.2.8 sal_Bool SAL_CALL loadRelative( ::oslGenericFunction baseModule, ::rtl::OUString const & relativePath, ::sal_Int32 mode = SAL_LOADMODULE_DEFAULT) { unload(); m_Module = osl_loadModuleRelative(baseModule, relativePath.pData, mode); return is(); } /// @since LibreOffice 3.5 sal_Bool SAL_CALL loadRelative( oslGenericFunction baseModule, char const * relativePath, sal_Int32 mode = SAL_LOADMODULE_DEFAULT) { unload(); m_Module = osl_loadModuleRelativeAscii(baseModule, relativePath, mode); return is(); } void SAL_CALL unload() { if (m_Module) { osl_unloadModule(m_Module); m_Module = 0; } } #endif sal_Bool SAL_CALL is() const { return m_Module != NULL; } void* SAL_CALL getSymbol( const ::rtl::OUString& strSymbolName) { return ( osl_getSymbol( m_Module, strSymbolName.pData ) ); } /** Get function address by the function name in the module. getFunctionSymbol is an alternative function for getSymbol. Use Function pointer as symbol address to conceal type conversion. @param ustrFunctionSymbolName [in] Function name to be looked up. @return
oslGenericFunction format function address
on success
NULL
lookup failed or parameter is somewhat invalid
@see getSymbol */ oslGenericFunction SAL_CALL getFunctionSymbol( const ::rtl::OUString& ustrFunctionSymbolName ) const { return ( osl_getFunctionSymbol( m_Module, ustrFunctionSymbolName.pData ) ); } /// @since LibreOffice 3.5 oslGenericFunction SAL_CALL getFunctionSymbol(char const * name) const { return osl_getAsciiFunctionSymbol(m_Module, name); } operator oslModule() const { return m_Module; } private: oslModule m_Module; }; } #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ ion> LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Expand)Author
2013-01-04Make LO buildable again after the GraphicFilter move.Jan Holesovsky
2012-12-21fdo#46808, Convert frame::Desktop to new style service.Noel Grandin
2012-12-04re-base on ALv2 code. Includes:Michael Meeks
2012-11-30Remove rtl:: from a test in test/Marcos Paulo de Souza
2012-11-29Improve error messageStephan Bergmann
2012-11-17we really don't need lang-conversion hereEike Rathke
2012-11-05cleanup README files.Michael Meeks
2012-11-05add a README filesAlia Almusaireae
2012-11-04Fix copy&paste in testMarcos Paulo de Souza
2012-10-31Get rid of vcl::unohelper::GetMultiServiceFactoryStephan Bergmann
2012-10-09String->OUString in tools::ErrorContextNoel Grandin
2012-09-28gbuild: invert handling of standard system libraries:Michael Stahl
2012-09-28gbuild: replace direct gb_STDLIBS use with ...Michael Stahl
2012-09-28gbuild: split uwinapi out of gb_STDLIBSMichael Stahl
2012-09-25move XGoalSeek api test to c++Markus Mohrhard
2012-09-18deprecate oustringostreaminserter.hxxNorbert Thiebaud
2012-09-14Improvement on previous commit, UCB clean upStephan Bergmann
2012-08-10Related fdo#51252: No more prereg, no more unopkg syncStephan Bergmann
2012-08-02test: string cleanup in BootstrapFixtureMiklos Vajna
2012-08-01test::BootstrapFixture: make GraphicConverter workMiklos Vajna
2012-07-13test: move XMLDiff implementation details to cxx fileMichael Stahl
2012-07-02targetted improvement of UNO API includes / usageMichael Meeks
2012-06-27targetted re-work of cppunit pieces.Michael Meeks
2012-06-22re-base on ALv2 code. Includes:Michael Meeks