Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * Copyright 2012 LibreOffice contributors.
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 : : com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xSMgr;
45 : : sal_Int32 mnOpenMode;
46 : : bool mbCountFinal;
47 : : bool getData();
48 : : ResultList maResults;
49 : :
50 : : public:
51 : : DataSupplier( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
52 : : ChildrenProvider* pChildrenProvider, sal_Int32 nOpenMode );
53 : :
54 : : virtual ~DataSupplier();
55 : :
56 : : virtual rtl::OUString queryContentIdentifierString( sal_uInt32 nIndex );
57 : : virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier >
58 : : queryContentIdentifier( sal_uInt32 nIndex );
59 : : virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent >
60 : : queryContent( sal_uInt32 nIndex );
61 : :
62 : : virtual sal_Bool getResult( sal_uInt32 nIndex );
63 : :
64 : : virtual sal_uInt32 totalCount();
65 : : virtual sal_uInt32 currentCount();
66 : : virtual sal_Bool isCountFinal();
67 : :
68 : : virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow >
69 : : queryPropertyValues( sal_uInt32 nIndex );
70 : : virtual void releasePropertyValues( sal_uInt32 nIndex );
71 : :
72 : : virtual void close();
73 : :
74 : : virtual void validate()
75 : : throw( com::sun::star::ucb::ResultSetException );
76 : : };
77 : :
78 : : }
79 : :
80 : : #endif
81 : :
82 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|