Line data Source code
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 : #ifndef _FTP_FTPRESULTSETBASE_HXX_
20 : #define _FTP_FTPRESULTSETBASE_HXX_
21 :
22 : #include <vector>
23 : #include <cppuhelper/weak.hxx>
24 : #include <cppuhelper/interfacecontainer.hxx>
25 : #include <com/sun/star/lang/XComponent.hpp>
26 : #include <com/sun/star/ucb/XContentAccess.hpp>
27 : #include <com/sun/star/sdbc/XCloseable.hpp>
28 : #include <com/sun/star/beans/XPropertySet.hpp>
29 : #include <com/sun/star/sdbc/XResultSet.hpp>
30 : #include <com/sun/star/sdbc/XRow.hpp>
31 : #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
32 : #include <com/sun/star/ucb/NumberedSortingInfo.hpp>
33 : #include <com/sun/star/ucb/XContentProvider.hpp>
34 : #include <com/sun/star/ucb/XContentIdentifier.hpp>
35 : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
36 : #include <com/sun/star/beans/Property.hpp>
37 :
38 :
39 : namespace ftp {
40 :
41 : class ResultSetBase
42 : : public cppu::OWeakObject,
43 : public com::sun::star::lang::XComponent,
44 : public com::sun::star::sdbc::XRow,
45 : public com::sun::star::sdbc::XResultSet,
46 : public com::sun::star::sdbc::XCloseable,
47 : public com::sun::star::sdbc::XResultSetMetaDataSupplier,
48 : public com::sun::star::beans::XPropertySet,
49 : public com::sun::star::ucb::XContentAccess
50 : {
51 : public:
52 :
53 : ResultSetBase(const com::sun::star::uno::Reference<
54 : com::sun::star::uno::XComponentContext >& rxContext,
55 : const com::sun::star::uno::Reference<
56 : com::sun::star::ucb::XContentProvider >& xProvider,
57 : sal_Int32 nOpenMode,
58 : const com::sun::star::uno::Sequence<
59 : com::sun::star::beans::Property >& seq,
60 : const com::sun::star::uno::Sequence<
61 : com::sun::star::ucb::NumberedSortingInfo >& seqSort);
62 :
63 : virtual ~ResultSetBase();
64 :
65 : // XInterface
66 : virtual com::sun::star::uno::Any SAL_CALL
67 : queryInterface(
68 : const com::sun::star::uno::Type& aType )
69 : throw( com::sun::star::uno::RuntimeException);
70 :
71 : virtual void SAL_CALL
72 : acquire(
73 : void )
74 : throw();
75 :
76 : virtual void SAL_CALL
77 : release(
78 : void )
79 : throw();
80 :
81 : // XComponent
82 : virtual void SAL_CALL
83 : dispose(
84 : void )
85 : throw( com::sun::star::uno::RuntimeException );
86 :
87 : virtual void SAL_CALL
88 : addEventListener(
89 : const com::sun::star::uno::Reference<
90 : com::sun::star::lang::XEventListener >& xListener )
91 : throw( com::sun::star::uno::RuntimeException );
92 :
93 : virtual void SAL_CALL
94 : removeEventListener( const com::sun::star::uno::Reference<
95 : com::sun::star::lang::XEventListener >& aListener )
96 : throw( com::sun::star::uno::RuntimeException );
97 :
98 :
99 : // XRow
100 : virtual sal_Bool SAL_CALL
101 0 : wasNull(
102 : void )
103 : throw( com::sun::star::sdbc::SQLException,
104 : com::sun::star::uno::RuntimeException )
105 : {
106 0 : if( 0<= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
107 0 : m_nWasNull = m_aItems[m_nRow]->wasNull();
108 : else
109 0 : m_nWasNull = true;
110 0 : return m_nWasNull;
111 : }
112 :
113 : virtual rtl::OUString SAL_CALL
114 0 : getString(
115 : sal_Int32 columnIndex )
116 : throw( com::sun::star::sdbc::SQLException,
117 : com::sun::star::uno::RuntimeException)
118 : {
119 0 : rtl::OUString ret;
120 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
121 0 : ret = m_aItems[m_nRow]->getString( columnIndex );
122 :
123 0 : return ret;
124 : }
125 :
126 : virtual sal_Bool SAL_CALL
127 0 : getBoolean(
128 : sal_Int32 columnIndex )
129 : throw( com::sun::star::sdbc::SQLException,
130 : com::sun::star::uno::RuntimeException)
131 : {
132 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
133 0 : return m_aItems[m_nRow]->getBoolean( columnIndex );
134 : else
135 0 : return false;
136 : }
137 :
138 : virtual sal_Int8 SAL_CALL
139 0 : getByte(
140 : sal_Int32 columnIndex )
141 : throw( com::sun::star::sdbc::SQLException,
142 : com::sun::star::uno::RuntimeException)
143 : {
144 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
145 0 : return m_aItems[m_nRow]->getByte( columnIndex );
146 : else
147 0 : return sal_Int8( 0 );
148 : }
149 :
150 : virtual sal_Int16 SAL_CALL
151 0 : getShort(
152 : sal_Int32 columnIndex )
153 : throw(
154 : com::sun::star::sdbc::SQLException,
155 : com::sun::star::uno::RuntimeException)
156 : {
157 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
158 0 : return m_aItems[m_nRow]->getShort( columnIndex );
159 : else
160 0 : return sal_Int16( 0 );
161 : }
162 :
163 : virtual sal_Int32 SAL_CALL
164 0 : getInt(
165 : sal_Int32 columnIndex )
166 : throw( com::sun::star::sdbc::SQLException,
167 : com::sun::star::uno::RuntimeException )
168 : {
169 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
170 0 : return m_aItems[m_nRow]->getInt( columnIndex );
171 : else
172 0 : return sal_Int32( 0 );
173 : }
174 :
175 : virtual sal_Int64 SAL_CALL
176 0 : getLong(
177 : sal_Int32 columnIndex )
178 : throw( com::sun::star::sdbc::SQLException,
179 : com::sun::star::uno::RuntimeException)
180 : {
181 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
182 0 : return m_aItems[m_nRow]->getLong( columnIndex );
183 : else
184 0 : return sal_Int64( 0 );
185 : }
186 :
187 : virtual float SAL_CALL
188 0 : getFloat(
189 : sal_Int32 columnIndex )
190 : throw( com::sun::star::sdbc::SQLException,
191 : com::sun::star::uno::RuntimeException )
192 : {
193 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
194 0 : return m_aItems[m_nRow]->getFloat( columnIndex );
195 : else
196 0 : return float( 0 );
197 : }
198 :
199 : virtual double SAL_CALL
200 0 : getDouble(
201 : sal_Int32 columnIndex )
202 : throw( com::sun::star::sdbc::SQLException,
203 : com::sun::star::uno::RuntimeException )
204 : {
205 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
206 0 : return m_aItems[m_nRow]->getDouble( columnIndex );
207 : else
208 0 : return double( 0 );
209 : }
210 :
211 : virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
212 0 : getBytes(
213 : sal_Int32 columnIndex )
214 : throw( com::sun::star::sdbc::SQLException,
215 : com::sun::star::uno::RuntimeException )
216 : {
217 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
218 0 : return m_aItems[m_nRow]->getBytes( columnIndex );
219 : else
220 0 : return com::sun::star::uno::Sequence< sal_Int8 >();
221 : }
222 :
223 : virtual com::sun::star::util::Date SAL_CALL
224 0 : getDate(
225 : sal_Int32 columnIndex )
226 : throw( com::sun::star::sdbc::SQLException,
227 : com::sun::star::uno::RuntimeException)
228 : {
229 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
230 0 : return m_aItems[m_nRow]->getDate( columnIndex );
231 : else
232 0 : return com::sun::star::util::Date();
233 : }
234 :
235 : virtual com::sun::star::util::Time SAL_CALL
236 0 : getTime(
237 : sal_Int32 columnIndex )
238 : throw( com::sun::star::sdbc::SQLException,
239 : com::sun::star::uno::RuntimeException)
240 : {
241 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
242 0 : return m_aItems[m_nRow]->getTime( columnIndex );
243 : else
244 0 : return com::sun::star::util::Time();
245 : }
246 :
247 : virtual com::sun::star::util::DateTime SAL_CALL
248 0 : getTimestamp(
249 : sal_Int32 columnIndex )
250 : throw( com::sun::star::sdbc::SQLException,
251 : com::sun::star::uno::RuntimeException)
252 : {
253 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
254 0 : return m_aItems[m_nRow]->getTimestamp( columnIndex );
255 : else
256 0 : return com::sun::star::util::DateTime();
257 : }
258 :
259 :
260 : virtual com::sun::star::uno::Reference<
261 : com::sun::star::io::XInputStream > SAL_CALL
262 0 : getBinaryStream(
263 : sal_Int32 columnIndex )
264 : throw( com::sun::star::sdbc::SQLException,
265 : com::sun::star::uno::RuntimeException)
266 : {
267 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
268 0 : return m_aItems[m_nRow]->getBinaryStream( columnIndex );
269 : else
270 : return com::sun::star::uno::Reference<
271 0 : com::sun::star::io::XInputStream >();
272 : }
273 :
274 : virtual com::sun::star::uno::Reference<
275 : com::sun::star::io::XInputStream > SAL_CALL
276 0 : getCharacterStream(
277 : sal_Int32 columnIndex )
278 : throw( com::sun::star::sdbc::SQLException,
279 : com::sun::star::uno::RuntimeException)
280 : {
281 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
282 0 : return m_aItems[m_nRow]->getCharacterStream( columnIndex );
283 : else
284 : return com::sun::star::uno::Reference<
285 0 : com::sun::star::io::XInputStream >();
286 : }
287 :
288 : virtual com::sun::star::uno::Any SAL_CALL
289 0 : getObject(
290 : sal_Int32 columnIndex,
291 : const com::sun::star::uno::Reference<
292 : com::sun::star::container::XNameAccess >& typeMap )
293 : throw( com::sun::star::sdbc::SQLException,
294 : com::sun::star::uno::RuntimeException)
295 : {
296 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
297 0 : return m_aItems[m_nRow]->getObject( columnIndex,typeMap );
298 : else
299 0 : return com::sun::star::uno::Any();
300 : }
301 :
302 : virtual com::sun::star::uno::Reference<
303 : com::sun::star::sdbc::XRef > SAL_CALL
304 0 : getRef(
305 : sal_Int32 columnIndex )
306 : throw( com::sun::star::sdbc::SQLException,
307 : com::sun::star::uno::RuntimeException)
308 : {
309 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
310 0 : return m_aItems[m_nRow]->getRef( columnIndex );
311 : else
312 0 : return com::sun::star::uno::Reference< com::sun::star::sdbc::XRef >();
313 : }
314 :
315 : virtual com::sun::star::uno::Reference<
316 : com::sun::star::sdbc::XBlob > SAL_CALL
317 0 : getBlob(
318 : sal_Int32 columnIndex )
319 : throw( com::sun::star::sdbc::SQLException,
320 : com::sun::star::uno::RuntimeException)
321 : {
322 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
323 0 : return m_aItems[m_nRow]->getBlob( columnIndex );
324 : else
325 0 : return com::sun::star::uno::Reference< com::sun::star::sdbc::XBlob >();
326 : }
327 :
328 : virtual com::sun::star::uno::Reference<
329 : com::sun::star::sdbc::XClob > SAL_CALL
330 0 : getClob(
331 : sal_Int32 columnIndex )
332 : throw( com::sun::star::sdbc::SQLException,
333 : com::sun::star::uno::RuntimeException)
334 : {
335 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
336 0 : return m_aItems[m_nRow]->getClob( columnIndex );
337 : else
338 : return com::sun::star::uno::Reference<
339 0 : com::sun::star::sdbc::XClob >();
340 : }
341 :
342 : virtual com::sun::star::uno::Reference<
343 : com::sun::star::sdbc::XArray > SAL_CALL
344 0 : getArray(
345 : sal_Int32 columnIndex )
346 : throw( com::sun::star::sdbc::SQLException,
347 : com::sun::star::uno::RuntimeException)
348 : {
349 0 : if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
350 0 : return m_aItems[m_nRow]->getArray( columnIndex );
351 : else
352 : return com::sun::star::uno::Reference<
353 0 : com::sun::star::sdbc::XArray >();
354 : }
355 :
356 :
357 : // XResultSet
358 :
359 : virtual sal_Bool SAL_CALL
360 : next(
361 : void )
362 : throw( com::sun::star::sdbc::SQLException,
363 : com::sun::star::uno::RuntimeException);
364 :
365 : virtual sal_Bool SAL_CALL
366 : isBeforeFirst(
367 : void )
368 : throw( com::sun::star::sdbc::SQLException,
369 : com::sun::star::uno::RuntimeException);
370 :
371 : virtual sal_Bool SAL_CALL
372 : isAfterLast(
373 : void )
374 : throw( com::sun::star::sdbc::SQLException,
375 : com::sun::star::uno::RuntimeException);
376 :
377 : virtual sal_Bool SAL_CALL
378 : isFirst(
379 : void )
380 : throw( com::sun::star::sdbc::SQLException,
381 : com::sun::star::uno::RuntimeException);
382 :
383 : virtual sal_Bool SAL_CALL
384 : isLast(
385 : void )
386 : throw( com::sun::star::sdbc::SQLException,
387 : com::sun::star::uno::RuntimeException);
388 :
389 : virtual void SAL_CALL
390 : beforeFirst(
391 : void )
392 : throw( com::sun::star::sdbc::SQLException,
393 : com::sun::star::uno::RuntimeException);
394 :
395 : virtual void SAL_CALL
396 : afterLast(
397 : void )
398 : throw( com::sun::star::sdbc::SQLException,
399 : com::sun::star::uno::RuntimeException);
400 :
401 : virtual sal_Bool SAL_CALL
402 : first(
403 : void )
404 : throw( com::sun::star::sdbc::SQLException,
405 : com::sun::star::uno::RuntimeException);
406 :
407 : virtual sal_Bool SAL_CALL
408 : last(
409 : void )
410 : throw( com::sun::star::sdbc::SQLException,
411 : com::sun::star::uno::RuntimeException);
412 :
413 : virtual sal_Int32 SAL_CALL
414 : getRow(
415 : void )
416 : throw( com::sun::star::sdbc::SQLException,
417 : com::sun::star::uno::RuntimeException);
418 :
419 : virtual sal_Bool SAL_CALL
420 : absolute(
421 : sal_Int32 row )
422 : throw( com::sun::star::sdbc::SQLException,
423 : com::sun::star::uno::RuntimeException);
424 :
425 : virtual sal_Bool SAL_CALL
426 : relative(
427 : sal_Int32 rows )
428 : throw( com::sun::star::sdbc::SQLException,
429 : com::sun::star::uno::RuntimeException);
430 :
431 : virtual sal_Bool SAL_CALL
432 : previous(
433 : void )
434 : throw( com::sun::star::sdbc::SQLException,
435 : com::sun::star::uno::RuntimeException);
436 :
437 : virtual void SAL_CALL
438 : refreshRow(
439 : void )
440 : throw( com::sun::star::sdbc::SQLException,
441 : com::sun::star::uno::RuntimeException);
442 :
443 : virtual sal_Bool SAL_CALL
444 : rowUpdated(
445 : void )
446 : throw( com::sun::star::sdbc::SQLException,
447 : com::sun::star::uno::RuntimeException);
448 :
449 : virtual sal_Bool SAL_CALL
450 : rowInserted(
451 : void )
452 : throw( com::sun::star::sdbc::SQLException,
453 : com::sun::star::uno::RuntimeException);
454 :
455 : virtual sal_Bool SAL_CALL
456 : rowDeleted(
457 : void )
458 : throw( com::sun::star::sdbc::SQLException,
459 : com::sun::star::uno::RuntimeException);
460 :
461 :
462 : virtual com::sun::star::uno::Reference<
463 : com::sun::star::uno::XInterface > SAL_CALL
464 : getStatement(
465 : void )
466 : throw( com::sun::star::sdbc::SQLException,
467 : com::sun::star::uno::RuntimeException);
468 :
469 : // XCloseable
470 :
471 : virtual void SAL_CALL
472 : close(
473 : void )
474 : throw( com::sun::star::sdbc::SQLException,
475 : com::sun::star::uno::RuntimeException);
476 :
477 : // XContentAccess
478 :
479 : virtual rtl::OUString SAL_CALL
480 : queryContentIdentifierString(
481 : void )
482 : throw( com::sun::star::uno::RuntimeException );
483 :
484 : virtual com::sun::star::uno::Reference<
485 : com::sun::star::ucb::XContentIdentifier > SAL_CALL
486 : queryContentIdentifier(
487 : void )
488 : throw( com::sun::star::uno::RuntimeException );
489 :
490 : virtual com::sun::star::uno::Reference<
491 : com::sun::star::ucb::XContent > SAL_CALL
492 : queryContent(
493 : void )
494 : throw( com::sun::star::uno::RuntimeException );
495 :
496 : // XResultSetMetaDataSupplier
497 : virtual com::sun::star::uno::Reference<
498 : com::sun::star::sdbc::XResultSetMetaData > SAL_CALL
499 : getMetaData(
500 : void )
501 : throw( com::sun::star::sdbc::SQLException,
502 : com::sun::star::uno::RuntimeException);
503 :
504 :
505 : // XPropertySet
506 : virtual com::sun::star::uno::Reference<
507 : com::sun::star::beans::XPropertySetInfo > SAL_CALL
508 : getPropertySetInfo()
509 : throw( com::sun::star::uno::RuntimeException);
510 :
511 : virtual void SAL_CALL setPropertyValue(
512 : const rtl::OUString& aPropertyName,
513 : const com::sun::star::uno::Any& aValue )
514 : throw( com::sun::star::beans::UnknownPropertyException,
515 : com::sun::star::beans::PropertyVetoException,
516 : com::sun::star::lang::IllegalArgumentException,
517 : com::sun::star::lang::WrappedTargetException,
518 : com::sun::star::uno::RuntimeException);
519 :
520 : virtual com::sun::star::uno::Any SAL_CALL
521 : getPropertyValue(
522 : const rtl::OUString& PropertyName )
523 : throw( com::sun::star::beans::UnknownPropertyException,
524 : com::sun::star::lang::WrappedTargetException,
525 : com::sun::star::uno::RuntimeException);
526 :
527 : virtual void SAL_CALL
528 : addPropertyChangeListener(
529 : const rtl::OUString& aPropertyName,
530 : const com::sun::star::uno::Reference<
531 : com::sun::star::beans::XPropertyChangeListener >& xListener )
532 : throw( com::sun::star::beans::UnknownPropertyException,
533 : com::sun::star::lang::WrappedTargetException,
534 : com::sun::star::uno::RuntimeException);
535 :
536 : virtual void SAL_CALL
537 : removePropertyChangeListener(
538 : const rtl::OUString& aPropertyName,
539 : const com::sun::star::uno::Reference<
540 : com::sun::star::beans::XPropertyChangeListener >& aListener )
541 : throw( com::sun::star::beans::UnknownPropertyException,
542 : com::sun::star::lang::WrappedTargetException,
543 : com::sun::star::uno::RuntimeException);
544 :
545 : virtual void SAL_CALL
546 : addVetoableChangeListener(
547 : const rtl::OUString& PropertyName,
548 : const com::sun::star::uno::Reference<
549 : com::sun::star::beans::XVetoableChangeListener >& aListener )
550 : throw( com::sun::star::beans::UnknownPropertyException,
551 : com::sun::star::lang::WrappedTargetException,
552 : com::sun::star::uno::RuntimeException);
553 :
554 : virtual void SAL_CALL removeVetoableChangeListener(
555 : const rtl::OUString& PropertyName,
556 : const com::sun::star::uno::Reference<
557 : com::sun::star::beans::XVetoableChangeListener >& aListener )
558 : throw( com::sun::star::beans::UnknownPropertyException,
559 : com::sun::star::lang::WrappedTargetException,
560 : com::sun::star::uno::RuntimeException);
561 :
562 : protected:
563 :
564 : com::sun::star::uno::Reference<
565 : com::sun::star::uno::XComponentContext > m_xContext;
566 : com::sun::star::uno::Reference<
567 : com::sun::star::ucb::XContentProvider > m_xProvider;
568 : sal_Int32 m_nRow;
569 : sal_Bool m_nWasNull;
570 : sal_Int32 m_nOpenMode;
571 : sal_Bool m_bRowCountFinal;
572 :
573 : typedef std::vector< com::sun::star::uno::Reference<
574 : com::sun::star::ucb::XContentIdentifier > > IdentSet;
575 : typedef std::vector< com::sun::star::uno::Reference<
576 : com::sun::star::sdbc::XRow > > ItemSet;
577 : typedef std::vector< rtl::OUString >
578 : PathSet;
579 :
580 : IdentSet m_aIdents;
581 : ItemSet m_aItems;
582 : PathSet m_aPath;
583 :
584 : com::sun::star::uno::Sequence<
585 : com::sun::star::beans::Property > m_sProperty;
586 : com::sun::star::uno::Sequence<
587 : com::sun::star::ucb::NumberedSortingInfo > m_sSortingInfo;
588 :
589 : osl::Mutex m_aMutex;
590 : cppu::OInterfaceContainerHelper* m_pDisposeEventListeners;
591 :
592 : cppu::OInterfaceContainerHelper* m_pRowCountListeners;
593 : cppu::OInterfaceContainerHelper* m_pIsFinalListeners;
594 : };
595 :
596 :
597 : } // end namespace fileaccess
598 :
599 :
600 : #endif
601 :
602 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|