xref: /AOO41X/main/ucb/source/cacher/cacheddynamicresultset.hxx (revision 6df1ea1f75e32b7bdb9b43f28f6c06e1fbd0c5ce)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _CACHED_DYNAMIC_RESULTSET_HXX
25 #define _CACHED_DYNAMIC_RESULTSET_HXX
26 
27 #include <dynamicresultsetwrapper.hxx>
28 #include <com/sun/star/ucb/XContentIdentifierMapping.hpp>
29 #include <com/sun/star/ucb/XCachedDynamicResultSetFactory.hpp>
30 
31 #define CACHED_DRS_SERVICE_NAME "com.sun.star.ucb.CachedDynamicResultSet"
32 #define CACHED_DRS_FACTORY_NAME "com.sun.star.ucb.CachedDynamicResultSetFactory"
33 
34 //=========================================================================
35 
36 class CachedDynamicResultSet
37                 : public DynamicResultSetWrapper
38                 , public com::sun::star::lang::XTypeProvider
39                 , public com::sun::star::lang::XServiceInfo
40 {
41     com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifierMapping >
42                             m_xContentIdentifierMapping;
43 
44 protected:
45     virtual void SAL_CALL
46     impl_InitResultSetOne( const com::sun::star::uno::Reference<
47                 com::sun::star::sdbc::XResultSet >& xResultSet );
48     virtual void SAL_CALL
49     impl_InitResultSetTwo( const com::sun::star::uno::Reference<
50                 com::sun::star::sdbc::XResultSet >& xResultSet );
51 
52 public:
53     CachedDynamicResultSet( com::sun::star::uno::Reference<
54                         com::sun::star::ucb::XDynamicResultSet > xOrigin
55         , const com::sun::star::uno::Reference<
56                         com::sun::star::ucb::XContentIdentifierMapping > & xContentMapping
57         , const com::sun::star::uno::Reference<
58                         com::sun::star::lang::XMultiServiceFactory > & xSMgr );
59 
60     virtual ~CachedDynamicResultSet();
61 
62 
63     //-----------------------------------------------------------------
64     // XInterface inherited
65     //-----------------------------------------------------------------
66     XINTERFACE_DECL()
67     //-----------------------------------------------------------------
68     // XTypeProvider
69     //-----------------------------------------------------------------
70     XTYPEPROVIDER_DECL()
71     //-----------------------------------------------------------------
72     // XServiceInfo
73     //-----------------------------------------------------------------
74     XSERVICEINFO_NOFACTORY_DECL()
75 
76     //-----------------------------------------------------------------
77     // own methods ( inherited )
78     //-----------------------------------------------------------------
79     virtual void SAL_CALL
80     impl_disposing( const com::sun::star::lang::EventObject& Source )
81         throw( com::sun::star::uno::RuntimeException );
82 };
83 
84 //=========================================================================
85 
86 class CachedDynamicResultSetFactory
87                 : public cppu::OWeakObject
88                 , public com::sun::star::lang::XTypeProvider
89                 , public com::sun::star::lang::XServiceInfo
90                 , public com::sun::star::ucb::XCachedDynamicResultSetFactory
91 {
92 protected:
93     com::sun::star::uno::Reference<
94         com::sun::star::lang::XMultiServiceFactory >    m_xSMgr;
95 
96 public:
97 
98     CachedDynamicResultSetFactory(
99         const com::sun::star::uno::Reference<
100         com::sun::star::lang::XMultiServiceFactory > & rSMgr);
101 
102     virtual ~CachedDynamicResultSetFactory();
103 
104     //-----------------------------------------------------------------
105     // XInterface
106     XINTERFACE_DECL()
107 
108     //-----------------------------------------------------------------
109     // XTypeProvider
110     XTYPEPROVIDER_DECL()
111 
112     //-----------------------------------------------------------------
113     // XServiceInfo
114     XSERVICEINFO_DECL()
115 
116     //-----------------------------------------------------------------
117     // XCachedDynamicResultSetFactory
118 
119     virtual com::sun::star::uno::Reference<
120                 com::sun::star::ucb::XDynamicResultSet > SAL_CALL
121     createCachedDynamicResultSet(
122                   const com::sun::star::uno::Reference<
123                     com::sun::star::ucb::XDynamicResultSet > &
124                         SourceStub
125                 , const com::sun::star::uno::Reference<
126                     com::sun::star::ucb::XContentIdentifierMapping > &
127                         ContentIdentifierMapping
128                 )
129             throw( com::sun::star::uno::RuntimeException );
130 };
131 
132 #endif
133 
134