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 :
10 : #ifndef CMIS_DATASUPPLIER_HXX
11 : #define CMIS_DATASUPPLIER_HXX
12 :
13 : #include <vector>
14 :
15 : #include <ucbhelper/resultset.hxx>
16 :
17 : #include "children_provider.hxx"
18 :
19 : namespace cmis
20 : {
21 :
22 : class Content;
23 :
24 : struct ResultListEntry
25 : {
26 : com::sun::star::uno::Reference< com::sun::star::ucb::XContent > xContent;
27 : com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > xRow;
28 :
29 0 : ResultListEntry( com::sun::star::uno::Reference< com::sun::star::ucb::XContent > xCnt ) : xContent( xCnt )
30 : {
31 0 : }
32 :
33 0 : ~ResultListEntry()
34 0 : {
35 0 : }
36 : };
37 :
38 : typedef std::vector< ResultListEntry* > ResultList;
39 :
40 : class DataSupplier : public ucbhelper::ResultSetDataSupplier
41 : {
42 : private:
43 : ChildrenProvider* m_pChildrenProvider;
44 : sal_Int32 mnOpenMode;
45 : bool mbCountFinal;
46 : bool getData();
47 : ResultList maResults;
48 :
49 : public:
50 : DataSupplier( ChildrenProvider* pChildrenProvider, sal_Int32 nOpenMode );
51 :
52 : virtual ~DataSupplier();
53 :
54 : virtual OUString queryContentIdentifierString( sal_uInt32 nIndex ) SAL_OVERRIDE;
55 : virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier >
56 : queryContentIdentifier( sal_uInt32 nIndex ) SAL_OVERRIDE;
57 : virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent >
58 : queryContent( sal_uInt32 nIndex ) SAL_OVERRIDE;
59 :
60 : virtual bool getResult( sal_uInt32 nIndex ) SAL_OVERRIDE;
61 :
62 : virtual sal_uInt32 totalCount() SAL_OVERRIDE;
63 : virtual sal_uInt32 currentCount() SAL_OVERRIDE;
64 : virtual bool isCountFinal() SAL_OVERRIDE;
65 :
66 : virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow >
67 : queryPropertyValues( sal_uInt32 nIndex ) SAL_OVERRIDE;
68 : virtual void releasePropertyValues( sal_uInt32 nIndex ) SAL_OVERRIDE;
69 :
70 : virtual void close() SAL_OVERRIDE;
71 :
72 : virtual void validate()
73 : throw( com::sun::star::ucb::ResultSetException ) SAL_OVERRIDE;
74 : };
75 :
76 : }
77 :
78 : #endif
79 :
80 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|