26 #include <strings.hrc>
27 #include <com/sun/star/registry/XSimpleRegistry.hpp>
28 #include <com/sun/star/lang/XInitialization.hpp>
29 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
30 #include <com/sun/star/uno/Exception.hpp>
31 #include <com/sun/star/ucb/UniversalContentBroker.hpp>
33 #include <officecfg/Setup.hxx>
34 #include <osl/file.hxx>
35 #include <rtl/bootstrap.hxx>
66 Reference<XMultiServiceFactory>
sm;
68 OUString aUnoRc(
"file:///assets/program/unorc" );
73 OUString
uri(
"$APP_DATA_DIR" );
74 rtl_bootstrap_expandMacros( &uri.pData );
75 OUString aUnoRc(
"file://" + uri +
"/unorc");
103 officecfg::Setup::Office::ooSetupConnectionURL::get());
104 if (!conDcpCfg.isEmpty()) {
108 std::vector< OUString >
const & conDcp = rCmdLine.
GetAccept();
109 for (
auto const& elem : conDcp)
120 typedef std::map< OUString, css::uno::Reference<css::lang::XInitialization> >
AcceptorMap;
124 AcceptorMap& acceptorMap()
126 static AcceptorMap SINGLETON;
129 OUString& CurrentTempURL()
131 static OUString SINGLETON;
141 AcceptorMap &rMap = acceptorMap();
142 AcceptorMap::const_iterator pIter = rMap.find(aAcceptString);
143 if (pIter != rMap.end() )
146 Sequence< Any >
aSeq{
Any(aAcceptString),
Any(bAccept) };
148 Reference<XInitialization> rAcceptor(
149 xContext->getServiceManager()->createInstanceWithContext(
"com.sun.star.office.Acceptor", xContext),
151 if ( rAcceptor.is() )
155 rAcceptor->initialize(
aSeq );
156 rMap.emplace(aAcceptString, rAcceptor);
158 catch (
const css::uno::Exception&)
168 SAL_WARN(
"desktop.app",
"Acceptor already exists.");
180 void operator() (
const AcceptorMap::value_type& val) {
181 if (val.second.is()) {
182 val.second->initialize(
m_aSeq);
198 AcceptorMap &rMap = acceptorMap();
199 std::for_each(rMap.begin(), rMap.end(), enable());
206 AcceptorMap &rMap = acceptorMap();
207 if (aAcceptString ==
"all") {
212 AcceptorMap::const_iterator pIter = rMap.find(aAcceptString);
213 if (pIter != rMap.end() ) {
216 rMap.erase(aAcceptString);
218 SAL_WARN(
"desktop.app",
"Found no acceptor to remove");
227 acceptorMap().clear();
232 OUString aTempBaseURL;
242 OUString aMsg =
DpResId(STR_BOOTSTRAP_ERR_NO_PATHSET_SERVICE);
243 e.Message = aMsg + e.Message;
249 if ( aTempPath.isEmpty()
250 && ::osl::File::getTempDirURL( aTempBaseURL ) == osl::FileBase::E_None )
257 if (osl::FileBase::getFileURLFromSystemPath( aTempPath, aRet )
258 != osl::FileBase::E_None)
262 CurrentTempURL() = aRet;
268 OUString &rCurrentTempURL = CurrentTempURL();
269 if ( !rCurrentTempURL.isEmpty() )
271 ::utl::UCBContentHelper::Kill( rCurrentTempURL );
std::map< OUString, css::uno::Reference< css::lang::XInitialization > > AcceptorMap
static void destroyAcceptor(const OUString &aDescription)
const OUString & GetTempPath() const
static void CreateTemporaryDirectory()
css::uno::Reference< css::deployment::XPackageRegistry > create(css::uno::Reference< css::deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, css::uno::Reference< css::uno::XComponentContext > const &xComponentContext)
static void InitApplicationServiceManager()
static void DeregisterServices()
#define TOOLS_WARN_EXCEPTION(area, stream)
static void RemoveTemporaryDirectory()
static void EnableEventTestingMode()
CPPUHELPER_DLLPUBLIC css::uno::Reference< css::uno::XComponentContext > SAL_CALL defaultBootstrap_InitialComponentContext()
static CommandLineArgs & GetCommandLineArgs()
bool IsEventTesting() const
static void createAcceptor(const OUString &aDescription)
IMPL_STATIC_LINK_NOARG(Desktop, AsyncInitFirstRun, Timer *, void)
void setProcessServiceFactory(const Reference< XMultiServiceFactory > &xSMgr)
static uno::Reference< css::uno::XComponentContext > xContext
static OUString SetTempNameBaseDirectory(const OUString &rBaseName)
bool m_bServicesRegistered
std::vector< OUString > const & GetAccept() const
Reference< XComponentContext > getProcessComponentContext()
Sequence< sal_Int8 > aSeq
static void EnableHeadlessMode(bool dialogsAreFatal)
#define SAL_WARN(area, stream)
static void configureUcb()
OUString DpResId(TranslateId aId)
exports com.sun.star. uri