summaryrefslogtreecommitdiff
path: root/configmgr/source/localbe/localmultistratum.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'configmgr/source/localbe/localmultistratum.cxx')
-rw-r--r--configmgr/source/localbe/localmultistratum.cxx247
1 files changed, 0 insertions, 247 deletions
diff --git a/configmgr/source/localbe/localmultistratum.cxx b/configmgr/source/localbe/localmultistratum.cxx
deleted file mode 100644
index 6309921f3d85..000000000000
--- a/configmgr/source/localbe/localmultistratum.cxx
+++ /dev/null
@@ -1,247 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_configmgr.hxx"
-
-#include "localmultistratum.hxx"
-#include "localfilehelper.hxx"
-#include "filehelper.hxx"
-
-#ifndef CONFIGMGR_API_FACTORY_HXX_
-#include "confapifactory.hxx"
-#endif // CONFIGMGR_API_FACTORY_HXX_
-#include "serviceinfohelper.hxx"
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/configuration/backend/InsufficientAccessRightsException.hpp>
-#include <osl/file.hxx>
-
-namespace configmgr { namespace localbe {
-
-//==============================================================================
-
-static inline
-rtl::OUString const & impl_getLayerDataDirectory(rtl::OUString const & aLayerBaseUrl)
-{ return aLayerBaseUrl; }
-//------------------------------------------------------------------------------
-static //inline
-rtl::OUString makeLayerId(rtl::OUString const & aComponent,rtl::OUString const & aParticleFile)
-{
- OSL_ASSERT(aParticleFile.endsWithIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(kLocalDataSuffix)));
- const sal_Int32 kExtLength = RTL_CONSTASCII_LENGTH(kLocalDataSuffix);
- rtl::OUString const aParticleName = aParticleFile.copy(0,aParticleFile.getLength() - kExtLength);
-
- rtl::OUStringBuffer aLayerId(aComponent);
- aLayerId.append(k_cLayerIdSeparator);
- aLayerId.append(aParticleName);
-
- return aLayerId.makeStringAndClear();
-}
-
-LocalMultiStratum::LocalMultiStratum(const uno::Reference<uno::XComponentContext>& xContext)
-: cppu::ImplInheritanceHelper1< LocalStratumBase, backend::XMultiLayerStratum >(xContext)
-{
-}
-//------------------------------------------------------------------------------
-
-LocalMultiStratum::~LocalMultiStratum() {}
-
-//------------------------------------------------------------------------------
-uno::Sequence< rtl::OUString > SAL_CALL
- LocalMultiStratum::listLayerIds( const rtl::OUString& aComponent,
- const rtl::OUString& /*aEntity*/ )
- throw (backend::BackendAccessException, lang::IllegalArgumentException, uno::RuntimeException)
-{
- rtl::OUString const aLayerUrl = impl_getLayerDataDirectory(getBaseUrl());
- rtl::OUString const aComponentUrl = aLayerUrl + componentToPath(aComponent);
-
- const sal_uInt32 k_STATUS_FIELDS = FileStatusMask_Type | FileStatusMask_FileName;
- osl::Directory aComponentDirectory(aComponentUrl);
- osl::DirectoryItem aItem;
- std::vector< rtl::OUString > aResult;
-
- osl::Directory::RC errcode = aComponentDirectory.open();
- switch (errcode)
- {
- case osl::Directory::E_NOENT:
- return uno::Sequence< rtl::OUString >();
-
- case osl::Directory::E_None:
- while (osl::Directory::E_None == (errcode=aComponentDirectory.getNextItem(aItem)))
- {
- osl::FileStatus aItemDescriptor( k_STATUS_FIELDS );
- errcode = aItem.getFileStatus(aItemDescriptor);
-
- if ( errcode != osl::DirectoryItem::E_None )
- {
- OSL_ASSERT(errcode != osl::Directory::E_NOENT); // unexpected failure for getFileStatus for existing file
- if (errcode == osl::Directory::E_NOENT) continue;
-
- OSL_TRACE("Reading Component Directory - Error (%u) getting status of directory item.\n", unsigned(errcode));
- break;
- }
-
- OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_Type), "Could not get type of directory item");
- if (aItemDescriptor.getFileType() != osl::FileStatus::Regular)
- continue;
-
- OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_FileName), "Could not get name of component found");
- rtl::OUString const aFileName = aItemDescriptor.getFileName();
- if (!aFileName.endsWithIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(kLocalDataSuffix)))
- continue;
-
- aResult.push_back( makeLayerId(aComponent,aFileName) );
- }
- OSL_ASSERT(errcode != osl::Directory::E_None); // Loop postcond
-
- // joint error handling with open failure
- if (errcode != osl::Directory::E_NOENT) // normal loop termination
- {
- default: // if open() truly failed we also go here
- rtl::OUStringBuffer errbuf;
- errbuf.appendAscii("LocalMultiStratum::listLayerIds: ");
- errbuf.appendAscii("Error scanning directory ").append(aComponentUrl)
- .appendAscii(" for particle files. ");
- errbuf.appendAscii("Error: ").append(FileHelper::createOSLErrorString(errcode));
- rtl::OUString const errmsg = errbuf.makeStringAndClear();
- throw backend::BackendAccessException(errmsg,*this,uno::Any());
- }
-
- return aResult.empty()
- ? uno::Sequence< rtl::OUString >()
- : uno::Sequence< rtl::OUString >(
- &aResult.front(), static_cast<sal_Int32>(aResult.size()));
- }
-}
-
-//------------------------------------------------------------------------------
-rtl::OUString SAL_CALL
- LocalMultiStratum::getUpdateLayerId( const rtl::OUString& aComponent,
- const rtl::OUString& /*aEntity*/ )
- throw (backend::BackendAccessException, lang::NoSupportException,
- lang::IllegalArgumentException, uno::RuntimeException)
-{
- failReadonly();
- return aComponent;
-}
-
-//------------------------------------------------------------------------------
-uno::Reference< backend::XLayer > SAL_CALL
- LocalMultiStratum::getLayer( const rtl::OUString& aLayerId,
- const rtl::OUString& aTimestamp )
- throw (backend::BackendAccessException, lang::IllegalArgumentException,
- uno::RuntimeException)
-{
- return LocalStratumBase::getLayer(aLayerId,aTimestamp);
-}
-//------------------------------------------------------------------------------
-uno::Sequence< uno::Reference< backend::XLayer > > SAL_CALL
- LocalMultiStratum::getLayers( const uno::Sequence< rtl::OUString >& aLayerIds,
- const rtl::OUString& aTimestamp )
- throw (backend::BackendAccessException, lang::IllegalArgumentException,
- uno::RuntimeException)
-{
- sal_Int32 const nLayers = aLayerIds.getLength();
- uno::Sequence< uno::Reference< backend::XLayer > > aResult(nLayers);
- for (sal_Int32 ix=0; ix<nLayers; ++ix)
- {
- aResult[ix] = LocalStratumBase::getLayer(aLayerIds[ix],aTimestamp);
- }
- return aResult;
-}
-
-//------------------------------------------------------------------------------
-uno::Sequence< uno::Reference< backend::XLayer > > SAL_CALL
- LocalMultiStratum::getMultipleLayers( const uno::Sequence< rtl::OUString >& aLayerIds,
- const uno::Sequence< rtl::OUString >& aTimestamps )
- throw (backend::BackendAccessException, lang::IllegalArgumentException,
- uno::RuntimeException)
-{
- if (aLayerIds.getLength() != aTimestamps.getLength()) {
- throw lang::IllegalArgumentException(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "LocalStratum::getMultipleLayers(): Timestamp count does not match layer count")),
- *this, 0) ;
- }
- sal_Int32 const nLayers = aLayerIds.getLength();
- uno::Sequence< uno::Reference< backend::XLayer > > aResult(nLayers);
- for (sal_Int32 ix=0; ix<nLayers; ++ix)
- {
- aResult[ix] = LocalStratumBase::getLayer(aLayerIds[ix],aTimestamps[ix]);
- }
- return aResult;
-}
-
-//------------------------------------------------------------------------------
-uno::Reference< backend::XUpdatableLayer > SAL_CALL
- LocalMultiStratum::getUpdatableLayer( const rtl::OUString& /*aLayerId*/ )
- throw (backend::BackendAccessException, lang::IllegalArgumentException,
- lang::NoSupportException, uno::RuntimeException)
-{
- failReadonly();
- return 0;
-}
-//------------------------------------------------------------------------------
-
-void LocalMultiStratum::getLayerDirectories(rtl::OUString& aLayerUrl,
- rtl::OUString& aSubLayerUrl) const
-{
- aLayerUrl = impl_getLayerDataDirectory(getBaseUrl());
- aSubLayerUrl = rtl::OUString();
-}
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-
-static const sal_Char * const kMultiStratumImplementation =
- "com.sun.star.comp.configuration.backend.LocalMultiStratum" ;
-static const sal_Char * const kBackendService =
- "com.sun.star.configuration.backend.MultiStratum" ;
-static const sal_Char * const kLocalService =
- "com.sun.star.configuration.backend.LocalMultiStratum" ;
-
-static sal_Char const * kServiceNames [] = { kLocalService, 0, kBackendService, 0 } ;
-static const ServiceImplementationInfo kMultiStratumServiceInfo = { kMultiStratumImplementation , kServiceNames, kServiceNames + 2 } ;
-
-const ServiceRegistrationInfo *getLocalMultiStratumServiceInfo()
-{ return getRegistrationInfo(&kMultiStratumServiceInfo) ; }
-
-uno::Reference<uno::XInterface> SAL_CALL
-instantiateLocalMultiStratum(const uno::Reference< uno::XComponentContext >& xContext) {
- return *new LocalMultiStratum(xContext) ;
-}
-
-//------------------------------------------------------------------------------
-
-const ServiceImplementationInfo * LocalMultiStratum::getServiceInfoData() const
-{
- return &kMultiStratumServiceInfo;
-}
-//------------------------------------------------------------------------------
-// ---------------------------------------------------------------------------------------
-
-} } // configmgr.localsinglestratum