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
a7a9350a
Kaydet (Commit)
a7a9350a
authored
Ara 07, 2016
tarafından
Stephan Bergmann
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Remove dead example code
Change-Id: I126446de2aa4314fb53bc6942b55b151a65f2b84
üst
0816ec33
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
365 deletions
+0
-365
exports.dxp
remotebridges/examples/exports.dxp
+0
-2
makefile.mk
remotebridges/examples/makefile.mk
+0
-52
officeclient.cxx
remotebridges/examples/officeclient.cxx
+0
-311
No files found.
remotebridges/examples/exports.dxp
deleted
100644 → 0
Dosyayı görüntüle @
0816ec33
component_writeInfo
component_getFactory
remotebridges/examples/makefile.mk
deleted
100644 → 0
Dosyayı görüntüle @
0816ec33
#
# 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
=
remotebridges
TARGET
=
officeclientsample
ENABLE_EXCEPTIONS
=
TRUE
# --- Settings -----------------------------------------------------
.INCLUDE
:
settings.mk
# --- Files --------------------------------------------------------
SLOFILES
=
$(SLO)$/
officeclient.obj
SHL1TARGET
=
officeclientsample
SHL1STDLIBS
=
\
$(SALLIB)
\
$(CPPULIB)
\
$(CPPUHELPERLIB)
SHL1DEPN
=
SHL1IMPLIB
=
i
$(SHL1TARGET)
SHL1LIBS
=
$(SLB)$/$(SHL1TARGET)
.lib
SHL1DEF
=
$(MISC)$/$(SHL1TARGET)
.def
DEF1NAME
=
$(SHL1TARGET)
DEF1EXPORTFILE
=
exports.dxp
# --- Targets ------------------------------------------------------
.INCLUDE
:
target.mk
remotebridges/examples/officeclient.cxx
deleted
100644 → 0
Dosyayı görüntüle @
0816ec33
/* -*- 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 <osl/mutex.hxx>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/servicefactory.hxx>
#include <com/sun/star/uno/XNamingService.hpp>
#include <com/sun/star/registry/ImplementationRegistration.hpp>
#include <com/sun/star/connection/XConnector.hpp>
#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
#include <com/sun/star/lang/XMain.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/text/XTextDocument.hpp>
#include <cppuhelper/implbase1.hxx>
using
namespace
::
cppu
;
using
namespace
::
osl
;
using
namespace
::
com
::
sun
::
star
::
uno
;
using
namespace
::
com
::
sun
::
star
::
lang
;
using
namespace
::
com
::
sun
::
star
::
registry
;
using
namespace
::
com
::
sun
::
star
::
connection
;
using
namespace
::
com
::
sun
::
star
::
container
;
using
namespace
::
com
::
sun
::
star
::
bridge
;
using
namespace
::
com
::
sun
::
star
::
text
;
using
namespace
::
com
::
sun
::
star
::
frame
;
namespace
remotebridges_officeclient
{
class
OfficeClientMain
:
public
WeakImplHelper1
<
XMain
>
{
public
:
explicit
OfficeClientMain
(
const
Reference
<
XMultiServiceFactory
>
&
r
)
:
m_xSMgr
(
r
)
{}
public
:
// Methods
virtual
sal_Int32
SAL_CALL
run
(
const
Sequence
<
OUString
>&
aArguments
)
throw
(
RuntimeException
);
private
:
// helper methods
void
testWriter
(
const
Reference
<
XComponent
>
&
rComponent
);
void
registerServices
();
Reference
<
XMultiServiceFactory
>
m_xSMgr
;
};
void
OfficeClientMain
::
testWriter
(
const
Reference
<
XComponent
>
&
rComponent
)
{
printf
(
"pasting some text into the writer document
\n
"
);
Reference
<
XTextDocument
>
rTextDoc
(
rComponent
,
UNO_QUERY
);
Reference
<
XText
>
rText
=
rTextDoc
->
getText
();
Reference
<
XTextCursor
>
rCursor
=
rText
->
createTextCursor
();
Reference
<
XTextRange
>
rRange
(
rCursor
,
UNO_QUERY
);
rText
->
insertString
(
rRange
,
OUString
(
"This text has been posted by the officeclient component"
),
sal_False
);
}
/********************
* does necessary service registration ( this could be done also by a setup tool )
*********************/
void
OfficeClientMain
::
registerServices
(
)
{
// register services.
// Note : this needs to be done only once and is in general done by the setup
Reference
<
XImplementationRegistration
>
rImplementationRegistration
(
ImplementationRegistration
::
create
(
m_xSMgr
)
);
if
(
!
rImplementationRegistration
.
is
()
)
{
printf
(
"Couldn't create registration component
\n
"
);
exit
(
1
);
}
OUString
aSharedLibrary
[
4
];
aSharedLibrary
[
0
]
=
OUString
(
"connector.uno"
SAL_DLLEXTENSION
);
aSharedLibrary
[
1
]
=
OUString
(
"remotebridge.uno"
SAL_DLLEXTENSION
);
aSharedLibrary
[
2
]
=
OUString
(
"bridgefac.uno"
SAL_DLLEXTENSION
);
aSharedLibrary
[
3
]
=
OUString
(
"uuresolver.uno"
SAL_DLLEXTENSION
);
sal_Int32
i
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
// build the system specific library name
OUString
aDllName
=
aSharedLibrary
[
i
];
try
{
// register the needed services in the servicemanager
rImplementationRegistration
->
registerImplementation
(
OUString
(
"com.sun.star.loader.SharedLibrary"
),
aDllName
,
Reference
<
XSimpleRegistry
>
()
);
}
catch
(
Exception
&
)
{
printf
(
"couldn't register dll %s
\n
"
,
OUStringToOString
(
aDllName
,
RTL_TEXTENCODING_ASCII_US
).
getStr
()
);
}
}
}
sal_Int32
OfficeClientMain
::
run
(
const
Sequence
<
OUString
>
&
aArguments
)
throw
(
RuntimeException
)
{
printf
(
"Connecting ....
\n
"
);
if
(
aArguments
.
getLength
()
==
1
)
{
try
{
registerServices
();
Reference
<
XInterface
>
r
=
m_xSMgr
->
createInstance
(
"com.sun.star.bridge.UnoUrlResolver"
);
Reference
<
XUnoUrlResolver
>
rResolver
(
r
,
UNO_QUERY
);
r
=
rResolver
->
resolve
(
aArguments
.
getConstArray
()[
0
]
);
Reference
<
XNamingService
>
rNamingService
(
r
,
UNO_QUERY
);
if
(
rNamingService
.
is
()
)
{
printf
(
"got the remote NamingService
\n
"
);
r
=
rNamingService
->
getRegisteredObject
(
OUString
(
"StarOffice.ServiceManager"
));
Reference
<
XMultiServiceFactory
>
rRemoteSMgr
(
r
,
UNO_QUERY
);
Reference
<
XDesktop2
>
rLoader
=
Desktop
::
create
(
comphelper
::
getComponentContext
(
r
)
);
sal_Char
*
urls
[]
=
{
"private:factory/swriter"
,
"private:factory/sdraw"
,
"private:factory/simpress"
,
"private:factory/scalc"
};
sal_Char
*
docu
[]
=
{
"a new writer document ...
\n
"
,
"a new draw document ...
\n
"
,
"a new schedule document ...
\n
"
,
"a new calc document ...
\n
"
};
sal_Int32
i
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
printf
(
"press any key to open %s
\n
"
,
docu
[
i
]
);
getchar
();
Reference
<
XComponent
>
rComponent
=
rLoader
->
loadComponentFromURL
(
OUString
::
createFromAscii
(
urls
[
i
]
)
,
OUString
(
"_blank"
),
0
,
Sequence
<
css
::
beans
::
PropertyValue
>
()
);
if
(
0
==
i
)
{
testWriter
(
rComponent
);
}
printf
(
"press any key to close the document
\n
"
);
getchar
();
rComponent
->
dispose
();
}
}
}
catch
(
const
ConnectionSetupException
&
e
)
{
OString
o
=
OUStringToOString
(
e
.
Message
,
RTL_TEXTENCODING_ASCII_US
);
printf
(
"%s
\n
"
,
o
.
pData
->
buffer
);
printf
(
"couldn't access local resource ( possible security resons )
\n
"
);
}
catch
(
const
NoConnectException
&
e
)
{
OString
o
=
OUStringToOString
(
e
.
Message
,
RTL_TEXTENCODING_ASCII_US
);
printf
(
"%s
\n
"
,
o
.
pData
->
buffer
);
printf
(
"no server listening on the resource
\n
"
);
}
catch
(
const
IllegalArgumentException
&
e
)
{
OString
o
=
OUStringToOString
(
e
.
Message
,
RTL_TEXTENCODING_ASCII_US
);
printf
(
"%s
\n
"
,
o
.
pData
->
buffer
);
printf
(
"uno url invalid
\n
"
);
}
catch
(
const
RuntimeException
&
e
)
{
OString
o
=
OUStringToOString
(
e
.
Message
,
RTL_TEXTENCODING_ASCII_US
);
printf
(
"%s
\n
"
,
o
.
pData
->
buffer
);
printf
(
"a remote call was aborted
\n
"
);
}
}
else
{
printf
(
"usage: (uno officeclient-component --) uno-url
\n
"
"e.g.: uno:socket,host=localhost,port=2002;urp;StarOffice.NamingService
\n
"
);
return
1
;
}
return
0
;
}
Reference
<
XInterface
>
SAL_CALL
CreateInstance
(
const
Reference
<
XMultiServiceFactory
>
&
r
)
{
return
Reference
<
XInterface
>
(
(
OWeakObject
*
)
new
OfficeClientMain
(
r
)
);
}
Sequence
<
OUString
>
getSupportedServiceNames
()
{
static
Sequence
<
OUString
>
*
pNames
=
0
;
if
(
!
pNames
)
{
MutexGuard
guard
(
Mutex
::
getGlobalMutex
()
);
if
(
!
pNames
)
{
static
Sequence
<
OUString
>
seqNames
(
2
);
seqNames
[
0
]
=
"com.sun.star.bridge.example.OfficeClientExample"
;
pNames
=
&
seqNames
;
}
}
return
*
pNames
;
}
}
using
namespace
remotebridges_officeclient
;
#define IMPLEMENTATION_NAME "com.sun.star.comp.remotebridges.example.OfficeClientSample"
extern
"C"
{
sal_Bool
SAL_CALL
component_writeInfo
(
void
*
pServiceManager
,
void
*
pRegistryKey
)
{
if
(
pRegistryKey
)
{
try
{
Reference
<
XRegistryKey
>
xNewKey
(
reinterpret_cast
<
XRegistryKey
*
>
(
pRegistryKey
)
->
createKey
(
OUString
(
"/"
IMPLEMENTATION_NAME
"/UNO/SERVICES"
)
)
);
const
Sequence
<
OUString
>
&
rSNL
=
getSupportedServiceNames
();
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
(
pServiceManager
&&
rtl_str_compare
(
pImplName
,
IMPLEMENTATION_NAME
)
==
0
)
{
Reference
<
XSingleServiceFactory
>
xFactory
(
createSingleFactory
(
reinterpret_cast
<
XMultiServiceFactory
*
>
(
pServiceManager
),
OUString
::
createFromAscii
(
pImplName
),
CreateInstance
,
getSupportedServiceNames
()
)
);
if
(
xFactory
.
is
())
{
xFactory
->
acquire
();
pRet
=
xFactory
.
get
();
}
}
return
pRet
;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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