Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
55745cd1
Kaydet (Commit)
55745cd1
authored
Eki 03, 2012
tarafından
Stephan Bergmann
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Dead xml2cmp-related test code
Change-Id: I44b7f56aa1b4b9bc290c9c15281b64947a694e5c
üst
7501beaf
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
0 additions
and
921 deletions
+0
-921
ExampleComponent1.idl
stoc/test/excomp/example/ExampleComponent1.idl
+0
-34
ExampleComponent2.idl
stoc/test/excomp/example/ExampleComponent2.idl
+0
-34
XTest.idl
stoc/test/excomp/example/XTest.idl
+0
-40
excomp.cxx
stoc/test/excomp/excomp.cxx
+0
-123
excomp1.cxx
stoc/test/excomp/excomp1.cxx
+0
-201
excomp1.xml
stoc/test/excomp/excomp1.xml
+0
-48
excomp2.cxx
stoc/test/excomp/excomp2.cxx
+0
-272
excomp2.xml
stoc/test/excomp/excomp2.xml
+0
-48
exports.dxp
stoc/test/excomp/exports.dxp
+0
-2
makefile.mk
stoc/test/excomp/makefile.mk
+0
-119
No files found.
stoc/test/excomp/example/ExampleComponent1.idl
deleted
100644 → 0
Dosyayı görüntüle @
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
stoc/test/excomp/example/ExampleComponent2.idl
deleted
100644 → 0
Dosyayı görüntüle @
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_EXAMPLECOMPONENT2_IDL_
#
define
_EXCOMP_EXAMPLECOMPONENT2_IDL_
#
include
<
example
/
XTest
.
idl>
module
example
{
service
ExampleComponent2
{
interface
XTest
;
}
;
}
; // test
#
endif
stoc/test/excomp/example/XTest.idl
deleted
100644 → 0
Dosyayı görüntüle @
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_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
stoc/test/excomp/excomp.cxx
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
/* -*- 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: */
stoc/test/excomp/excomp1.cxx
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
/* -*- 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: */
stoc/test/excomp/excomp1.xml
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
<?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>
stoc/test/excomp/excomp2.cxx
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
/* -*- 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: */
stoc/test/excomp/excomp2.xml
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
<?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>
stoc/test/excomp/exports.dxp
deleted
100644 → 0
Dosyayı görüntüle @
7501beaf
component_writeInfo
component_getFactory
stoc/test/excomp/makefile.mk
deleted
100644 → 0
Dosyayı görüntüle @
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 .
#
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
$@
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment