diff options
Diffstat (limited to 'comphelper/inc/comphelper/mediadescriptor.hxx')
-rw-r--r-- | comphelper/inc/comphelper/mediadescriptor.hxx | 342 |
1 files changed, 0 insertions, 342 deletions
diff --git a/comphelper/inc/comphelper/mediadescriptor.hxx b/comphelper/inc/comphelper/mediadescriptor.hxx deleted file mode 100644 index 5ab6a84885..0000000000 --- a/comphelper/inc/comphelper/mediadescriptor.hxx +++ /dev/null @@ -1,342 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * 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. - * - ************************************************************************/ - -#ifndef _COMPHELPER_MEDIADESCRIPTOR_HXX_ -#define _COMPHELPER_MEDIADESCRIPTOR_HXX_ - -//_______________________________________________ -// includes - -#include <comphelper/sequenceashashmap.hxx> -#include <rtl/ustring.hxx> -#include "comphelper/comphelperdllapi.h" - -namespace com { namespace sun { namespace star { namespace io { - class XInputStream; -} } } } - -//_______________________________________________ -// namespace - -namespace comphelper{ - -//_______________________________________________ -// definitions - -/** @short can be used to work with a <type scope="::com::sun::star::document">MediaDescriptor</type> - struct. - - @descr It wraps a ::boost::unordered_map around the Sequence< css::beans::PropertyValue >, which - represent the MediaDescriptor item. - Further this helper defines often used functions (as e.g. open of the required streams, - consistent checks etcpp.) and it defines all useable property names. - - @attention This class isnt threadsafe and must be guarded from outside! - */ -class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap -{ - //------------------------------------------- - // const - public: - - //--------------------------------------- - /** @short these methods can be used to get the different property names - as static const OUString values. - - @descr Because definition and declaration of static const class members - does not work as expected under windows (under unix it works as well) - these way must be used :-( - */ - static const ::rtl::OUString& PROP_ABORTED(); - static const ::rtl::OUString& PROP_ASTEMPLATE(); - static const ::rtl::OUString& PROP_CHARACTERSET(); - static const ::rtl::OUString& PROP_COMPONENTDATA(); - static const ::rtl::OUString& PROP_DEEPDETECTION(); - static const ::rtl::OUString& PROP_DETECTSERVICE(); - static const ::rtl::OUString& PROP_DOCUMENTSERVICE(); - static const ::rtl::OUString& PROP_ENCRYPTIONDATA(); - static const ::rtl::OUString& PROP_EXTENSION(); - static const ::rtl::OUString& PROP_FILENAME(); - static const ::rtl::OUString& PROP_FILTERNAME(); - static const ::rtl::OUString& PROP_FILTEROPTIONS(); - static const ::rtl::OUString& PROP_FORMAT(); - static const ::rtl::OUString& PROP_FRAME(); - static const ::rtl::OUString& PROP_FRAMENAME(); - static const ::rtl::OUString& PROP_HIDDEN(); - static const ::rtl::OUString& PROP_INPUTSTREAM(); - static const ::rtl::OUString& PROP_INTERACTIONHANDLER(); - static const ::rtl::OUString& PROP_JUMPMARK(); - static const ::rtl::OUString& PROP_MACROEXECUTIONMODE(); - static const ::rtl::OUString& PROP_MEDIATYPE(); - static const ::rtl::OUString& PROP_MINIMIZED(); - static const ::rtl::OUString& PROP_NOAUTOSAVE(); - static const ::rtl::OUString& PROP_OPENNEWVIEW(); - static const ::rtl::OUString& PROP_OUTPUTSTREAM(); - static const ::rtl::OUString& PROP_PASSWORD(); - static const ::rtl::OUString& PROP_PATTERN(); - static const ::rtl::OUString& PROP_POSSIZE(); - static const ::rtl::OUString& PROP_POSTDATA(); - static const ::rtl::OUString& PROP_POSTSTRING(); - static const ::rtl::OUString& PROP_PREVIEW(); - static const ::rtl::OUString& PROP_READONLY(); - static const ::rtl::OUString& PROP_REFERRER(); - static const ::rtl::OUString& PROP_SALVAGEDFILE(); - static const ::rtl::OUString& PROP_SILENT(); - static const ::rtl::OUString& PROP_STATUSINDICATOR(); - static const ::rtl::OUString& PROP_STREAM(); - static const ::rtl::OUString& PROP_STREAMFOROUTPUT(); - static const ::rtl::OUString& PROP_TEMPLATENAME(); - static const ::rtl::OUString& PROP_TEMPLATEREGIONNAME(); - static const ::rtl::OUString& PROP_TITLE(); - static const ::rtl::OUString& PROP_TYPENAME(); - static const ::rtl::OUString& PROP_UCBCONTENT(); - static const ::rtl::OUString& PROP_UPDATEDOCMODE(); - static const ::rtl::OUString& PROP_URL(); - static const ::rtl::OUString& PROP_VERSION(); - static const ::rtl::OUString& PROP_VIEWID(); - static const ::rtl::OUString& PROP_REPAIRPACKAGE(); - static const ::rtl::OUString& PROP_DOCUMENTTITLE(); - static const ::rtl::OUString& PROP_MODEL(); - static const ::rtl::OUString& PROP_VIEWONLY(); - static const ::rtl::OUString& PROP_DOCUMENTBASEURL(); - static const ::rtl::OUString& PROP_VIEWCONTROLLERNAME(); - - //------------------------------------------- - // interface - public: - //--------------------------------------- - /** @short these ctors do nothing - excepting that they forward - the given parameters to the base class ctors. - - @descr The ctros must be overwritten to resolve conflicts with - the default ctors of the compiler :-(. - */ - MediaDescriptor(); - MediaDescriptor(const ::com::sun::star::uno::Any& aSource); - MediaDescriptor(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lSource); - MediaDescriptor(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& lSource); - - //--------------------------------------- - /** @short it checks if the descriptor already has a valid - InputStream item and creates a new one, if not. - - @descr This method uses the current items of this MediaDescriptor, - to open the stream (as e.g. URL, ReadOnly, PostData etcpp.). - It creates a seekable stream and put it into the descriptor. - - A might existing InteractionHandler will be used automaticly, - to solve problems! - - In case of local file the system file locking is used. - - @return TRUE, if the stream was already part of the descriptor or could - be created as new item. FALSE otherwhise. - */ - sal_Bool addInputStream(); - - //--------------------------------------- - /** @short it checks if the descriptor already has a valid - InputStream item and creates a new one, if not. - - @descr This method uses the current items of this MediaDescriptor, - to open the stream (as e.g. URL, ReadOnly, PostData etcpp.). - It creates a seekable stream and put it into the descriptor. - - A might existing InteractionHandler will be used automaticly, - to solve problems! - - In case of local file the system file locking is used based on - configuration settings. - - @return TRUE, if the stream was already part of the descriptor or could - be created as new item. FALSE otherwhise. - */ - sal_Bool addInputStreamOwnLock(); - - //--------------------------------------- - /** @short it checks if the descriptor describes a readonly stream. - - @descr The descriptor itself isnt changed doing so. - It's only checked if the stream seems to be based - of a real readonly file. - - @Attention - We dont check the property "ReadOnly" here. Because - this property can be set from outside and overwrites - the readonly state of the stream. - If e.g. the stream could be opened read/write ... - but "ReadOnly" property is set to TRUE, this means: - show a readonly UI on top of this read/write stream. - - @return TRUE, if the stream must be interpreted as readonly ... - FALSE otherwhise. - */ - sal_Bool isStreamReadOnly() const; - - //--------------------------------------- - /** Returns a value from the sequence contained in the property - 'ComponentData' of this media descriptor. - - @descr The property 'ComponentData' should be empty, or should - contain a value of type sequence<com.sun.star.beans.NamedValue> - or sequence<com.sun.star.beans.PropertyValue>. - - @return The value with the specified name, if existing in the - sequence of the 'ComponentData' property, otherwise an empty - Any. - */ - ::com::sun::star::uno::Any getComponentDataEntry( - const ::rtl::OUString& rName ) const; - - //--------------------------------------- - /** Inserts a value into the sequence contained in the property - 'ComponentData' of the media descriptor. - - @descr The property 'ComponentData' should be empty, or should - contain a value of type sequence<com.sun.star.beans.NamedValue> - or sequence<com.sun.star.beans.PropertyValue>. The passed value - will be inserted into the sequence, or, if already existing, - will be overwritten. - - @param rName The name of the value to be inserted into the - sequence of the 'ComponentData' property. - - @param rValue The value to be inserted into the sequence of the - 'ComponentData' property. - */ - void setComponentDataEntry( - const ::rtl::OUString& rName, - const ::com::sun::star::uno::Any& rValue ); - - //--------------------------------------- - /** Removes a value from the sequence contained in the property - 'ComponentData' of the media descriptor. - - @descr The property 'ComponentData' should be empty, or should - contain a value of type sequence<com.sun.star.beans.NamedValue> - or sequence<com.sun.star.beans.PropertyValue>. The value with - the passed name will be removed from the sequence, if existing. - - @param rName The name of the value to be removed from the sequence - of the 'ComponentData' property. - */ - void clearComponentDataEntry( - const ::rtl::OUString& rName ); - - //------------------------------------------- - // helper - private: - - //--------------------------------------- - /** @short tries to open a stream by using the given PostData stream. - - @descr The stream is used directly ... - - The MediaDescriptor itself is changed inside this method. - Means: the stream is added internal and not returned by a value. - - @param _rxPostData - the PostData stream. - - @return TRUE if the stream could be added successfully. - Note: If FALSE is returned, the error was already handled inside! - - @throw [css::uno::RuntimeException] - if the MediaDescriptor seems to be invalid! - - @throw [css::lang::IllegalArgumentException] - if the given PostData stream is <NULL/>. - */ - COMPHELPER_DLLPRIVATE sal_Bool impl_openStreamWithPostData( - const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& _rxPostData - ) throw(::com::sun::star::uno::RuntimeException); - - //--------------------------------------- - /** @short tries to open a stream by using the given URL. - - @descr First it tries to open the content in r/w mode (if its - allowed to do so). Only in case its not allowed or it failed - the stream will be tried to open in readonly mode. - - The MediaDescriptor itself is changed inside this method. - Means: the stream is added internal and not returned by a value. - - @param sURL - the URL for open. - - @param bLockFile - specifies whether the file should be locked - - @return TRUE if the stream could be added successfully. - Note: If FALSE is returned, the error was already handled inside! - - @throw [css::uno::RuntimeException] - if the MediaDescriptor seems to be invalid! - */ - COMPHELPER_DLLPRIVATE sal_Bool impl_openStreamWithURL( - const ::rtl::OUString& sURL, - sal_Bool bLockFile - ) throw(::com::sun::star::uno::RuntimeException); - - //--------------------------------------- - /** @short some URL parts can make trouble for opening streams (e.g. jumpmarks.) - An URL should be "normalized" before its used. - - @param sURL - the original URL (e.g. including a jumpmark) - - @return [string] - the "normalized" URL (e.g. without jumpmark) - */ - COMPHELPER_DLLPRIVATE ::rtl::OUString impl_normalizeURL(const ::rtl::OUString& sURL); - - //--------------------------------------- - /** @short it checks if the descriptor already has a valid - InputStream item and creates a new one, if not. - - @descr This method uses the current items of this MediaDescriptor, - to open the stream (as e.g. URL, ReadOnly, PostData etcpp.). - It creates a seekable stream and put it into the descriptor. - - A might existing InteractionHandler will be used automaticly, - to solve problems! - - @param bLockFile - specifies whether the file should be locked - - @return TRUE, if the stream was already part of the descriptor or could - be created as new item. FALSE otherwhise. - */ - COMPHELPER_DLLPRIVATE sal_Bool impl_addInputStream( sal_Bool bLockFile ); -}; - -} // namespace comphelper - -#endif // _COMPHELPER_MEDIADESCRIPTOR_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |