author | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
commit | a08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (unidiff) | |
tree | 8ee90d686081c52e7c69b5ce946e9b1a7d690001 /microkde/kresources/resource.h | |
parent | 11edc920afe4f274c0964436633aa632c8288a40 (diff) | |
download | kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.zip kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.gz kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.bz2 |
initial public commit of qt4 portp1
Diffstat (limited to 'microkde/kresources/resource.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/kresources/resource.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/microkde/kresources/resource.h b/microkde/kresources/resource.h index ed5af96..1f9527c 100644 --- a/microkde/kresources/resource.h +++ b/microkde/kresources/resource.h | |||
@@ -1,127 +1,127 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of libkresources | 2 | This file is part of libkresources |
3 | 3 | ||
4 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> | 4 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> |
5 | Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> | 5 | Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> |
6 | 6 | ||
7 | This library is free software; you can redistribute it and/or | 7 | This library is free software; you can redistribute it and/or |
8 | modify it under the terms of the GNU Library General Public | 8 | modify it under the terms of the GNU Library General Public |
9 | License as published by the Free Software Foundation; either | 9 | License as published by the Free Software Foundation; either |
10 | version 2 of the License, or (at your option) any later version. | 10 | version 2 of the License, or (at your option) any later version. |
11 | 11 | ||
12 | This library is distributed in the hope that it will be useful, | 12 | This library is distributed in the hope that it will be useful, |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | Library General Public License for more details. | 15 | Library General Public License for more details. |
16 | 16 | ||
17 | You should have received a copy of the GNU Library General Public License | 17 | You should have received a copy of the GNU Library General Public License |
18 | along with this library; see the file COPYING.LIB. If not, write to | 18 | along with this library; see the file COPYING.LIB. If not, write to |
19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
20 | Boston, MA 02111-1307, USA. | 20 | Boston, MA 02111-1307, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #ifndef KRESOURCES_RESOURCE_H | 23 | #ifndef KRESOURCES_RESOURCE_H |
24 | #define KRESOURCES_RESOURCE_H | 24 | #define KRESOURCES_RESOURCE_H |
25 | 25 | ||
26 | //US | 26 | //US |
27 | #ifdef QT_THREAD_SUPPORT | 27 | #ifdef QT_THREAD_SUPPORT |
28 | #include <qmutex.h> | 28 | #include <qmutex.h> |
29 | #endif //QT_THREAD_SUPPORT | 29 | #endif //QT_THREAD_SUPPORT |
30 | 30 | ||
31 | #include <qvaluelist.h> | 31 | #include <q3valuelist.h> |
32 | #include <qwidget.h> | 32 | #include <qwidget.h> |
33 | 33 | ||
34 | #include <qobject.h> | 34 | #include <qobject.h> |
35 | 35 | ||
36 | #include <klibloader.h> | 36 | #include <klibloader.h> |
37 | 37 | ||
38 | class KConfig; | 38 | class KConfig; |
39 | 39 | ||
40 | namespace KRES { | 40 | namespace KRES { |
41 | 41 | ||
42 | class ConfigWidget; | 42 | class ConfigWidget; |
43 | 43 | ||
44 | /** | 44 | /** |
45 | * @internal | 45 | * @internal |
46 | * @libdoc The KDE Resource library | 46 | * @libdoc The KDE Resource library |
47 | * | 47 | * |
48 | * NOTE: this library is NOT (YET?) PUBLIC. Do not publish this | 48 | * NOTE: this library is NOT (YET?) PUBLIC. Do not publish this |
49 | * interface, it is in constant flux. | 49 | * interface, it is in constant flux. |
50 | * | 50 | * |
51 | * The KDE Resource framework can be used to manage resources of | 51 | * The KDE Resource framework can be used to manage resources of |
52 | * different types, organized in families. The Resource framework | 52 | * different types, organized in families. The Resource framework |
53 | * is currently used for addressbook resources in libkabc and for | 53 | * is currently used for addressbook resources in libkabc and for |
54 | * calendar resources in libkcal. | 54 | * calendar resources in libkcal. |
55 | * | 55 | * |
56 | * When you want to use the framework for a new family, you need to | 56 | * When you want to use the framework for a new family, you need to |
57 | * <ul><li>Define a name for your resource family</li> | 57 | * <ul><li>Define a name for your resource family</li> |
58 | * <li>subclass Resource and add the fields and method that are needed | 58 | * <li>subclass Resource and add the fields and method that are needed |
59 | * in your application</li> | 59 | * in your application</li> |
60 | * <li>If needed, override the doOpen() and doClose() methods. | 60 | * <li>If needed, override the doOpen() and doClose() methods. |
61 | * <li> Provide a configuration possibility for resources in your | 61 | * <li> Provide a configuration possibility for resources in your |
62 | * new family. You can use @ref ResourcesConfigPage to easily create a | 62 | * new family. You can use @ref ResourcesConfigPage to easily create a |
63 | * KControl applet</li> | 63 | * KControl applet</li> |
64 | * <li>In your application, you can use @ref ResourceManager to keep track | 64 | * <li>In your application, you can use @ref ResourceManager to keep track |
65 | * of the resources in your family, and you can use @ref ResourceSelectDialog | 65 | * of the resources in your family, and you can use @ref ResourceSelectDialog |
66 | * to let the user select a single resource.</li> | 66 | * to let the user select a single resource.</li> |
67 | * </ul> | 67 | * </ul> |
68 | * | 68 | * |
69 | * When you want to add a new resource type to an existing resource family, | 69 | * When you want to add a new resource type to an existing resource family, |
70 | * you need to | 70 | * you need to |
71 | * <ul><li>Further subclass the family-specific Resource to implement | 71 | * <ul><li>Further subclass the family-specific Resource to implement |
72 | * resource type-specific operation</li> | 72 | * resource type-specific operation</li> |
73 | * <li>Subclass ResourceConfigWidget to provide a configuration widget | 73 | * <li>Subclass ResourceConfigWidget to provide a configuration widget |
74 | * for your new resource type</li> | 74 | * for your new resource type</li> |
75 | * <li>Provide a .desktop file so that the new resource type can be found | 75 | * <li>Provide a .desktop file so that the new resource type can be found |
76 | * automatically by the ResourceManager</li> | 76 | * automatically by the ResourceManager</li> |
77 | * </ul> | 77 | * </ul> |
78 | * | 78 | * |
79 | * Example: | 79 | * Example: |
80 | * | 80 | * |
81 | <B>resourceexample.h</B>: | 81 | <B>resourceexample.h</B>: |
82 | <pre> | 82 | <pre> |
83 | #include <kconfig.h> | 83 | #include <kconfig.h> |
84 | #include <kresources/resource.h> | 84 | #include <kresources/resource.h> |
85 | 85 | ||
86 | class ResourceExample : public KRES::ResourceExample | 86 | class ResourceExample : public KRES::ResourceExample |
87 | { | 87 | { |
88 | public: | 88 | public: |
89 | ResourceExample( const KConfig * ); | 89 | ResourceExample( const KConfig * ); |
90 | ~ResourceCalendarExchange(); | 90 | ~ResourceCalendarExchange(); |
91 | void writeConfig( KConfig *config ); | 91 | void writeConfig( KConfig *config ); |
92 | private: | 92 | private: |
93 | QString mLocation; | 93 | QString mLocation; |
94 | QString mPassword; | 94 | QString mPassword; |
95 | } | 95 | } |
96 | </pre> | 96 | </pre> |
97 | <B>resourceexample.cpp</B>: | 97 | <B>resourceexample.cpp</B>: |
98 | <pre> | 98 | <pre> |
99 | #include <kconfig.h> | 99 | #include <kconfig.h> |
100 | 100 | ||
101 | #include "resourceexample.h" | 101 | #include "resourceexample.h" |
102 | 102 | ||
103 | ResourceExample::ResourceExample( const KConfig *config ) | 103 | ResourceExample::ResourceExample( const KConfig *config ) |
104 | : Resource( config ) | 104 | : Resource( config ) |
105 | { | 105 | { |
106 | if ( config ) { | 106 | if ( config ) { |
107 | mLocation = config->readEntry( "Location" ); | 107 | mLocation = config->readEntry( "Location" ); |
108 | mPassword = KStringHandler::obscure( config->readEntry( "Password" ) ); | 108 | mPassword = KStringHandler::obscure( config->readEntry( "Password" ) ); |
109 | } else { | 109 | } else { |
110 | mLocation = ""; // Or some sensible default | 110 | mLocation = ""; // Or some sensible default |
111 | mPassword = ""; | 111 | mPassword = ""; |
112 | } | 112 | } |
113 | } | 113 | } |
114 | 114 | ||
115 | void ResourceExample::writeConfig( KConfig *config ) | 115 | void ResourceExample::writeConfig( KConfig *config ) |
116 | { | 116 | { |
117 | KRES::Resource::writeConfig( config ); | 117 | KRES::Resource::writeConfig( config ); |
118 | config->writeEntry( "Location", mLocation ); | 118 | config->writeEntry( "Location", mLocation ); |
119 | config->writeEntry( "Password", KStringHandler::obscure( mPassword ) ); | 119 | config->writeEntry( "Password", KStringHandler::obscure( mPassword ) ); |
120 | } | 120 | } |
121 | 121 | ||
122 | extern "C" | 122 | extern "C" |
123 | { | 123 | { |
124 | KRES::ResourceExample *config_widget( QWidget *parent ) { | 124 | KRES::ResourceExample *config_widget( QWidget *parent ) { |
125 | return new ResourceExampleConfig( parent, "Configure Example Resource" ); | 125 | return new ResourceExampleConfig( parent, "Configure Example Resource" ); |
126 | } | 126 | } |
127 | 127 | ||
@@ -146,193 +146,193 @@ public: | |||
146 | 146 | ||
147 | public slots: | 147 | public slots: |
148 | virtual void loadSettings( KRES::Resource *resource); | 148 | virtual void loadSettings( KRES::Resource *resource); |
149 | virtual void saveSettings( KRES::Resource *resource ); | 149 | virtual void saveSettings( KRES::Resource *resource ); |
150 | 150 | ||
151 | private: | 151 | private: |
152 | KLineEdit* mLocationEdit; | 152 | KLineEdit* mLocationEdit; |
153 | KLineEdit* mPasswordEdit; | 153 | KLineEdit* mPasswordEdit; |
154 | }; | 154 | }; |
155 | </pre> | 155 | </pre> |
156 | * <B>resourceexampleconfig.cpp</B>: | 156 | * <B>resourceexampleconfig.cpp</B>: |
157 | <pre> | 157 | <pre> |
158 | #include <qlayout.h> | 158 | #include <qlayout.h> |
159 | #include <qlabel.h" | 159 | #include <qlabel.h" |
160 | #include <kresources/resourceconfigwidget.h> | 160 | #include <kresources/resourceconfigwidget.h> |
161 | #include "resourceexample.h" | 161 | #include "resourceexample.h" |
162 | #include "resourceexampleconfig.h" | 162 | #include "resourceexampleconfig.h" |
163 | 163 | ||
164 | ResourceExampleConfig::ResourceExampleConfig( QWidget* parent, const char* name ) | 164 | ResourceExampleConfig::ResourceExampleConfig( QWidget* parent, const char* name ) |
165 | : KRES::ResourceConfigWidget( parent, name ) | 165 | : KRES::ResourceConfigWidget( parent, name ) |
166 | { | 166 | { |
167 | resize( 245, 115 ); | 167 | resize( 245, 115 ); |
168 | QGridLayout *mainLayout = new QGridLayout( this, 2, 2 ); | 168 | QGridLayout *mainLayout = new QGridLayout( this, 2, 2 ); |
169 | 169 | ||
170 | QLabel *label = new QLabel( i18n( "Location:" ), this ); | 170 | QLabel *label = new QLabel( i18n( "Location:" ), this ); |
171 | mHostEdit = new KLineEdit( this ); | 171 | mHostEdit = new KLineEdit( this ); |
172 | mainLayout->addWidget( label, 1, 0 ); | 172 | mainLayout->addWidget( label, 1, 0 ); |
173 | mainLayout->addWidget( mHostEdit, 1, 1 ); | 173 | mainLayout->addWidget( mHostEdit, 1, 1 ); |
174 | 174 | ||
175 | label = new QLabel( i18n( "Password:" ), this ); | 175 | label = new QLabel( i18n( "Password:" ), this ); |
176 | mPasswordEdit = new KLineEdit( this ); | 176 | mPasswordEdit = new KLineEdit( this ); |
177 | mPasswordEdit->setEchoMode( QLineEdit::Password ); | 177 | mPasswordEdit->setEchoMode( QLineEdit::Password ); |
178 | mainLayout->addWidget( label, 2, 0 ); | 178 | mainLayout->addWidget( label, 2, 0 ); |
179 | mainLayout->addWidget( mPasswordEdit, 2, 1 ); | 179 | mainLayout->addWidget( mPasswordEdit, 2, 1 ); |
180 | } | 180 | } |
181 | 181 | ||
182 | void ResourceExampleConfig::loadSettings( KRES::Resource *resource ) | 182 | void ResourceExampleConfig::loadSettings( KRES::Resource *resource ) |
183 | { | 183 | { |
184 | ResourceExample* res = dynamic_cast<ResourceExample *>( resource ); | 184 | ResourceExample* res = dynamic_cast<ResourceExample *>( resource ); |
185 | if (res) { | 185 | if (res) { |
186 | mHostEdit->setText( res->host() ); | 186 | mHostEdit->setText( res->host() ); |
187 | mPasswordEdit->setText( res->password() ); | 187 | mPasswordEdit->setText( res->password() ); |
188 | } else | 188 | } else |
189 | kdDebug(5700) << "ERROR: ResourceExampleConfig::loadSettings(): no ResourceExample, cast failed" << endl; | 189 | kdDebug(5700) << "ERROR: ResourceExampleConfig::loadSettings(): no ResourceExample, cast failed" << endl; |
190 | } | 190 | } |
191 | 191 | ||
192 | void ResourceExampleConfig::saveSettings( KRES::Resource *resource ) | 192 | void ResourceExampleConfig::saveSettings( KRES::Resource *resource ) |
193 | { | 193 | { |
194 | ResourceExample* res = dynamic_cast<ResourceExample *>( resource ); | 194 | ResourceExample* res = dynamic_cast<ResourceExample *>( resource ); |
195 | if (res) { | 195 | if (res) { |
196 | res->setHost(mHostEdit->text()); | 196 | res->setHost(mHostEdit->text()); |
197 | res->setPassword(mPasswordEdit->text()); | 197 | res->setPassword(mPasswordEdit->text()); |
198 | } else | 198 | } else |
199 | kdDebug(5700) << "ERROR: ResourceExampleConfig::saveSettings(): no ResourceExample, cast failed" << endl; | 199 | kdDebug(5700) << "ERROR: ResourceExampleConfig::saveSettings(): no ResourceExample, cast failed" << endl; |
200 | } | 200 | } |
201 | </pre> | 201 | </pre> |
202 | * <B>resourceexample.desktop</B>: | 202 | * <B>resourceexample.desktop</B>: |
203 | <pre> | 203 | <pre> |
204 | [Desktop Entry] | 204 | [Desktop Entry] |
205 | Type=Service | 205 | Type=Service |
206 | 206 | ||
207 | [Misc] | 207 | [Misc] |
208 | Encoding=UTF-8 | 208 | Encoding=UTF-8 |
209 | Name=Example Resource | 209 | Name=Example Resource |
210 | 210 | ||
211 | [Plugin] | 211 | [Plugin] |
212 | Type=exchange | 212 | Type=exchange |
213 | X-KDE-Library=resourceexample | 213 | X-KDE-Library=resourceexample |
214 | </pre> | 214 | </pre> |
215 | * <B>Makefile.am</B> | 215 | * <B>Makefile.am</B> |
216 | <pre> | 216 | <pre> |
217 | kde_module_LTLIBRARIES = resourceexample.la | 217 | kde_module_LTLIBRARIES = resourceexample.la |
218 | 218 | ||
219 | resourceexample_la_SOURCES = resourceexample.cpp resourceexampleconfig.cpp | 219 | resourceexample_la_SOURCES = resourceexample.cpp resourceexampleconfig.cpp |
220 | resourceexample_la_LDFLAGS= $(all_libraries) -module $(KDE_PLUGIN) | 220 | resourceexample_la_LDFLAGS= $(all_libraries) -module $(KDE_PLUGIN) |
221 | resourceexample_la_LIBADD= -lkderesources | 221 | resourceexample_la_LIBADD= -lkderesources |
222 | 222 | ||
223 | linkdir= $(kde_datadir)/resources/family | 223 | linkdir= $(kde_datadir)/resources/family |
224 | link_DATA= resourceexample.desktop | 224 | link_DATA= resourceexample.desktop |
225 | </pre> | 225 | </pre> |
226 | * | 226 | * |
227 | * | 227 | * |
228 | */ | 228 | */ |
229 | 229 | ||
230 | /** | 230 | /** |
231 | * A @ref Resource is a ... | 231 | * A @ref Resource is a ... |
232 | * | 232 | * |
233 | * A subclass should reimplement at least the constructor and the | 233 | * A subclass should reimplement at least the constructor and the |
234 | k * @ref writeConfig method. | 234 | k * @ref writeConfig method. |
235 | * | 235 | * |
236 | */ | 236 | */ |
237 | class Resource : public QObject | 237 | class Resource : public QObject |
238 | { | 238 | { |
239 | Q_OBJECT | 239 | Q_OBJECT |
240 | 240 | ||
241 | public: | 241 | public: |
242 | typedef QValueList<Resource *> List; | 242 | typedef Q3ValueList<Resource *> List; |
243 | 243 | ||
244 | /** | 244 | /** |
245 | * Constructor. Construct resource from config. | 245 | * Constructor. Construct resource from config. |
246 | * @param config Configuration to read persistence information from. | 246 | * @param config Configuration to read persistence information from. |
247 | * If config==0, create object using default settings. | 247 | * If config==0, create object using default settings. |
248 | */ | 248 | */ |
249 | Resource( const KConfig* config ); | 249 | Resource( const KConfig* config ); |
250 | 250 | ||
251 | /** | 251 | /** |
252 | * Destructor. | 252 | * Destructor. |
253 | */ | 253 | */ |
254 | virtual ~Resource(); | 254 | virtual ~Resource(); |
255 | 255 | ||
256 | /** | 256 | /** |
257 | * Write configuration information for this resource to a configuration | 257 | * Write configuration information for this resource to a configuration |
258 | * file. If you override this method, remember to call Resource::writeConfig | 258 | * file. If you override this method, remember to call Resource::writeConfig |
259 | * or Terrible Things(TM) will happen. | 259 | * or Terrible Things(TM) will happen. |
260 | * @param config Configuration to write persistence information to. | 260 | * @param config Configuration to write persistence information to. |
261 | */ | 261 | */ |
262 | virtual void writeConfig( KConfig* config ); | 262 | virtual void writeConfig( KConfig* config ); |
263 | 263 | ||
264 | /** | 264 | /** |
265 | * Open this resource, if it not already open. Increase the open | 265 | * Open this resource, if it not already open. Increase the open |
266 | * count of this object, and open the resource by calling @ref doOpen(). | 266 | * count of this object, and open the resource by calling @ref doOpen(). |
267 | * This method may block while another thread is concurrently opening | 267 | * This method may block while another thread is concurrently opening |
268 | * or closing the resource. | 268 | * or closing the resource. |
269 | * | 269 | * |
270 | * Returns true if the resource was already opened or if it was opened | 270 | * Returns true if the resource was already opened or if it was opened |
271 | * successfully; returns false if the resource was not opened successfully. | 271 | * successfully; returns false if the resource was not opened successfully. |
272 | */ | 272 | */ |
273 | bool open(); | 273 | bool open(); |
274 | 274 | ||
275 | /** | 275 | /** |
276 | * Decrease the open count of this object, and if the count reaches | 276 | * Decrease the open count of this object, and if the count reaches |
277 | * zero, close this resource by calling @ref doClose(). | 277 | * zero, close this resource by calling @ref doClose(). |
278 | * This method may block while another thread is concurrently closing | 278 | * This method may block while another thread is concurrently closing |
279 | * or opening the resource. | 279 | * or opening the resource. |
280 | */ | 280 | */ |
281 | void close(); | 281 | void close(); |
282 | 282 | ||
283 | /** | 283 | /** |
284 | * Returns whether the resource is open or not. | 284 | * Returns whether the resource is open or not. |
285 | */ | 285 | */ |
286 | bool isOpen() const; | 286 | bool isOpen() const; |
287 | 287 | ||
288 | /** | 288 | /** |
289 | * Returns a unique identifier. The identifier is unique for this resource. | 289 | * Returns a unique identifier. The identifier is unique for this resource. |
290 | * It is created when the resource is first created, and it is retained | 290 | * It is created when the resource is first created, and it is retained |
291 | * in the resource family configuration file for this resource. | 291 | * in the resource family configuration file for this resource. |
292 | * @return This resource's identifier | 292 | * @return This resource's identifier |
293 | */ | 293 | */ |
294 | QString identifier() const; | 294 | QString identifier() const; |
295 | 295 | ||
296 | /** | 296 | /** |
297 | * Returns the type of this resource. | 297 | * Returns the type of this resource. |
298 | */ | 298 | */ |
299 | QString type() const; | 299 | QString type() const; |
300 | 300 | ||
301 | /** | 301 | /** |
302 | * Mark the resource as read-only. You can override this method, | 302 | * Mark the resource as read-only. You can override this method, |
303 | * but also remember to call Resource::setReadOnly(). | 303 | * but also remember to call Resource::setReadOnly(). |
304 | */ | 304 | */ |
305 | virtual void setReadOnly( bool value ); | 305 | virtual void setReadOnly( bool value ); |
306 | 306 | ||
307 | /** | 307 | /** |
308 | * Returns, if the resource is read-only. | 308 | * Returns, if the resource is read-only. |
309 | */ | 309 | */ |
310 | virtual bool readOnly() const; | 310 | virtual bool readOnly() const; |
311 | 311 | ||
312 | void setIncludeInSync( bool value ); | 312 | void setIncludeInSync( bool value ); |
313 | bool includeInSync() const; | 313 | bool includeInSync() const; |
314 | /** | 314 | /** |
315 | * Set the name of resource.You can override this method, | 315 | * Set the name of resource.You can override this method, |
316 | * but also remember to call Resource::setResourceName(). | 316 | * but also remember to call Resource::setResourceName(). |
317 | */ | 317 | */ |
318 | virtual void setResourceName( const QString &name ); | 318 | virtual void setResourceName( const QString &name ); |
319 | 319 | ||
320 | /** | 320 | /** |
321 | * Returns the name of resource. | 321 | * Returns the name of resource. |
322 | */ | 322 | */ |
323 | virtual QString resourceName() const; | 323 | virtual QString resourceName() const; |
324 | 324 | ||
325 | /** | 325 | /** |
326 | Sets, if the resource is active. | 326 | Sets, if the resource is active. |
327 | */ | 327 | */ |
328 | void setActive( bool active ); | 328 | void setActive( bool active ); |
329 | 329 | ||
330 | /** | 330 | /** |
331 | Return true, if the resource is active. | 331 | Return true, if the resource is active. |
332 | */ | 332 | */ |
333 | bool isActive() const; | 333 | bool isActive() const; |
334 | 334 | ||
335 | friend class Factory; | 335 | friend class Factory; |
336 | friend class ManagerImpl; | 336 | friend class ManagerImpl; |
337 | 337 | ||
338 | /** | 338 | /** |