LibreOffice Module unotools (master) 1
|
can be used to work with a css::document::MediaDescriptor struct. More...
#include <mediadescriptor.hxx>
Public Member Functions | |
MediaDescriptor () | |
these ctors do nothing - excepting that they forward the given parameters to the base class ctors. More... | |
MediaDescriptor (const css::uno::Sequence< css::beans::PropertyValue > &lSource) | |
bool | addInputStream () |
it checks if the descriptor already has a valid InputStream item and creates a new one, if not. More... | |
bool | addInputStreamOwnLock () |
it checks if the descriptor already has a valid InputStream item and creates a new one, if not. More... | |
bool | isStreamReadOnly () const |
it checks if the descriptor describes a readonly stream. More... | |
css::uno::Any | getComponentDataEntry (const OUString &rName) const |
Returns a value from the sequence contained in the property 'ComponentData' of this media descriptor. More... | |
void | setComponentDataEntry (const OUString &rName, const css::uno::Any &rValue) |
Inserts a value into the sequence contained in the property 'ComponentData' of the media descriptor. More... | |
void | clearComponentDataEntry (const OUString &rName) |
Removes a value from the sequence contained in the property 'ComponentData' of the media descriptor. More... | |
css::uno::Sequence< css::beans::NamedValue > | requestAndVerifyDocPassword (comphelper::IDocPasswordVerifier &rVerifier, comphelper::DocPasswordRequestType eRequestType, const ::std::vector< OUString > *pDefaultPasswords) |
This helper function tries to find a password for the document described by this media descriptor. More... | |
Public Member Functions inherited from comphelper::SequenceAsHashMap | |
SequenceAsHashMap () | |
SequenceAsHashMap (const css::uno::Any &aSource) | |
SequenceAsHashMap (const css::uno::Sequence< css::uno::Any > &lSource) | |
SequenceAsHashMap (const css::uno::Sequence< css::beans::PropertyValue > &lSource) | |
SequenceAsHashMap (const css::uno::Sequence< css::beans::NamedValue > &lSource) | |
void | operator<< (const css::uno::Any &aSource) |
void | operator<< (const css::uno::Sequence< css::uno::Any > &lSource) |
void | operator<< (const css::uno::Sequence< css::beans::PropertyValue > &lSource) |
void | operator<< (const css::uno::Sequence< css::beans::NamedValue > &lSource) |
void | operator>> (css::uno::Sequence< css::beans::PropertyValue > &lDestination) const |
void | operator>> (css::uno::Sequence< css::beans::NamedValue > &lDestination) const |
css::uno::Any | getAsConstAny (bool bAsPropertyValue) const |
css::uno::Sequence< css::beans::NamedValue > | getAsConstNamedValueList () const |
css::uno::Sequence< css::beans::PropertyValue > | getAsConstPropertyValueList () const |
TValueType | getUnpackedValueOrDefault (const OUString &sKey, const TValueType &aDefault) const |
css::uno::Any | getValue (const OUString &sKey) const |
bool | createItemIfMissing (const OUString &sKey, const TValueType &aValue) |
bool | match (const SequenceAsHashMap &rCheck) const |
void | update (const SequenceAsHashMap &rSource) |
css::uno::Any & | operator[] (const OUString &rKey) |
css::uno::Any & | operator[] (const OUStringAndHashCode &rKey) |
void | clear () |
size_t | size () const |
bool | empty () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
iterator | find (const OUString &rKey) |
const_iterator | find (const OUString &rKey) const |
iterator | find (const OUStringAndHashCode &rKey) |
const_iterator | find (const OUStringAndHashCode &rKey) const |
iterator | erase (iterator it) |
size_t | erase (const OUString &rKey) |
Static Public Attributes | |
static constexpr OUStringLiteral | PROP_ABORTED = u"Aborted" |
these methods can be used to get the different property names as static const OUString values. More... | |
static constexpr OUStringLiteral | PROP_ASTEMPLATE = u"AsTemplate" |
static constexpr OUStringLiteral | PROP_COMPONENTDATA = u"ComponentData" |
static constexpr OUStringLiteral | PROP_DOCUMENTSERVICE = u"DocumentService" |
static constexpr OUStringLiteral | PROP_ENCRYPTIONDATA = u"EncryptionData" |
static constexpr OUStringLiteral | PROP_FILENAME = u"FileName" |
static constexpr OUStringLiteral | PROP_FILTERNAME = u"FilterName" |
static constexpr OUStringLiteral | PROP_FILTERPROVIDER = u"FilterProvider" |
static constexpr OUStringLiteral | PROP_FILTEROPTIONS = u"FilterOptions" |
static constexpr OUStringLiteral | PROP_FRAME = u"Frame" |
static constexpr OUStringLiteral | PROP_FRAMENAME = u"FrameName" |
static constexpr OUStringLiteral | PROP_HIDDEN = u"Hidden" |
static constexpr OUStringLiteral | PROP_INPUTSTREAM = u"InputStream" |
static constexpr OUStringLiteral | PROP_INTERACTIONHANDLER = u"InteractionHandler" |
static constexpr OUStringLiteral | PROP_AUTHENTICATIONHANDLER = u"AuthenticationHandler" |
static constexpr OUStringLiteral | PROP_JUMPMARK = u"JumpMark" |
static constexpr OUStringLiteral | PROP_MACROEXECUTIONMODE = u"MacroExecutionMode" |
static constexpr OUStringLiteral | PROP_MEDIATYPE = u"MediaType" |
static constexpr OUStringLiteral | PROP_MINIMIZED = u"Minimized" |
static constexpr OUStringLiteral | PROP_NOAUTOSAVE = u"NoAutoSave" |
static constexpr OUStringLiteral | PROP_OPENNEWVIEW = u"OpenNewView" |
static constexpr OUStringLiteral | PROP_OUTPUTSTREAM = u"OutputStream" |
static constexpr OUStringLiteral | PROP_PASSWORD = u"Password" |
static constexpr OUStringLiteral | PROP_POSTDATA = u"PostData" |
static constexpr OUStringLiteral | PROP_PREVIEW = u"Preview" |
static constexpr OUStringLiteral | PROP_READONLY = u"ReadOnly" |
static constexpr OUStringLiteral | PROP_REFERRER = u"Referer" |
static constexpr OUStringLiteral | PROP_REPLACEABLE = u"Replaceable" |
static constexpr OUStringLiteral | PROP_SALVAGEDFILE = u"SalvagedFile" |
static constexpr OUStringLiteral | PROP_SILENT = u"Silent" |
static constexpr OUStringLiteral | PROP_STATUSINDICATOR = u"StatusIndicator" |
static constexpr OUStringLiteral | PROP_STREAM = u"Stream" |
static constexpr OUStringLiteral | PROP_STREAMFOROUTPUT = u"StreamForOutput" |
static constexpr OUStringLiteral | PROP_TEMPLATENAME = u"TemplateName" |
static constexpr OUStringLiteral | PROP_TITLE = u"Title" |
static constexpr OUStringLiteral | PROP_TYPENAME = u"TypeName" |
static constexpr OUStringLiteral | PROP_UCBCONTENT = u"UCBContent" |
static constexpr OUStringLiteral | PROP_UPDATEDOCMODE = u"UpdateDocMode" |
static constexpr OUStringLiteral | PROP_URL = u"URL" |
static constexpr OUStringLiteral | PROP_VERSION = u"Version" |
static constexpr OUStringLiteral | PROP_DOCUMENTTITLE = u"DocumentTitle" |
static constexpr OUStringLiteral | PROP_MODEL = u"Model" |
static constexpr OUStringLiteral | PROP_VIEWONLY = u"ViewOnly" |
static constexpr OUStringLiteral | PROP_DOCUMENTBASEURL = u"DocumentBaseURL" |
static constexpr OUStringLiteral | PROP_SUGGESTEDSAVEASNAME = u"SuggestedSaveAsName" |
static constexpr OUStringLiteral | PROP_AUTOSAVEEVENT = u"AutoSaveEvent" |
Private Member Functions | |
SAL_DLLPRIVATE bool | impl_openStreamWithPostData (const css::uno::Reference< css::io::XInputStream > &_rxPostData) |
tries to open a stream by using the given PostData stream. More... | |
SAL_DLLPRIVATE bool | impl_openStreamWithURL (const OUString &sURL, bool bLockFile) |
tries to open a stream by using the given URL. More... | |
SAL_DLLPRIVATE bool | impl_addInputStream (bool bLockFile) |
it checks if the descriptor already has a valid InputStream item and creates a new one, if not. More... | |
Additional Inherited Members | |
Public Types inherited from comphelper::SequenceAsHashMap | |
typedef SequenceAsHashMapBase::iterator | iterator |
typedef SequenceAsHashMapBase::const_iterator | const_iterator |
can be used to work with a css::document::MediaDescriptor struct.
@descr It wraps an 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 usable property names.
Definition at line 49 of file mediadescriptor.hxx.
utl::MediaDescriptor::MediaDescriptor | ( | ) |
these ctors do nothing - excepting that they forward the given parameters to the base class ctors.
@descr The ctors must be overwritten to resolve conflicts with the default ctors of the compiler :-(.
Definition at line 68 of file mediadescriptor.cxx.
utl::MediaDescriptor::MediaDescriptor | ( | const css::uno::Sequence< css::beans::PropertyValue > & | lSource | ) |
Definition at line 72 of file mediadescriptor.cxx.
bool utl::MediaDescriptor::addInputStream | ( | ) |
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 automatically, to solve problems!
In case of local file the system file locking is used.
Definition at line 218 of file mediadescriptor.cxx.
References impl_addInputStream().
bool utl::MediaDescriptor::addInputStreamOwnLock | ( | ) |
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 automatically, to solve problems!
In case of local file the system file locking is used based on configuration settings.
Definition at line 224 of file mediadescriptor.cxx.
References Translate::get(), impl_addInputStream(), and utl::ConfigManager::IsFuzzing().
void utl::MediaDescriptor::clearComponentDataEntry | ( | const OUString & | rName | ) |
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.
rName | The name of the value to be removed from the sequence of the 'ComponentData' property. |
Definition at line 166 of file mediadescriptor.cxx.
References comphelper::SequenceAsHashMap::empty(), comphelper::SequenceAsHashMap::end(), comphelper::SequenceAsHashMap::erase(), comphelper::SequenceAsHashMap::find(), comphelper::SequenceAsHashMap::getAsConstAny(), and PROP_COMPONENTDATA.
Referenced by setComponentDataEntry().
css::uno::Any utl::MediaDescriptor::getComponentDataEntry | ( | const OUString & | rName | ) | 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>.
Definition at line 132 of file mediadescriptor.cxx.
References comphelper::SequenceAsHashMap::end(), comphelper::SequenceAsHashMap::find(), comphelper::NamedValueCollection::get(), and PROP_COMPONENTDATA.
|
private |
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 automatically, to solve problems!
bLockFile | specifies whether the file should be locked |
Definition at line 232 of file mediadescriptor.cxx.
References comphelper::SequenceAsHashMap::end(), comphelper::SequenceAsHashMap::find(), comphelper::SequenceAsHashMap::getUnpackedValueOrDefault(), impl_openStreamWithPostData(), impl_openStreamWithURL(), PROP_INPUTSTREAM, PROP_POSTDATA, PROP_URL, and TOOLS_WARN_EXCEPTION.
Referenced by addInputStream(), and addInputStreamOwnLock().
|
private |
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.
_rxPostData | the PostData stream. |
[css::uno::RuntimeException] | if the MediaDescriptor seems to be invalid! |
[css::lang::IllegalArgumentException] | if the given PostData stream is <NULL>. |
Definition at line 268 of file mediadescriptor.cxx.
References ucbhelper::Content::executeCommand(), comphelper::getProcessComponentContext(), comphelper::SequenceAsHashMap::getUnpackedValueOrDefault(), PROP_INPUTSTREAM, PROP_INTERACTIONHANDLER, PROP_MEDIATYPE, PROP_READONLY, PROP_REFERRER, PROP_URL, sMediaType, and xSink.
Referenced by impl_addInputStream().
|
private |
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 it's 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.
sURL | the URL for open. |
bLockFile | specifies whether the file should be locked |
[css::uno::RuntimeException] | if the MediaDescriptor seems to be invalid! |
Definition at line 335 of file mediadescriptor.cxx.
References bReadOnly, comphelper::SequenceAsHashMap::end(), ex, exceptionToString(), comphelper::SequenceAsHashMap::find(), ucbhelper::Content::get(), cppu::getCaughtException(), comphelper::getProcessComponentContext(), ucbhelper::Content::getPropertyValue(), comphelper::SequenceAsHashMap::getUnpackedValueOrDefault(), SvtSecurityOptions::isUntrustedReferer(), ucbhelper::Content::openStream(), ucbhelper::Content::openStreamNoLock(), ucbhelper::Content::openWriteableStream(), PROP_AUTHENTICATIONHANDLER, PROP_INPUTSTREAM, PROP_INTERACTIONHANDLER, PROP_READONLY, PROP_REFERRER, PROP_STREAM, PROP_UCBCONTENT, SAL_WARN, TOOLS_INFO_EXCEPTION, TOOLS_WARN_EXCEPTION, and xStream.
Referenced by impl_addInputStream().
bool utl::MediaDescriptor::isStreamReadOnly | ( | ) | const |
it checks if the descriptor describes a readonly stream.
@descr The descriptor itself isn't changed doing so. It's only checked if the stream seems to be based of a real readonly file.
@Attention We don't 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.
Definition at line 77 of file mediadescriptor.cxx.
References bReadOnly, comphelper::SequenceAsHashMap::end(), comphelper::SequenceAsHashMap::find(), utl::UCBContentHelper::getDefaultCommandEnvironment(), comphelper::getProcessComponentContext(), ucbhelper::Content::getPropertyValue(), comphelper::SequenceAsHashMap::getUnpackedValueOrDefault(), PROP_POSTDATA, PROP_READONLY, PROP_STREAM, and PROP_UCBCONTENT.
css::uno::Sequence< css::beans::NamedValue > utl::MediaDescriptor::requestAndVerifyDocPassword | ( | comphelper::IDocPasswordVerifier & | rVerifier, |
comphelper::DocPasswordRequestType | eRequestType, | ||
const ::std::vector< OUString > * | pDefaultPasswords | ||
) |
This helper function tries to find a password for the document described by this media descriptor.
First, the list of default passwords will be tried if provided. This is needed by import filters for external file formats that have to check a predefined password in some cases without asking the user for a password. Every password is checked using the passed password verifier.
If not successful, this media descriptor is asked for a password, that has been set e.g. by an API call to load a document. If existing, the password is checked using the passed password verifier.
If still not successful, the interaction handler contained in this media descriptor is used to request a password from the user. This will be repeated until the passed password verifier validates the entered password, or if the user chooses to cancel password input.
If a valid password (that is not contained in the passed list of default passwords) was found, it will be inserted into the "Password" property of this descriptor.
rVerifier | The password verifier used to check every processed password. |
eRequestType | The password request type that will be passed to the DocPasswordRequest object created internally. See docpasswordrequest.hxx for more details. |
pDefaultPasswords | If not null, contains default passwords that will be tried before a password will be requested from the media descriptor or the user. |
Definition at line 189 of file mediadescriptor.cxx.
References comphelper::SequenceAsHashMap::erase(), comphelper::SequenceAsHashMap::getUnpackedValueOrDefault(), PROP_ENCRYPTIONDATA, PROP_INTERACTIONHANDLER, PROP_PASSWORD, PROP_URL, and comphelper::DocPasswordHelper::requestAndVerifyDocPassword().
void utl::MediaDescriptor::setComponentDataEntry | ( | const OUString & | rName, |
const css::uno::Any & | rValue | ||
) |
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.
rName | The name of the value to be inserted into the sequence of the 'ComponentData' property. |
rValue | The value to be inserted into the sequence of the 'ComponentData' property. |
Definition at line 140 of file mediadescriptor.cxx.
References clearComponentDataEntry(), comphelper::SequenceAsHashMap::getAsConstAny(), comphelper::SequenceAsHashMap::operator[](), and PROP_COMPONENTDATA.
|
staticconstexpr |
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 :-(
Definition at line 60 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 61 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 74 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithURL().
|
staticconstexpr |
Definition at line 105 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 62 of file mediadescriptor.hxx.
Referenced by clearComponentDataEntry(), getComponentDataEntry(), and setComponentDataEntry().
|
staticconstexpr |
Definition at line 103 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 63 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 100 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 64 of file mediadescriptor.hxx.
Referenced by requestAndVerifyDocPassword().
|
staticconstexpr |
Definition at line 65 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 66 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 68 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 67 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 69 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 70 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 71 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 72 of file mediadescriptor.hxx.
Referenced by impl_addInputStream(), impl_openStreamWithPostData(), and impl_openStreamWithURL().
|
staticconstexpr |
Definition at line 73 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithPostData(), impl_openStreamWithURL(), and requestAndVerifyDocPassword().
|
staticconstexpr |
Definition at line 75 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 76 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 77 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithPostData().
|
staticconstexpr |
Definition at line 78 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 101 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 79 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 80 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 81 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 82 of file mediadescriptor.hxx.
Referenced by requestAndVerifyDocPassword().
|
staticconstexpr |
Definition at line 83 of file mediadescriptor.hxx.
Referenced by impl_addInputStream(), and isStreamReadOnly().
|
staticconstexpr |
Definition at line 84 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 85 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithPostData(), impl_openStreamWithURL(), and isStreamReadOnly().
|
staticconstexpr |
Definition at line 86 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithPostData(), and impl_openStreamWithURL().
|
staticconstexpr |
Definition at line 87 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 88 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 89 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 90 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 91 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithURL(), and isStreamReadOnly().
|
staticconstexpr |
Definition at line 92 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 104 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 93 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 94 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 95 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 96 of file mediadescriptor.hxx.
Referenced by impl_openStreamWithURL(), and isStreamReadOnly().
|
staticconstexpr |
Definition at line 97 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 98 of file mediadescriptor.hxx.
Referenced by impl_addInputStream(), impl_openStreamWithPostData(), and requestAndVerifyDocPassword().
|
staticconstexpr |
Definition at line 99 of file mediadescriptor.hxx.
|
staticconstexpr |
Definition at line 102 of file mediadescriptor.hxx.