26#include <com/sun/star/ucb/ContentCreationException.hpp>
27#include <com/sun/star/ucb/XContentCreator.hpp>
46 struct OpenCommandArgument3;
47 struct PropertyCommandArgument;
48 struct PostCommandArgument2;
65 public css::ucb::XContentCreator
107 virtual css::uno::Sequence< css::beans::Property >
108 getProperties(
const css::uno::Reference< css::ucb::XCommandEnvironment > & xEnv )
override;
109 virtual css::uno::Sequence< css::ucb::CommandInfo >
110 getCommands(
const css::uno::Reference< css::ucb::XCommandEnvironment > & xEnv )
override;
114 bool isFolder(
const css::uno::Reference< css::ucb::XCommandEnvironment >& xEnv );
117 css::uno::Reference< css::sdbc::XRow >
119 const css::uno::Reference< css::ucb::XCommandEnvironment >& xEnv );
122 css::uno::Sequence< css::uno::Any >
124 const css::uno::Reference< css::ucb::XCommandEnvironment >& xEnv );
134 getBaseURI(
const std::unique_ptr< DAVResourceAccess > & rResAccess );
143 const std::unique_ptr< DAVResourceAccess > & rResAccess,
144 bool * networkAccessAllowed =
nullptr );
149 const css::ucb::OpenCommandArgument3 & rArg,
150 const css::uno::Reference<
151 css::ucb::XCommandEnvironment > & xEnv );
155 void post(
const css::ucb::PostCommandArgument2 & rArg,
156 const css::uno::Reference< css::ucb::XCommandEnvironment > & xEnv );
160 void insert(
const css::uno::Reference< css::io::XInputStream > & xInputStream,
161 bool bReplaceExisting,
162 const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
166 void transfer(
const css::ucb::TransferInfo & rArgs,
167 const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
171 void destroy(
bool bDeletePhysical );
175 void lock(
const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
179 void unlock(
const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
186 const css::uno::Reference< css::ucb::XCommandEnvironment > & xEnv,
187 bool bWrite =
false );
192 const css::uno::Reference< css::ucb::XCommandEnvironment >& rEnvironment,
193 const std::unique_ptr< DAVResourceAccess > & rResAccess );
196 const css::uno::Reference< css::ucb::XCommandEnvironment >& rEnvironment );
203 void addProperty(
const css::ucb::PropertyCommandArgument &aCmdArg,
204 const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
210 const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment );
213 Content(
const css::uno::Reference< css::uno::XComponentContext >& rxContext,
215 const css::uno::Reference< css::ucb::XContentIdentifier >& Identifier,
218 Content(
const css::uno::Reference< css::uno::XComponentContext >& rxContext,
220 const css::uno::Reference< css::ucb::XContentIdentifier >& Identifier,
226 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
227 virtual void SAL_CALL
acquire()
229 virtual
void SAL_CALL
release()
237 virtual OUString SAL_CALL
240 virtual css::
uno::Sequence< OUString > SAL_CALL
244 virtual OUString SAL_CALL
248 virtual css::
uno::Any SAL_CALL
251 const css::
uno::Reference< css::
ucb::XCommandEnvironment >& Environment ) override;
252 virtual
void SAL_CALL
253 abort( sal_Int32 CommandId ) override;
256 virtual
void SAL_CALL
258 sal_Int16 Attributes,
259 const css::
uno::Any& DefaultValue ) override;
261 virtual
void SAL_CALL
271 virtual css::
uno::Reference< css::
ucb::XContent > SAL_CALL
281 static css::uno::Reference< css::sdbc::XRow >
283 const css::uno::Sequence< css::beans::Property >& rProperties,
286 const OUString& rContentId );
290 void getResourceOptions(
const css::uno::Reference< css::ucb::XCommandEnvironment >& xEnv,
292 const std::unique_ptr< DAVResourceAccess > & rResAccess,
293 bool * networkAccessAllowed =
nullptr);
295 static bool isResourceAvailable(
const css::uno::Reference< css::ucb::XCommandEnvironment >& xEnv,
296 const std::unique_ptr< DAVResourceAccess > & rResAccess,
bool isFolder(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
OUString getBaseURI(const std::unique_ptr< DAVResourceAccess > &rResAccess)
virtual css::uno::Sequence< css::ucb::CommandInfo > getCommands(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv) override
static css::uno::Reference< css::sdbc::XRow > getPropertyValues(const css::uno::Reference< css::uno::XComponentContext > &rContext, const css::uno::Sequence< css::beans::Property > &rProperties, const ContentProperties &rData, const rtl::Reference< ::ucbhelper::ContentProviderImplHelper > &rProvider, const OUString &rContentId)
ResourceType m_eResourceTypeForLocks
void cancelCommandExecution(const DAVException &e, const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv, bool bWrite=false)
static void removeCachedPropertyNames(const OUString &rURL)
static bool isResourceAvailable(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv, const std::unique_ptr< DAVResourceAccess > &rResAccess, DAVOptions &rDAVOptions)
sal_uInt32 m_nOptsCacheLifeDAVLocked
virtual css::uno::Reference< css::ucb::XContent > SAL_CALL createNewContent(const css::ucb::ContentInfo &Info) override
ResourceType getResourceType(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv, const std::unique_ptr< DAVResourceAccess > &rResAccess, bool *networkAccessAllowed=nullptr)
sal_uInt32 m_nOptsCacheLifeImplWeb
rtl::Reference< Content > ContentRef
virtual css::uno::Sequence< css::ucb::ContentInfo > SAL_CALL queryCreatableContentsInfo() override
sal_uInt32 m_nOptsCacheLifeNotImpl
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
static bool shouldAccessNetworkAfterException(const DAVException &e)
sal_uInt32 m_nOptsCacheLifeDAV
css::uno::Reference< css::sdbc::XRow > getPropertyValues(const css::uno::Sequence< css::beans::Property > &rProperties, const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
std::vector< ContentRef > ContentRefList
ResourceType resourceTypeForLocks(const css::uno::Reference< css::ucb::XCommandEnvironment > &rEnvironment)
virtual css::uno::Sequence< css::beans::Property > getProperties(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv) override
Content(const css::uno::Reference< css::uno::XComponentContext > &rxContext, ContentProvider *pProvider, const css::uno::Reference< css::ucb::XContentIdentifier > &Identifier, rtl::Reference< DAVSessionFactory > const &rSessionFactory)
bool exchangeIdentity(const css::uno::Reference< css::ucb::XContentIdentifier > &xNewId)
void getResourceOptions(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv, DAVOptions &rDAVOptions, const std::unique_ptr< DAVResourceAccess > &rResAccess, bool *networkAccessAllowed=nullptr)
Use OPTIONS method to retrieve the type of the Web resource.
void lock(const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
void unlock(const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
void removeProperty(const OUString &Name, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
css::uno::Sequence< css::uno::Any > setPropertyValues(const css::uno::Sequence< css::beans::PropertyValue > &rValues, const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
void insert(const css::uno::Reference< css::io::XInputStream > &xInputStream, bool bReplaceExisting, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
DAVResourceAccess & getResourceAccess()
virtual css::uno::Any SAL_CALL execute(const css::ucb::Command &aCommand, sal_Int32 CommandId, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment) override
std::vector< OUString > m_aFailedPropNames
virtual OUString SAL_CALL getImplementationName() override
ResourceType m_eResourceType
virtual void SAL_CALL acquire() noexcept override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void SAL_CALL release() noexcept override
void initOptsCacheLifeTime()
ResourceType resourceTypeForLocks(const css::uno::Reference< css::ucb::XCommandEnvironment > &rEnvironment, const std::unique_ptr< DAVResourceAccess > &rResAccess)
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
void transfer(const css::ucb::TransferInfo &rArgs, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
css::uno::Any open(const css::ucb::OpenCommandArgument3 &rArg, const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
sal_uInt32 m_nOptsCacheLifeNotFound
void queryChildren(ContentRefList &rChildren)
std::unique_ptr< DAVResourceAccess > m_xResAccess
virtual OUString SAL_CALL getContentType() override
virtual void SAL_CALL abort(sal_Int32 CommandId) override
virtual OUString getParentURL() override
void addProperty(const css::ucb::PropertyCommandArgument &aCmdArg, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment)
ResourceType getResourceType(const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
std::unique_ptr< CachableContentProperties > m_xCachedProps
css::uno::Any MapDAVException(const DAVException &e, bool bWrite)
void destroy(bool bDeletePhysical)
ContentProvider * m_pProvider
virtual ~Content() override
Content(const css::uno::Reference< css::uno::XComponentContext > &rxContext, ContentProvider *pProvider, const css::uno::Reference< css::ucb::XContentIdentifier > &Identifier, rtl::Reference< DAVSessionFactory > const &rSessionFactory, bool isCollection)
void post(const css::ucb::PostCommandArgument2 &rArg, const css::uno::Reference< css::ucb::XCommandEnvironment > &xEnv)
constexpr OUStringLiteral WEBDAV_CONTENT_SERVICE_NAME