summaryrefslogtreecommitdiff
path: root/ucbhelper
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-11-05 18:04:43 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-11-05 18:05:00 +0100
commit14ee630a1740543a1e03cb23740d6db0adfb0f8f (patch)
tree56679e646c27a8a6406a2eff8dc7831650eceac3 /ucbhelper
parent6eec9d651d875d64d11b63c2c2070475a17f8ce1 (diff)
fdo#46808: Work around cyclic comphelper use in ucbhelper
...by duplicating getComponentContext for now. Change-Id: Idad067b52e5ad9ed8a4f6676bc17db6c14807d56
Diffstat (limited to 'ucbhelper')
-rw-r--r--ucbhelper/Library_ucbhelper.mk2
-rw-r--r--ucbhelper/Package_inc.mk1
-rw-r--r--ucbhelper/inc/ucbhelper/getcomponentcontext.hxx47
-rw-r--r--ucbhelper/inc/ucbhelper/macros.hxx3
-rw-r--r--ucbhelper/source/provider/getcomponentcontext.cxx41
-rw-r--r--ucbhelper/source/provider/resultset.cxx4
6 files changed, 94 insertions, 4 deletions
diff --git a/ucbhelper/Library_ucbhelper.mk b/ucbhelper/Library_ucbhelper.mk
index ff92193a5d42..7197485a4ea4 100644
--- a/ucbhelper/Library_ucbhelper.mk
+++ b/ucbhelper/Library_ucbhelper.mk
@@ -14,7 +14,6 @@ $(eval $(call gb_Library_use_package,ucbhelper,ucbhelper_inc))
$(eval $(call gb_Library_use_sdk_api,ucbhelper))
$(eval $(call gb_Library_use_libraries,ucbhelper,\
- comphelper \
cppu \
cppuhelper \
sal \
@@ -39,6 +38,7 @@ $(eval $(call gb_Library_add_exception_objects,ucbhelper,\
ucbhelper/source/provider/contentidentifier \
ucbhelper/source/provider/contentinfo \
ucbhelper/source/provider/fd_inputstream \
+ ucbhelper/source/provider/getcomponentcontext \
ucbhelper/source/provider/interactionrequest \
ucbhelper/source/provider/propertyvalueset \
ucbhelper/source/provider/providerhelper \
diff --git a/ucbhelper/Package_inc.mk b/ucbhelper/Package_inc.mk
index 2569a0487cbd..ba3830e41408 100644
--- a/ucbhelper/Package_inc.mk
+++ b/ucbhelper/Package_inc.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/contentidentifier.
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/contentinfo.hxx,ucbhelper/contentinfo.hxx))
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/fd_inputstream.hxx,ucbhelper/fd_inputstream.hxx))
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/fileidentifierconverter.hxx,ucbhelper/fileidentifierconverter.hxx))
+$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/getcomponentcontext.hxx,ucbhelper/getcomponentcontext.hxx))
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/interactionrequest.hxx,ucbhelper/interactionrequest.hxx))
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/interceptedinteraction.hxx,ucbhelper/interceptedinteraction.hxx))
$(eval $(call gb_Package_add_file,ucbhelper_inc,inc/ucbhelper/macros.hxx,ucbhelper/macros.hxx))
diff --git a/ucbhelper/inc/ucbhelper/getcomponentcontext.hxx b/ucbhelper/inc/ucbhelper/getcomponentcontext.hxx
new file mode 100644
index 000000000000..5d25e6cf8e9b
--- /dev/null
+++ b/ucbhelper/inc/ucbhelper/getcomponentcontext.hxx
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+#ifndef INCLUDED_UCBHELPER_GETCOMPONENTCONTEXT_HXX
+#define INCLUDED_UCBHELPER_GETCOMPONENTCONTEXT_HXX
+
+#include "sal/config.h"
+
+#include "com/sun/star/uno/Reference.hxx"
+#include "ucbhelper/ucbhelperdllapi.h"
+
+namespace com { namespace sun { namespace star {
+ namespace lang { class XMultiServiceFactory; }
+ namespace uno { class XComponentContext; }
+} } }
+
+namespace ucbhelper {
+
+//TODO: a duplicate of comphelper::getComponentContext
+// (comphelper/processfactory.hxx)
+UCBHELPER_DLLPUBLIC
+com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
+getComponentContext(
+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
+ const & factory);
+
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/ucbhelper/inc/ucbhelper/macros.hxx b/ucbhelper/inc/ucbhelper/macros.hxx
index 93f562f7fabb..386f8f1909ba 100644
--- a/ucbhelper/inc/ucbhelper/macros.hxx
+++ b/ucbhelper/inc/ucbhelper/macros.hxx
@@ -27,6 +27,7 @@
#include <cppuhelper/typeprovider.hxx>
#include "osl/mutex.hxx"
+#include "ucbhelper/getcomponentcontext.hxx"
//=========================================================================
@@ -664,7 +665,7 @@ Class##_CreateInstance( const com::sun::star::uno::Reference< \
throw( com::sun::star::uno::Exception ) \
{ \
com::sun::star::lang::XServiceInfo* pX = \
- (com::sun::star::lang::XServiceInfo*)new Class( comphelper::getComponentContext(rSMgr) ); \
+ (com::sun::star::lang::XServiceInfo*)new Class( ucbhelper::getComponentContext(rSMgr) ); \
return com::sun::star::uno::Reference< \
com::sun::star::uno::XInterface >::query( pX ); \
}
diff --git a/ucbhelper/source/provider/getcomponentcontext.cxx b/ucbhelper/source/provider/getcomponentcontext.cxx
new file mode 100644
index 000000000000..41f3923988e8
--- /dev/null
+++ b/ucbhelper/source/provider/getcomponentcontext.cxx
@@ -0,0 +1,41 @@
+/* -*- 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 "sal/config.h"
+
+#include "com/sun/star/beans/XPropertySet.hpp"
+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "ucbhelper/getcomponentcontext.hxx"
+
+namespace { namespace css = com::sun::star; }
+
+css::uno::Reference< css::uno::XComponentContext >
+ucbhelper::getComponentContext(
+ css::uno::Reference< css::lang::XMultiServiceFactory > const & factory)
+{
+ return css::uno::Reference< css::uno::XComponentContext >(
+ css::uno::Reference< css::beans::XPropertySet >(
+ factory, css::uno::UNO_QUERY_THROW)->getPropertyValue(
+ "DefaultContext"),
+ css::uno::UNO_QUERY_THROW);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/ucbhelper/source/provider/resultset.cxx b/ucbhelper/source/provider/resultset.cxx
index 281434f08edc..b17494e5316e 100644
--- a/ucbhelper/source/provider/resultset.cxx
+++ b/ucbhelper/source/provider/resultset.cxx
@@ -23,9 +23,9 @@
**************************************************************************
*************************************************************************/
-#include <comphelper/processfactory.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <ucbhelper/getcomponentcontext.hxx>
#include <ucbhelper/resultset.hxx>
#include <ucbhelper/resultsetmetadata.hxx>
@@ -372,7 +372,7 @@ uno::Reference< sdbc::XResultSetMetaData > SAL_CALL ResultSet::getMetaData()
osl::MutexGuard aGuard( m_pImpl->m_aMutex );
if ( !m_pImpl->m_xMetaData.is() )
- m_pImpl->m_xMetaData = new ResultSetMetaData( comphelper::getComponentContext(m_pImpl->m_xSMgr),
+ m_pImpl->m_xMetaData = new ResultSetMetaData( ucbhelper::getComponentContext(m_pImpl->m_xSMgr),
m_pImpl->m_aProperties );
return m_pImpl->m_xMetaData;