1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef _GVFS_UCP_RESULTSET_HXX
28 #define _GVFS_UCP_RESULTSET_HXX
29 
30 #include <rtl/ref.hxx>
31 #include <ucbhelper/resultset.hxx>
32 #include <ucbhelper/resultsethelper.hxx>
33 #include "gvfs_content.hxx"
34 
35 namespace gvfs {
36 
37 class DynamicResultSet : public ::ucbhelper::ResultSetImplHelper
38 {
39     rtl::Reference< Content > m_xContent;
40     com::sun::star::uno::Reference<
41         com::sun::star::ucb::XCommandEnvironment > m_xEnv;
42 
43 private:
44     virtual void initStatic();
45     virtual void initDynamic();
46 
47 public:
48     DynamicResultSet( const com::sun::star::uno::Reference<
49                         com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
50                       const rtl::Reference< Content >& rxContent,
51                       const com::sun::star::ucb::OpenCommandArgument2& rCommand,
52                       const com::sun::star::uno::Reference<
53                         com::sun::star::ucb::XCommandEnvironment >& rxEnv );
54 };
55 
56 
57 struct DataSupplier_Impl;
58 class DataSupplier : public ucbhelper::ResultSetDataSupplier
59 {
60 private:
61     gvfs::DataSupplier_Impl *m_pImpl;
62     sal_Bool getData();
63 
64 public:
65     DataSupplier( const com::sun::star::uno::Reference<
66               com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
67               const rtl::Reference< Content >& rContent,
68               sal_Int32 nOpenMode);
69 
70     virtual ~DataSupplier();
71 
72     virtual rtl::OUString queryContentIdentifierString( sal_uInt32 nIndex );
73     virtual com::sun::star::uno::Reference<
74                 com::sun::star::ucb::XContentIdentifier >
75                           queryContentIdentifier( sal_uInt32 nIndex );
76     virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent >
77                           queryContent( sal_uInt32 nIndex );
78 
79     virtual sal_Bool      getResult( sal_uInt32 nIndex );
80 
81     virtual sal_uInt32    totalCount();
82     virtual sal_uInt32    currentCount();
83     virtual sal_Bool      isCountFinal();
84 
85     virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow >
86                           queryPropertyValues( sal_uInt32 nIndex  );
87     virtual void          releasePropertyValues( sal_uInt32 nIndex );
88     virtual void          close();
89     virtual void          validate()
90         throw( com::sun::star::ucb::ResultSetException );
91 };
92 
93 }
94 
95 #endif
96