Kaydet (Commit) 55745cd1 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Dead xml2cmp-related test code

Change-Id: I44b7f56aa1b4b9bc290c9c15281b64947a694e5c
üst 7501beaf
/*
* 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 _EXCOMP_EXAMPLECOMPONENT1_IDL_
#define _EXCOMP_EXAMPLECOMPONENT1_IDL_
#include <example/XTest.idl>
module example
{
service ExampleComponent1
{
interface XTest;
};
}; // test
#endif
/*
* 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 _EXCOMP_EXAMPLECOMPONENT2_IDL_
#define _EXCOMP_EXAMPLECOMPONENT2_IDL_
#include <example/XTest.idl>
module example
{
service ExampleComponent2
{
interface XTest;
};
}; // test
#endif
/*
* 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 _EXCOMP_XTEST_IDL_
#define _EXCOMP_XTEST_IDL_
#include <com/sun/star/uno/XInterface.idl>
module example
{
/**
* Simple test interface.
*
* @author Juergen Schmidt
*/
interface XTest : com::sun::star::uno::XInterface
{
/**
* in parameter test, tests by calls reference also (complex types)
*/
string getMessage( );
};
}; // test
#endif
/* -*- 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 .
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sal/main.h>
#include <osl/diagnose.h>
#include <osl/process.h>
#include <example/XTest.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/registry/XImplementationRegistration.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/servicefactory.hxx>
using namespace com::sun::star::uno;
using namespace com::sun::star::registry;
using namespace com::sun::star::lang;
using namespace example;
using namespace cppu;
using ::rtl::OUString;
using ::rtl::OUStringToOString;
OUString getExePath()
{
OUString exe;
OSL_VERIFY(osl_getExecutableFile( &exe.pData) == osl_Process_E_None);
#if defined(WIN32) || defined(WNT)
exe = exe.copy(0, exe.getLength() - 10);
#else
exe = exe.copy(0, exe.getLength() - 6);
#endif
return exe;
}
SAL_IMPLEMENT_MAIN()
{
#ifdef UNX
OUString compName1("libexcomp1.so");
OUString compName2("libexcomp2.so");
#else
OUString compName1("excomp1");
OUString compName2("excomp2");
#endif
OUString exePath( getExePath() );
OUString excompRdb(exePath);
excompRdb += OUString("excomp.rdb");
Reference< XMultiServiceFactory > xSMgr = ::cppu::createRegistryServiceFactory( excompRdb );
OSL_ENSURE( xSMgr.is(), "excomp error 0" );
typelib_TypeDescription* pTypeDesc = NULL;
OUString sType("com.sun.star.text.XTextDocument");
typelib_typedescription_getByName( &pTypeDesc, sType.pData);
// typelib_InterfaceTypeDescription* pInterDesc = (typelib_InterfaceTypeDescription*)pTypeDesc;
Reference< XInterface > xIFace = xSMgr->createInstance(OUString("com.sun.star.registry.ImplementationRegistration"));
Reference< XImplementationRegistration > xImpReg( xIFace, UNO_QUERY);
OSL_ENSURE( xImpReg.is(), "excomp error 1" );
try
{
xImpReg->registerImplementation(OUString("com.sun.star.loader.SharedLibrary"),
compName1,
Reference< XSimpleRegistry >() );
xImpReg->registerImplementation(OUString("com.sun.star.loader.SharedLibrary"),
compName2,
Reference< XSimpleRegistry >() );
}
catch(const CannotRegisterImplementationException& e)
{
OSL_ENSURE( e.Message.getLength(), OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US).getStr() );
}
Reference< XTest > xTest1( xSMgr->createInstance(OUString("example.ExampleComponent1")),
UNO_QUERY);
OSL_ENSURE( xTest1.is(), "excomp error 2" );
Reference< XTest > xTest2( xSMgr->createInstance(OUString("example.ExampleComponent2")),
UNO_QUERY);
OSL_ENSURE( xTest2.is(), "excomp error 3" );
OUString m1 = xTest1->getMessage();
OUString m2 = xTest2->getMessage();
fprintf(stdout, "ExampleComponent1, Message = \"%s\"\n", OUStringToOString(m1, RTL_TEXTENCODING_ASCII_US).getStr());
fprintf(stdout, "ExampleComponent2, Message = \"%s\"\n", OUStringToOString(m2, RTL_TEXTENCODING_ASCII_US).getStr());
xImpReg->revokeImplementation(compName1, Reference< XSimpleRegistry >() );
xImpReg->revokeImplementation(compName2, Reference< XSimpleRegistry >() );
Reference< XComponent >( xSMgr, UNO_QUERY )->dispose();
return(0);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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 .
*/
#include <osl/diagnose.h>
#include <osl/mutex.hxx>
#include <rtl/alloc.h>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase2.hxx>
#include <example/XTest.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/registry/XRegistryKey.hpp>
using namespace example;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
using namespace cppu;
using namespace osl;
using ::rtl::OUString;
#define SERVICENAME1 "example.ExampleComponent1"
#define IMPLNAME1 "example.ExampleComponent1.Impl"
namespace excomp_impl {
//*************************************************************************
// ExampleComponent1Impl
//*************************************************************************
class ExampleComponent1Impl : public WeakImplHelper2< XTest, XServiceInfo >
{
public:
ExampleComponent1Impl( const Reference<XMultiServiceFactory> & rXSMgr );
~ExampleComponent1Impl();
// XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException);
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException);
static Sequence< OUString > SAL_CALL getSupportedServiceNames_Static( );
// XSimpleRegistry
virtual OUString SAL_CALL getMessage() throw(RuntimeException);
protected:
Mutex m_mutex;
Reference<XMultiServiceFactory> m_xSMgr;
};
//*************************************************************************
ExampleComponent1Impl::ExampleComponent1Impl( const Reference<XMultiServiceFactory> & rXSMgr )
: m_xSMgr(rXSMgr)
{
}
//*************************************************************************
ExampleComponent1Impl::~ExampleComponent1Impl()
{
}
//*************************************************************************
OUString SAL_CALL ExampleComponent1Impl::getImplementationName( )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return OUString( IMPLNAME1 );
}
//*************************************************************************
sal_Bool SAL_CALL ExampleComponent1Impl::supportsService( const OUString& ServiceName )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
Sequence< OUString > aSNL = getSupportedServiceNames();
const OUString * pArray = aSNL.getArray();
for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
if( pArray[i] == ServiceName )
return sal_True;
return sal_False;
}
//*************************************************************************
Sequence<OUString> SAL_CALL ExampleComponent1Impl::getSupportedServiceNames( )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return getSupportedServiceNames_Static();
}
//*************************************************************************
Sequence<OUString> SAL_CALL ExampleComponent1Impl::getSupportedServiceNames_Static( )
{
OUString aName( SERVICENAME1 );
return Sequence< OUString >( &aName, 1 );
}
//*************************************************************************
OUString SAL_CALL ExampleComponent1Impl::getMessage() throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return OUString("Lalelu nur der Mann im Mond schaut zu ...");
}
//*************************************************************************
Reference<XInterface> SAL_CALL ExampleComponent1_CreateInstance( const Reference<XMultiServiceFactory>& rSMgr )
{
Reference<XInterface> xRet;
XTest *pXTest = (XTest*) new ExampleComponent1Impl(rSMgr);
if (pXTest)
{
xRet = Reference< XInterface >::query(pXTest);
}
return xRet;
}
} // excomp_impl
extern "C"
{
//==================================================================================================
sal_Bool SAL_CALL component_writeInfo(
void * /* pServiceManager */ , void * pRegistryKey )
{
if (pRegistryKey)
{
try
{
// ExampleComponent1
Reference< XRegistryKey > xNewKey(
reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
OUString( "/" IMPLNAME1 "/UNO/SERVICES" ) ) );
const Sequence< OUString > & rSNL =
::excomp_impl::ExampleComponent1Impl::getSupportedServiceNames_Static();
const OUString * pArray = rSNL.getConstArray();
for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
xNewKey->createKey( pArray[nPos] );
return sal_True;
}
catch (InvalidRegistryException &)
{
OSL_FAIL( "### InvalidRegistryException!" );
}
}
return sal_False;
}
//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
void * pRet = 0;
if (rtl_str_compare( pImplName, IMPLNAME1 ) == 0)
{
Reference< XSingleServiceFactory > xFactory( createSingleFactory(
reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
OUString( IMPLNAME1 ),
::excomp_impl::ExampleComponent1_CreateInstance,
::excomp_impl::ExampleComponent1Impl::getSupportedServiceNames_Static() ) );
if (xFactory.is())
{
xFactory->acquire();
pRet = xFactory.get();
}
}
return pRet;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
<!--
* 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 .
-->
<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
<module-name> excomp1 </module-name>
<component-description>
<author> Juergen Schmidt </author>
<name> example.ExampleComponent1.Impl </name>
<description>
This component provides a simple demo component.
</description>
<loader-name> com.sun.star.loader.SharedLibrary </loader-name>
<language> c++ </language>
<status value="final"/>
<supported-service> example.ExampleComponent1 </supported-service>
<type> com.sun.star.lang.XTypeProvider </type>
<type> com.sun.star.lang.XServiceInfo </type>
<type> com.sun.star.lang.XSingleServiceFactory </type>
<type> com.sun.star.lang.XMultiServiceFactory </type>
<type> com.sun.star.registry.XRegistryKey </type>
<type> com.sun.star.uno.XAggregation </type>
<type> com.sun.star.uno.XWeak </type>
<type> com.sun.star.uno.TypeClass </type>
<type> example.XTest </type>
</component-description>
<project-build-dependency> cppuhelper </project-build-dependency>
<project-build-dependency> cppu </project-build-dependency>
<project-build-dependency> sal </project-build-dependency>
<runtime-module-dependency> cppuhelper </runtime-module-dependency>
<runtime-module-dependency> cppu </runtime-module-dependency>
<runtime-module-dependency> sal </runtime-module-dependency>
</module-description>
/* -*- 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 .
*/
#include <osl/diagnose.h>
#include <osl/mutex.hxx>
#include <rtl/alloc.h>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/weak.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <example/XTest.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/registry/XRegistryKey.hpp>
using namespace example;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
using namespace cppu;
using namespace osl;
using ::rtl::OUString;
#define SERVICENAME2 "example.ExampleComponent2"
#define IMPLNAME2 "example.ExampleComponent2.Impl"
namespace excomp2_impl {
//*************************************************************************
// ExampleComponent2Impl
//*************************************************************************
class ExampleComponent2Impl : public OWeakObject
, public XTypeProvider
, public XServiceInfo
, public XTest
{
public:
ExampleComponent2Impl( const Reference<XMultiServiceFactory> & rXSMgr );
~ExampleComponent2Impl();
// XInterface
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL acquire() throw()
{ OWeakObject::acquire(); }
virtual void SAL_CALL release() throw()
{ OWeakObject::release(); }
// XTypeProvider
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
// XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException);
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException);
static Sequence< OUString > SAL_CALL getSupportedServiceNames_Static( );
// XTest
virtual OUString SAL_CALL getMessage() throw(RuntimeException);
protected:
Mutex m_mutex;
Reference<XMultiServiceFactory> m_xSMgr;
};
//*************************************************************************
ExampleComponent2Impl::ExampleComponent2Impl( const Reference<XMultiServiceFactory> & rXSMgr )
: m_xSMgr(rXSMgr)
{
}
//*************************************************************************
ExampleComponent2Impl::~ExampleComponent2Impl()
{
}
//*************************************************************************
Any SAL_CALL ExampleComponent2Impl::queryInterface( const ::com::sun::star::uno::Type & rType )
throw(::com::sun::star::uno::RuntimeException)
{
Any aRet = ::cppu::queryInterface(rType,
static_cast< XTypeProvider * >( this ),
static_cast< XServiceInfo * >( this ),
static_cast< XTest * >( this ) );
if ( aRet.hasValue() )
return aRet;
return OWeakObject::queryInterface( rType );
}
//*************************************************************************
Sequence< Type > SAL_CALL ExampleComponent2Impl::getTypes()
throw (::com::sun::star::uno::RuntimeException)
{
static OTypeCollection * pTypes = 0;
if (! pTypes)
{
MutexGuard aGuard( m_mutex );
if (! pTypes)
{
static OTypeCollection aTypes(
::getCppuType( (const Reference< XInterface > *)0 ),
::getCppuType( (const Reference< XWeak > *)0 ),
::getCppuType( (const Reference< XTypeProvider > *)0 ),
::getCppuType( (const Reference< XServiceInfo > *)0 ),
::getCppuType( (const Reference< XTest > *)0 ) );
pTypes = &aTypes;
}
}
return pTypes->getTypes();
}
//*************************************************************************
Sequence< sal_Int8 > SAL_CALL ExampleComponent2Impl::getImplementationId()
throw (::com::sun::star::uno::RuntimeException)
{
static OImplementationId * pId = 0;
if (! pId)
{
MutexGuard aGuard( m_mutex );
if (! pId)
{
static OImplementationId aId;
pId = &aId;
}
}
return pId->getImplementationId();
}
//*************************************************************************
OUString SAL_CALL ExampleComponent2Impl::getImplementationName( )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return OUString( IMPLNAME2 );
}
//*************************************************************************
sal_Bool SAL_CALL ExampleComponent2Impl::supportsService( const OUString& ServiceName )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
Sequence< OUString > aSNL = getSupportedServiceNames();
const OUString * pArray = aSNL.getConstArray();
for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
if( pArray[i] == ServiceName )
return sal_True;
return sal_False;
}
//*************************************************************************
Sequence<OUString> SAL_CALL ExampleComponent2Impl::getSupportedServiceNames( )
throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return getSupportedServiceNames_Static();
}
//*************************************************************************
Sequence<OUString> SAL_CALL ExampleComponent2Impl::getSupportedServiceNames_Static( )
{
OUString aName( SERVICENAME2 );
return Sequence< OUString >( &aName, 1 );
}
//*************************************************************************
OUString SAL_CALL ExampleComponent2Impl::getMessage() throw(RuntimeException)
{
Guard< Mutex > aGuard( m_mutex );
return OUString("Alle meine Entchen schwimmen auf dem See, schwimmen auf dem See ...");
}
//*************************************************************************
Reference<XInterface> SAL_CALL ExampleComponent2_CreateInstance( const Reference<XMultiServiceFactory>& rSMgr )
{
Reference<XInterface> xRet;
XTest *pXTest = (XTest*) new ExampleComponent2Impl(rSMgr);
if (pXTest)
{
xRet = Reference< XInterface >::query(pXTest);
}
return xRet;
}
} // excomp_impl
extern "C"
{
//==================================================================================================
sal_Bool SAL_CALL component_writeInfo(
void * /* pServiceManager */, void * pRegistryKey )
{
if (pRegistryKey)
{
try
{
// ExampleComponent2
Reference< XRegistryKey > xNewKey(
reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
OUString( "/" IMPLNAME2 "/UNO/SERVICES" ) ) );
const Sequence< OUString > & rSNL =
::excomp2_impl::ExampleComponent2Impl::getSupportedServiceNames_Static();
const OUString * pArray = rSNL.getConstArray();
for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
xNewKey->createKey( pArray[nPos] );
return sal_True;
}
catch (InvalidRegistryException &)
{
OSL_FAIL( "### InvalidRegistryException!" );
}
}
return sal_False;
}
//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
void * pRet = 0;
if (rtl_str_compare( pImplName, IMPLNAME2 ) == 0)
{
Reference< XSingleServiceFactory > xFactory( createSingleFactory(
reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
OUString( IMPLNAME2 ),
::excomp2_impl::ExampleComponent2_CreateInstance,
::excomp2_impl::ExampleComponent2Impl::getSupportedServiceNames_Static() ) );
if (xFactory.is())
{
xFactory->acquire();
pRet = xFactory.get();
}
}
return pRet;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
<!--
* 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 .
-->
<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
<module-name> excomp2 </module-name>
<component-description>
<author> Juergen Schmidt </author>
<name> example.ExampleComponent2.Impl </name>
<description>
This component provides a simple demo component.
</description>
<loader-name> com.sun.star.loader.SharedLibrary </loader-name>
<language> c++ </language>
<status value="final"/>
<supported-service> example.ExampleComponent2 </supported-service>
<type> com.sun.star.lang.XTypeProvider </type>
<type> com.sun.star.lang.XServiceInfo </type>
<type> com.sun.star.lang.XSingleServiceFactory </type>
<type> com.sun.star.lang.XMultiServiceFactory </type>
<type> com.sun.star.registry.XRegistryKey </type>
<type> com.sun.star.uno.XAggregation </type>
<type> com.sun.star.uno.XWeak </type>
<type> com.sun.star.uno.TypeClass </type>
<type> example.XTest </type>
</component-description>
<project-build-dependency> cppuhelper </project-build-dependency>
<project-build-dependency> cppu </project-build-dependency>
<project-build-dependency> sal </project-build-dependency>
<runtime-module-dependency> cppuhelper </runtime-module-dependency>
<runtime-module-dependency> cppu </runtime-module-dependency>
<runtime-module-dependency> sal </runtime-module-dependency>
</module-description>
component_writeInfo
component_getFactory
#
# 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 .
#
PRJ=..$/..
PRJNAME= stoc
TARGET= excomp
TARGET1= excomp1
TARGET2= excomp2
TARGETTYPE=CUI
ENABLE_EXCEPTIONS=TRUE
USE_DEFFILE= TRUE
COMP1TYPELIST=$(TARGET1)
COMP2TYPELIST=$(TARGET2)
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
# ------------------------------------------------------------------
UNOUCRDEP= $(BIN)$/excomp.rdb
UNOUCRRDB= $(BIN)$/excomp.rdb
UNOUCROUT= $(OUT)$/inc
INCPRE+= $(OUT)$/inc
UNOTYPES=$($(TARGET1)_XML2CMPTYPES)
UNOTYPES+=$($(TARGET2)_XML2CMPTYPES)
UNOTYPES+= com.sun.star.registry.XImplementationRegistration \
com.sun.star.lang.XComponent
# --- Application excomp ------------------------------------------------
APP1TARGET= $(TARGET)
APP1OBJS= $(OBJ)$/excomp.obj
APP1STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALHELPERLIB) \
$(SALLIB)
# ---- objects ----
SLOFILES= \
$(SLO)$/excomp1.obj \
$(SLO)$/$(COMP1TYPELIST)_description.obj \
$(SLO)$/excomp2.obj \
$(SLO)$/$(COMP2TYPELIST)_description.obj
# ---- excomp1 ------
SHL1TARGET= $(TARGET1)
SHL1STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALHELPERLIB) \
$(SALLIB)
SHL1DEPN=
SHL1LIBS=
SHL1OBJS= $(SLO)$/excomp1.obj \
$(SLO)$/$(COMP1TYPELIST)_description.obj
SHL1IMPLIB= i$(TARGET1)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
DEF1EXPORTFILE= exports.dxp
# ---- excomp2 ------
SHL2TARGET= $(TARGET2)
SHL2STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALHELPERLIB) \
$(SALLIB)
SHL2DEPN=
SHL2LIBS=
SHL2OBJS= $(SLO)$/excomp2.obj \
$(SLO)$/$(COMP2TYPELIST)_description.obj
SHL2IMPLIB= i$(TARGET2)
SHL2DEF= $(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
DEF2EXPORTFILE= exports.dxp
ALLIDLFILES:= example$/XTest.idl example$/ExampleComponent1.idl example$/ExampleComponent2.idl
# --- Targets ------------------------------------------------------
.IF "$(depend)" == ""
ALL : $(BIN)$/excomp.rdb \
ALLTAR
.ELSE
ALL: ALLDEP
.ENDIF
.INCLUDE : target.mk
$(BIN)$/excomp.rdb: $(ALLIDLFILES)
idlc -I$(PRJ) -I$(SOLARIDLDIR) -O$(MISC)$/excomp $?
regmerge $@ /UCR $(MISC)$/excomp$/{$(?:f:s/.idl/.urd/)}
regmerge $@ / $(SOLARBINDIR)$/udkapi.rdb
touch $@
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment