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
fcd484d1
Kaydet (Commit)
fcd484d1
authored
Haz 22, 2001
tarafından
Jörg Budischewski
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#67468# unloading +context support added
üst
77d34aad
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
52 deletions
+74
-52
corefl.map
stoc/source/corereflection/corefl.map
+10
-0
crefl.cxx
stoc/source/corereflection/crefl.cxx
+61
-48
makefile.mk
stoc/source/corereflection/makefile.mk
+3
-4
No files found.
stoc/source/corereflection/corefl.map
0 → 100644
Dosyayı görüntüle @
fcd484d1
UDK_3_0_0 {
global:
component_getImplementationEnvironment;
component_writeInfo;
component_getFactory;
component_canUnload;
component_getDescriptionFunc;
local:
*;
};
stoc/source/corereflection/crefl.cxx
Dosyayı görüntüle @
fcd484d1
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: crefl.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author:
dbo $ $Date: 2001-05-10 14:36:45
$
* last change: $Author:
jbu $ $Date: 2001-06-22 15:41:59
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -62,6 +62,9 @@
#ifndef _CPPUHELPER_QUERYINTERFACE_HXX_
#include <cppuhelper/queryinterface.hxx>
#endif
#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_
#include <cppuhelper/implementationentry.hxx>
#endif
#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/lang/XComponent.hpp>
...
...
@@ -69,6 +72,9 @@
using
namespace
com
::
sun
::
star
::
lang
;
using
namespace
com
::
sun
::
star
::
registry
;
using
namespace
cppu
;
using
namespace
osl
;
using
namespace
rtl
;
#include "base.hxx"
...
...
@@ -81,13 +87,40 @@ static const sal_Int32 CACHE_SIZE = 256;
#define SERVICENAME "com.sun.star.reflection.CoreReflection"
#define IMPLNAME "com.sun.star.comp.stoc.CoreReflection"
//--------------------------------------------------------------------------------------------------
inline
static
Sequence
<
OUString
>
getSupportedServiceNames
()
// can be static, as every client of the core reflection keeps a reference to the
// core reflection, so refcounting can be done here.
static
rtl_StandardModuleCount
g_moduleCount
=
MODULE_COUNT_INIT
;
static
Sequence
<
OUString
>
core_getSupportedServiceNames
()
{
OUString
aName
(
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
SERVICENAME
)
)
);
return
Sequence
<
OUString
>
(
&
aName
,
1
);
static
Sequence
<
OUString
>
*
pNames
=
0
;
if
(
!
pNames
)
{
MutexGuard
guard
(
Mutex
::
getGlobalMutex
()
);
if
(
!
pNames
)
{
static
Sequence
<
OUString
>
seqNames
(
1
);
seqNames
.
getArray
()[
0
]
=
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
SERVICENAME
)
);
pNames
=
&
seqNames
;
}
}
return
*
pNames
;
}
static
OUString
core_getImplementationName
()
{
static
OUString
*
pImplName
=
0
;
if
(
!
pImplName
)
{
MutexGuard
guard
(
Mutex
::
getGlobalMutex
()
);
if
(
!
pImplName
)
{
static
OUString
implName
(
RTL_CONSTASCII_USTRINGPARAM
(
IMPLNAME
)
);
pImplName
=
&
implName
;
}
}
return
*
pImplName
;
}
//__________________________________________________________________________________________________
IdlReflectionServiceImpl
::
IdlReflectionServiceImpl
(
const
Reference
<
XComponentContext
>
&
xContext
)
...
...
@@ -95,6 +128,7 @@ IdlReflectionServiceImpl::IdlReflectionServiceImpl(
,
_xMgr
(
xContext
->
getServiceManager
(),
UNO_QUERY
)
,
_aElements
(
CACHE_SIZE
)
{
g_moduleCount
.
modCnt
.
acquire
(
&
g_moduleCount
.
modCnt
);
xContext
->
getValueByName
(
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
"com.sun.star.reflection.TypeDescriptionManager"
)
)
)
>>=
_xTDMgr
;
OSL_ENSURE
(
_xTDMgr
.
is
(),
"### cannot get
\"
com.sun.star.reflection.TypeDescriptionManager
\"
!"
);
...
...
@@ -103,6 +137,7 @@ IdlReflectionServiceImpl::IdlReflectionServiceImpl(
IdlReflectionServiceImpl
::~
IdlReflectionServiceImpl
()
{
TRACE
(
"> IdlReflectionServiceImpl dtor <
\n
"
);
g_moduleCount
.
modCnt
.
release
(
&
g_moduleCount
.
modCnt
);
}
// XInterface
...
...
@@ -195,7 +230,7 @@ void IdlReflectionServiceImpl::dispose()
OUString
IdlReflectionServiceImpl
::
getImplementationName
()
throw
(
::
com
::
sun
::
star
::
uno
::
RuntimeException
)
{
return
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
IMPLNAME
)
);
return
core_getImplementationName
(
);
}
//__________________________________________________________________________________________________
sal_Bool
IdlReflectionServiceImpl
::
supportsService
(
const
OUString
&
rServiceName
)
...
...
@@ -214,7 +249,7 @@ sal_Bool IdlReflectionServiceImpl::supportsService( const OUString & rServiceNam
Sequence
<
OUString
>
IdlReflectionServiceImpl
::
getSupportedServiceNames
()
throw
(
::
com
::
sun
::
star
::
uno
::
RuntimeException
)
{
return
stoc_corefl
::
getSupportedServiceNames
();
return
core_
getSupportedServiceNames
();
}
// XIdlReflection
...
...
@@ -426,9 +461,25 @@ Reference< XInterface > SAL_CALL IdlReflectionServiceImpl_create(
//##################################################################################################
//##################################################################################################
using
namespace
stoc_corefl
;
static
struct
ImplementationEntry
g_entries
[]
=
{
{
IdlReflectionServiceImpl_create
,
core_getImplementationName
,
core_getSupportedServiceNames
,
createSingleComponentFactory
,
&
g_moduleCount
.
modCnt
,
0
},
{
0
,
0
,
0
,
0
,
0
,
0
}
};
extern
"C"
{
sal_Bool
SAL_CALL
component_canUnload
(
TimeValue
*
pTime
)
{
return
g_moduleCount
.
canUnload
(
&
g_moduleCount
,
pTime
);
}
//==================================================================================================
void
SAL_CALL
component_getImplementationEnvironment
(
const
sal_Char
**
ppEnvTypeName
,
uno_Environment
**
ppEnv
)
...
...
@@ -439,50 +490,12 @@ void SAL_CALL component_getImplementationEnvironment(
sal_Bool
SAL_CALL
component_writeInfo
(
void
*
pServiceManager
,
void
*
pRegistryKey
)
{
if
(
pRegistryKey
)
{
try
{
Reference
<
XRegistryKey
>
xNewKey
(
reinterpret_cast
<
XRegistryKey
*
>
(
pRegistryKey
)
->
createKey
(
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
"/"
IMPLNAME
"/UNO/SERVICES"
)
)
)
);
const
Sequence
<
OUString
>
&
rSNL
=
stoc_corefl
::
getSupportedServiceNames
();
const
OUString
*
pArray
=
rSNL
.
getConstArray
();
for
(
sal_Int32
nPos
=
rSNL
.
getLength
();
nPos
--
;
)
xNewKey
->
createKey
(
pArray
[
nPos
]
);
return
sal_True
;
}
catch
(
InvalidRegistryException
&
)
{
OSL_ENSURE
(
sal_False
,
"### InvalidRegistryException!"
);
}
}
return
sal_False
;
return
component_writeInfoHelper
(
pServiceManager
,
pRegistryKey
,
g_entries
);
}
//==================================================================================================
void
*
SAL_CALL
component_getFactory
(
const
sal_Char
*
pImplName
,
void
*
pServiceManager
,
void
*
pRegistryKey
)
{
void
*
pRet
=
0
;
if
(
pServiceManager
&&
rtl_str_compare
(
pImplName
,
IMPLNAME
)
==
0
)
{
Reference
<
XSingleServiceFactory
>
xFactory
(
createSingleComponentFactory
(
stoc_corefl
::
IdlReflectionServiceImpl_create
,
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
IMPLNAME
)
),
stoc_corefl
::
getSupportedServiceNames
()
),
UNO_QUERY
);
if
(
xFactory
.
is
())
{
xFactory
->
acquire
();
pRet
=
xFactory
.
get
();
}
}
return
pRet
;
return
component_getFactoryHelper
(
pImplName
,
pServiceManager
,
pRegistryKey
,
g_entries
);
}
}
stoc/source/corereflection/makefile.mk
Dosyayı görüntüle @
fcd484d1
...
...
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.
6
$
# $Revision: 1.
7
$
#
# last change: $Author:
pluby $ $Date: 2001-03-02 07:18:06
$
# last change: $Author:
jbu $ $Date: 2001-06-22 15:41:59
$
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
...
...
@@ -85,7 +85,7 @@ SLOFILES= \
$(SLO)$/
crenum.obj
SHL1TARGET
=
$(TARGET)
SHL1VERSIONMAP
=
$(TARGET)
.map
SHL1STDLIBS
=
\
$(CPPULIB)
\
$(CPPUHELPERLIB)
\
...
...
@@ -97,7 +97,6 @@ SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF
=
$(MISC)$/$(SHL1TARGET)
.def
DEF1NAME
=
$(SHL1TARGET)
DEF1EXPORTFILE
=
exports.dxp
# --- Targets ------------------------------------------------------
...
...
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