LibreOffice Module ucb (master) 1
bc.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <mutex>
23#include <rtl/ustring.hxx>
26#include <com/sun/star/uno/XInterface.hpp>
27#include <com/sun/star/lang/XComponent.hpp>
28#include <com/sun/star/ucb/XCommandProcessor.hpp>
29#include <com/sun/star/beans/XPropertiesChangeNotifier.hpp>
30#include <com/sun/star/ucb/XContent.hpp>
31#include <com/sun/star/ucb/XDynamicResultSet.hpp>
32#include <com/sun/star/lang/XServiceInfo.hpp>
33#include <com/sun/star/sdbc/XRow.hpp>
34#include <com/sun/star/beans/Property.hpp>
35#include <com/sun/star/beans/PropertyValue.hpp>
36#include <com/sun/star/ucb/XCommandInfo.hpp>
37#include <com/sun/star/ucb/InsertCommandArgument.hpp>
38#include <com/sun/star/beans/XPropertySetInfo.hpp>
39#include <com/sun/star/beans/XPropertyContainer.hpp>
40#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.hpp>
41#include <com/sun/star/beans/XPropertySetInfoChangeListener.hpp>
42#include <com/sun/star/container/XChild.hpp>
43#include <com/sun/star/ucb/XContentCreator.hpp>
44#include <com/sun/star/ucb/OpenCommandArgument2.hpp>
45#include <com/sun/star/ucb/TransferInfo.hpp>
46#include "filtask.hxx"
47
48
49namespace fileaccess {
50
52 class TaskManager;
53
55 public cppu::WeakImplHelper<
56 css::lang::XComponent,
57 css::lang::XServiceInfo,
58 css::ucb::XCommandProcessor,
59 css::beans::XPropertiesChangeNotifier,
60 css::beans::XPropertyContainer,
61 css::beans::XPropertySetInfoChangeNotifier,
62 css::ucb::XContentCreator,
63 css::container::XChild,
64 css::ucb::XContent>,
65 public fileaccess::Notifier // implementation class
66 {
67 private:
68
69 // A special creator for inserted contents; Creates an ugly object
70 BaseContent( TaskManager* pMyShell,
71 OUString parentName,
72 bool bFolder );
73
74 public:
76 TaskManager* pMyShell,
77 const css::uno::Reference< css::ucb::XContentIdentifier >& xContentIdentifier,
78 OUString aUnqPath );
79
80 virtual ~BaseContent() override;
81
82 // XComponent
83 virtual void SAL_CALL
84 dispose() override;
85
86 virtual void SAL_CALL
88 const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
89
90 virtual void SAL_CALL
91 removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
92
93
94 // XServiceInfo
95 virtual OUString SAL_CALL
96 getImplementationName() override;
97
98 virtual sal_Bool SAL_CALL
99 supportsService( const OUString& ServiceName ) override;
100
101 virtual css::uno::Sequence< OUString > SAL_CALL
102 getSupportedServiceNames() override;
103
104
105 // XCommandProcessor
106 virtual sal_Int32 SAL_CALL
107 createCommandIdentifier() override;
108
109 virtual css::uno::Any SAL_CALL
110 execute(
111 const css::ucb::Command& aCommand,
112 sal_Int32 CommandId,
113 const css::uno::Reference< css::ucb::XCommandEnvironment >& Environment ) override;
114
115 virtual void SAL_CALL
116 abort( sal_Int32 CommandId ) override;
117
118
119 // XContent
120 virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL
121 getIdentifier() override;
122
123 virtual OUString SAL_CALL
124 getContentType() override;
125
126 virtual void SAL_CALL
128 const css::uno::Reference< css::ucb::XContentEventListener >& Listener ) override;
129
130 virtual void SAL_CALL
132 const css::uno::Reference< css::ucb::XContentEventListener >& Listener ) override;
133
134 // XPropertiesChangeNotifier
135
136 virtual void SAL_CALL
138 const css::uno::Sequence< OUString >& PropertyNames,
139 const css::uno::Reference< css::beans::XPropertiesChangeListener >& Listener ) override;
140
141 virtual void SAL_CALL
142 removePropertiesChangeListener( const css::uno::Sequence< OUString >& PropertyNames,
143 const css::uno::Reference< css::beans::XPropertiesChangeListener >& Listener ) override;
144
145 // XPropertyContainer
146
147 virtual void SAL_CALL
149 const OUString& Name,
150 sal_Int16 Attributes,
151 const css::uno::Any& DefaultValue ) override;
152
153 virtual void SAL_CALL
154 removeProperty( const OUString& Name ) override;
155
156 // XPropertySetInfoChangeNotifier
157
158 virtual void SAL_CALL
160 const css::uno::Reference< css::beans::XPropertySetInfoChangeListener >& Listener ) override;
161
162 virtual void SAL_CALL
164 const css::uno::Reference< css::beans::XPropertySetInfoChangeListener >& Listener ) override;
165
166
167 // XContentCreator
168
169 virtual css::uno::Sequence< css::ucb::ContentInfo > SAL_CALL
171
172 virtual css::uno::Reference< css::ucb::XContent > SAL_CALL
173 createNewContent( const css::ucb::ContentInfo& Info ) override;
174
175
176 // XChild
177 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
178 getParent() override;
179
180 // Not supported
181 virtual void SAL_CALL
182 setParent( const css::uno::Reference< css::uno::XInterface >& Parent ) override;
183
184
185 // Notifier
186
187 std::optional<ContentEventNotifier> cDEL() override;
188 std::optional<ContentEventNotifier> cEXC( const OUString& aNewName ) override;
189 std::optional<ContentEventNotifier> cCEL() override;
190 std::optional<PropertySetInfoChangeNotifier> cPSL() override;
191 std::optional<PropertyChangeNotifier> cPCL() override;
192
193 private:
194 // Data members
196 css::uno::Reference< css::ucb::XContentIdentifier > m_xContentIdentifier;
197 OUString m_aUncPath;
198
204 sal_uInt16 m_nState;
205
206 std::mutex m_aMutex;
210 std::unique_ptr<PropertyListeners> m_pPropertyListener;
211
212
213 // Private Methods
215 css::uno::Reference< css::ucb::XCommandInfo >
217
219 css::uno::Reference< css::beans::XPropertySetInfo >
221
223 css::uno::Reference< css::sdbc::XRow >
225 sal_Int32 nMyCommandIdentifier,
226 const css::uno::Sequence< css::beans::Property >& PropertySet );
227
228 css::uno::Sequence< css::uno::Any >
230 sal_Int32 nMyCommandIdentifier,
231 const css::uno::Sequence< css::beans::PropertyValue >& Values );
232
233 css::uno::Reference< css::ucb::XDynamicResultSet >
234 open(
235 sal_Int32 nMyCommandIdentifier,
236 const css::ucb::OpenCommandArgument2& aCommandArgument );
237
238 void
239 deleteContent( sal_Int32 nMyCommandIdentifier );
240
241
242 void
243 transfer( sal_Int32 nMyCommandIdentifier,
244 const css::ucb::TransferInfo& aTransferInfo );
245
246 void
247 insert( sal_Int32 nMyCommandIdentifier,
248 const css::ucb::InsertCommandArgument& aInsertArgument );
249
250 void endTask( sal_Int32 CommandId );
251
253 };
254
255} // end namespace fileaccess
256
257/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::unique_ptr< PropertyListeners > m_pPropertyListener
Definition: bc.hxx:210
void endTask(sal_Int32 CommandId)
Definition: bc.cxx:1080
OUString m_aUncPath
Definition: bc.hxx:197
css::uno::Reference< css::ucb::XDynamicResultSet > open(sal_Int32 nMyCommandIdentifier, const css::ucb::OpenCommandArgument2 &aCommandArgument)
Definition: bc.cxx:815
virtual void SAL_CALL removePropertySetInfoChangeListener(const css::uno::Reference< css::beans::XPropertySetInfoChangeListener > &Listener) override
Definition: bc.cxx:560
virtual css::uno::Any SAL_CALL execute(const css::ucb::Command &aCommand, sal_Int32 CommandId, const css::uno::Reference< css::ucb::XCommandEnvironment > &Environment) override
Definition: bc.cxx:228
void deleteContent(sal_Int32 nMyCommandIdentifier)
Definition: bc.cxx:891
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
Definition: bc.cxx:164
virtual css::uno::Reference< css::ucb::XContent > SAL_CALL createNewContent(const css::ucb::ContentInfo &Info) override
Definition: bc.cxx:495
std::mutex m_aMutex
Definition: bc.hxx:206
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
Definition: bc.cxx:155
css::uno::Sequence< css::uno::Any > setPropertyValues(sal_Int32 nMyCommandIdentifier, const css::uno::Sequence< css::beans::PropertyValue > &Values)
Definition: bc.cxx:679
std::optional< PropertySetInfoChangeNotifier > cPSL() override
Definition: bc.cxx:1136
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: bc.cxx:205
comphelper::OInterfaceContainerHelper4< css::ucb::XContentEventListener > m_aContentEventListeners
Definition: bc.hxx:208
void insert(sal_Int32 nMyCommandIdentifier, const css::ucb::InsertCommandArgument &aInsertArgument)
Definition: bc.cxx:969
BaseContent(TaskManager *pMyShell, OUString parentName, bool bFolder)
Definition: bc.cxx:111
virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL getIdentifier() override
Definition: bc.cxx:386
virtual void SAL_CALL removePropertiesChangeListener(const css::uno::Sequence< OUString > &PropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener > &Listener) override
Definition: bc.cxx:364
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > m_aDisposeEventListeners
Definition: bc.hxx:207
virtual OUString SAL_CALL getImplementationName() override
Definition: bc.cxx:193
virtual void SAL_CALL addContentEventListener(const css::uno::Reference< css::ucb::XContentEventListener > &Listener) override
Definition: bc.cxx:436
virtual ~BaseContent() override
Definition: bc.cxx:141
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: bc.cxx:199
virtual sal_Int32 SAL_CALL createCommandIdentifier() override
Definition: bc.cxx:215
virtual void SAL_CALL abort(sal_Int32 CommandId) override
Definition: bc.cxx:222
std::optional< ContentEventNotifier > cCEL() override
Definition: bc.cxx:1124
std::optional< PropertyChangeNotifier > cPCL() override
Definition: bc.cxx:1146
css::uno::Reference< css::ucb::XCommandInfo > getCommandInfo()
Definition: bc.cxx:608
comphelper::OInterfaceContainerHelper4< css::beans::XPropertySetInfoChangeListener > m_aPropertySetInfoChangeListeners
Definition: bc.hxx:209
std::optional< ContentEventNotifier > cEXC(const OUString &aNewName) override
Definition: bc.cxx:1105
virtual void SAL_CALL addProperty(const OUString &Name, sal_Int16 Attributes, const css::uno::Any &DefaultValue) override
Definition: bc.cxx:459
std::optional< ContentEventNotifier > cDEL() override
Definition: bc.cxx:1088
virtual void SAL_CALL removeProperty(const OUString &Name) override
Definition: bc.cxx:474
virtual void SAL_CALL addPropertySetInfoChangeListener(const css::uno::Reference< css::beans::XPropertySetInfoChangeListener > &Listener) override
Definition: bc.cxx:550
virtual css::uno::Sequence< css::ucb::ContentInfo > SAL_CALL queryCreatableContentsInfo() override
Definition: bc.cxx:488
virtual void SAL_CALL setParent(const css::uno::Reference< css::uno::XInterface > &Parent) override
Definition: bc.cxx:597
sal_uInt16 m_nState
Definition: bc.hxx:204
virtual void SAL_CALL dispose() override
Definition: bc.cxx:173
void transfer(sal_Int32 nMyCommandIdentifier, const css::ucb::TransferInfo &aTransferInfo)
Definition: bc.cxx:905
css::uno::Reference< css::sdbc::XRow > getPropertyValues(sal_Int32 nMyCommandIdentifier, const css::uno::Sequence< css::beans::Property > &PropertySet)
Definition: bc.cxx:627
virtual void SAL_CALL removeContentEventListener(const css::uno::Reference< css::ucb::XContentEventListener > &Listener) override
Definition: bc.cxx:446
virtual OUString SAL_CALL getContentType() override
Definition: bc.cxx:393
TaskManager * m_pMyShell
Definition: bc.hxx:195
BaseContent(TaskManager *pMyShell, const css::uno::Reference< css::ucb::XContentIdentifier > &xContentIdentifier, OUString aUnqPath)
virtual void SAL_CALL addPropertiesChangeListener(const css::uno::Sequence< OUString > &PropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener > &Listener) override
Definition: bc.cxx:338
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override
Definition: bc.cxx:573
css::uno::Reference< css::ucb::XContentIdentifier > m_xContentIdentifier
Definition: bc.hxx:196
css::uno::Reference< css::beans::XPropertySetInfo > getPropertySetInfo()
Definition: bc.cxx:618
unsigned char sal_Bool