Kaydet (Commit) 424300b6 authored tarafından Ariel Constenla-Haile's avatar Ariel Constenla-Haile Kaydeden (comit) Stephan Bergmann

i121945 - WebDAV ucp: return StringPair instead of NamedValue

Make css::ucb::XWebDAVCommandEnvironment::getUserRequestHeaders() return
a sequence of css::beans::StringPair; this avoids all the any overhead,
and is much more simple and intuitive.

(cherry picked from commit 80199136)
Conflicts:
	extensions/source/update/feed/updatefeed.cxx
	offapi/type_reference/typelibrary_history.txt
	offapi/type_reference/types.rdb
	ucb/source/ucp/webdav/DAVResourceAccess.cxx
(Would be an incompatible API CHANGE if we had not unpublished
XWebDAVCommandEnvironment with 78cca630 "Revert
publishing of lots of UNO types.")

Change-Id: I1c5d0a0b225fe86aca6ba6d6c8903985005387c2
üst b2dfbdff
...@@ -173,7 +173,7 @@ public: ...@@ -173,7 +173,7 @@ public:
throw ( uno::RuntimeException ) { return uno::Reference< ucb::XProgressHandler >(); }; throw ( uno::RuntimeException ) { return uno::Reference< ucb::XProgressHandler >(); };
// XWebDAVCommandEnvironment // XWebDAVCommandEnvironment
virtual uno::Sequence< beans::NamedValue > SAL_CALL getUserRequestHeaders( virtual uno::Sequence< beans::StringPair > SAL_CALL getUserRequestHeaders(
const OUString&, const OUString& ) const OUString&, const OUString& )
throw ( uno::RuntimeException ) { return m_aRequestHeaderList; }; throw ( uno::RuntimeException ) { return m_aRequestHeaderList; };
...@@ -188,7 +188,7 @@ public: ...@@ -188,7 +188,7 @@ public:
protected: protected:
virtual ~UpdateInformationProvider(); virtual ~UpdateInformationProvider();
static uno::Any getConfigurationItem(uno::Reference<lang::XMultiServiceFactory> const & configurationProvider, OUString const & node, OUString const & item); static OUString getConfigurationItem(uno::Reference<lang::XMultiServiceFactory> const & configurationProvider, OUString const & node, OUString const & item);
private: private:
uno::Reference< io::XInputStream > load(const OUString& rURL); uno::Reference< io::XInputStream > load(const OUString& rURL);
...@@ -207,7 +207,7 @@ private: ...@@ -207,7 +207,7 @@ private:
const uno::Reference< xml::dom::XDocumentBuilder > m_xDocumentBuilder; const uno::Reference< xml::dom::XDocumentBuilder > m_xDocumentBuilder;
const uno::Reference< xml::xpath::XXPathAPI > m_xXPathAPI; const uno::Reference< xml::xpath::XXPathAPI > m_xXPathAPI;
uno::Sequence< beans::NamedValue > m_aRequestHeaderList; uno::Sequence< beans::StringPair > m_aRequestHeaderList;
uno::Reference< ucb::XCommandProcessor > m_xCommandProcessor; uno::Reference< ucb::XCommandProcessor > m_xCommandProcessor;
uno::Reference< task::XInteractionHandler > m_xInteractionHandler; uno::Reference< task::XInteractionHandler > m_xInteractionHandler;
...@@ -327,24 +327,22 @@ UpdateInformationProvider::UpdateInformationProvider( ...@@ -327,24 +327,22 @@ UpdateInformationProvider::UpdateInformationProvider(
com::sun::star::configuration::theDefaultProvider::get(xContext)); com::sun::star::configuration::theDefaultProvider::get(xContext));
OUStringBuffer buf; OUStringBuffer buf;
OUString name; buf.append(
getConfigurationItem( getConfigurationItem(
xConfigurationProvider, xConfigurationProvider,
"org.openoffice.Setup/Product", "org.openoffice.Setup/Product",
"ooName") >>= name; "ooName"));
buf.append(name);
buf.append(sal_Unicode(' ')); buf.append(sal_Unicode(' '));
OUString version; buf.append(
getConfigurationItem( getConfigurationItem(
xConfigurationProvider, xConfigurationProvider,
"org.openoffice.Setup/Product", "org.openoffice.Setup/Product",
"ooSetupVersion") >>= version; "ooSetupVersion"));
buf.append(version); OUString extension(
OUString extension; getConfigurationItem(
getConfigurationItem( xConfigurationProvider,
xConfigurationProvider, "org.openoffice.Setup/Product",
"org.openoffice.Setup/Product", "ooSetupExtension"));
"ooSetupExtension") >>= extension;
if (!extension.isEmpty()) { if (!extension.isEmpty()) {
buf.append(extension); buf.append(extension);
} }
...@@ -366,13 +364,13 @@ UpdateInformationProvider::UpdateInformationProvider( ...@@ -366,13 +364,13 @@ UpdateInformationProvider::UpdateInformationProvider(
SAL_INFO("extensions.update", "UpdateUserAgent: " << aUserAgent); SAL_INFO("extensions.update", "UpdateUserAgent: " << aUserAgent);
m_aRequestHeaderList[0].Name = "Accept-Language"; m_aRequestHeaderList[0].First = "Accept-Language";
m_aRequestHeaderList[0].Value = getConfigurationItem( xConfigurationProvider, "org.openoffice.Setup/L10N", "ooLocale" ); m_aRequestHeaderList[0].Second = getConfigurationItem( xConfigurationProvider, "org.openoffice.Setup/L10N", "ooLocale" );
if( !aUserAgent.isEmpty() ) if( !aUserAgent.isEmpty() )
{ {
m_aRequestHeaderList.realloc(2); m_aRequestHeaderList.realloc(2);
m_aRequestHeaderList[1].Name = "User-Agent"; m_aRequestHeaderList[1].First = "User-Agent";
m_aRequestHeaderList[1].Value = uno::makeAny(aUserAgent); m_aRequestHeaderList[1].Second = aUserAgent;
} }
} }
...@@ -401,10 +399,11 @@ UpdateInformationProvider::~UpdateInformationProvider() ...@@ -401,10 +399,11 @@ UpdateInformationProvider::~UpdateInformationProvider()
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
uno::Any OUString
UpdateInformationProvider::getConfigurationItem(uno::Reference<lang::XMultiServiceFactory> const & configurationProvider, OUString const & node, OUString const & item) UpdateInformationProvider::getConfigurationItem(uno::Reference<lang::XMultiServiceFactory> const & configurationProvider, OUString const & node, OUString const & item)
{ {
beans::NamedValue aProperty; rtl::OUString sRet;
beans::PropertyValue aProperty;
aProperty.Name = "nodepath"; aProperty.Name = "nodepath";
aProperty.Value = uno::makeAny(node); aProperty.Value = uno::makeAny(node);
...@@ -417,7 +416,8 @@ UpdateInformationProvider::getConfigurationItem(uno::Reference<lang::XMultiServi ...@@ -417,7 +416,8 @@ UpdateInformationProvider::getConfigurationItem(uno::Reference<lang::XMultiServi
aArgumentList ), aArgumentList ),
uno::UNO_QUERY_THROW); uno::UNO_QUERY_THROW);
return xNameAccess->getByName(item); xNameAccess->getByName(item) >>= sRet;
return sRet;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#define __com_sun_star_ucb_XWebDAVCommandEnvironment_idl__ #define __com_sun_star_ucb_XWebDAVCommandEnvironment_idl__
#include <com/sun/star/ucb/XCommandEnvironment.idl> #include <com/sun/star/ucb/XCommandEnvironment.idl>
#include <com/sun/star/beans/NamedValue.idl> #include <com/sun/star/beans/StringPair.idl>
module com { module sun { module star { module ucb { module com { module sun { module star { module ucb {
...@@ -43,9 +43,8 @@ interface XWebDAVCommandEnvironment : XCommandEnvironment ...@@ -43,9 +43,8 @@ interface XWebDAVCommandEnvironment : XCommandEnvironment
@return @return
A sequence of header name, header value pairs. The header A sequence of header name, header value pairs. The header
names must be the plain names and contain no trailing ":". names must be the plain names and contain no trailing ":".
The header value must be an Any containing a string.
*/ */
sequence<com::sun::star::beans::NamedValue> getUserRequestHeaders( sequence<com::sun::star::beans::StringPair> getUserRequestHeaders(
[in] string aURI, [in] string aURI,
[in] string aMethod); [in] string aMethod);
}; };
......
...@@ -1119,24 +1119,14 @@ void DAVResourceAccess::getUserRequestHeaders( ...@@ -1119,24 +1119,14 @@ void DAVResourceAccess::getUserRequestHeaders(
if ( !xDAVEnv.is() ) if ( !xDAVEnv.is() )
return; return;
uno::Sequence< beans::NamedValue > aRequestHeaders uno::Sequence< beans::StringPair > aRequestHeaders
= xDAVEnv->getUserRequestHeaders( rURI, rMethod ); = xDAVEnv->getUserRequestHeaders( rURI, rMethod );
for ( sal_Int32 n = 0; n < aRequestHeaders.getLength(); ++n ) for ( sal_Int32 n = 0; n < aRequestHeaders.getLength(); ++n )
{ {
OUString aValue;
sal_Bool isString = aRequestHeaders[ n ].Value >>= aValue;
if ( !isString )
{
OSL_ENSURE( isString,
"DAVResourceAccess::getUserRequestHeaders :"
"Value is not a string! Ignoring..." );
continue;
}
rRequestHeaders.push_back( rRequestHeaders.push_back(
DAVRequestHeader( aRequestHeaders[ n ].Name, aValue ) ); DAVRequestHeader( aRequestHeaders[ n ].First,
aRequestHeaders[ n ].Second ) );
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment