xref: /AOO41X/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx (revision 8590a0fdd306f78ee72b863c64cbcf09c28509eb)
1*8590a0fdSAndre Fischer /**************************************************************
2*8590a0fdSAndre Fischer  *
3*8590a0fdSAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
4*8590a0fdSAndre Fischer  * or more contributor license agreements.  See the NOTICE file
5*8590a0fdSAndre Fischer  * distributed with this work for additional information
6*8590a0fdSAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
7*8590a0fdSAndre Fischer  * to you under the Apache License, Version 2.0 (the
8*8590a0fdSAndre Fischer  * "License"); you may not use this file except in compliance
9*8590a0fdSAndre Fischer  * with the License.  You may obtain a copy of the License at
10*8590a0fdSAndre Fischer  *
11*8590a0fdSAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
12*8590a0fdSAndre Fischer  *
13*8590a0fdSAndre Fischer  * Unless required by applicable law or agreed to in writing,
14*8590a0fdSAndre Fischer  * software distributed under the License is distributed on an
15*8590a0fdSAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*8590a0fdSAndre Fischer  * KIND, either express or implied.  See the License for the
17*8590a0fdSAndre Fischer  * specific language governing permissions and limitations
18*8590a0fdSAndre Fischer  * under the License.
19*8590a0fdSAndre Fischer  *
20*8590a0fdSAndre Fischer  *************************************************************/
21*8590a0fdSAndre Fischer 
22*8590a0fdSAndre Fischer #ifndef INCLUDED_SERFPROPFINDREQPROCIMPL_HXX
23*8590a0fdSAndre Fischer #define INCLUDED_SERFPROPFINDREQPROCIMPL_HXX
24*8590a0fdSAndre Fischer 
25*8590a0fdSAndre Fischer #include <SerfRequestProcessorImpl.hxx>
26*8590a0fdSAndre Fischer 
27*8590a0fdSAndre Fischer #include <vector>
28*8590a0fdSAndre Fischer #include <rtl/ustring.hxx>
29*8590a0fdSAndre Fischer #include "DAVTypes.hxx"
30*8590a0fdSAndre Fischer #include "DAVResource.hxx"
31*8590a0fdSAndre Fischer 
32*8590a0fdSAndre Fischer #include <SerfInputStream.hxx>
33*8590a0fdSAndre Fischer 
34*8590a0fdSAndre Fischer namespace http_dav_ucp
35*8590a0fdSAndre Fischer {
36*8590a0fdSAndre Fischer 
37*8590a0fdSAndre Fischer class SerfPropFindReqProcImpl : public SerfRequestProcessorImpl
38*8590a0fdSAndre Fischer {
39*8590a0fdSAndre Fischer public:
40*8590a0fdSAndre Fischer     SerfPropFindReqProcImpl( const char* inPath,
41*8590a0fdSAndre Fischer                              const Depth inDepth,
42*8590a0fdSAndre Fischer                              const std::vector< ::rtl::OUString > & inPropNames,
43*8590a0fdSAndre Fischer                              std::vector< DAVResource > & ioResources );
44*8590a0fdSAndre Fischer 
45*8590a0fdSAndre Fischer     SerfPropFindReqProcImpl( const char* inPath,
46*8590a0fdSAndre Fischer                              const Depth inDepth,
47*8590a0fdSAndre Fischer                              std::vector< DAVResourceInfo > & ioResInfo );
48*8590a0fdSAndre Fischer 
49*8590a0fdSAndre Fischer     virtual ~SerfPropFindReqProcImpl();
50*8590a0fdSAndre Fischer 
51*8590a0fdSAndre Fischer     virtual
52*8590a0fdSAndre Fischer     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
53*8590a0fdSAndre Fischer 
54*8590a0fdSAndre Fischer     virtual
55*8590a0fdSAndre Fischer     bool processSerfResponseBucket( serf_request_t * inSerfRequest,
56*8590a0fdSAndre Fischer                                     serf_bucket_t * inSerfResponseBucket,
57*8590a0fdSAndre Fischer                                     apr_pool_t * inAprPool,
58*8590a0fdSAndre Fischer                                     apr_status_t & outStatus );
59*8590a0fdSAndre Fischer 
60*8590a0fdSAndre Fischer private:
61*8590a0fdSAndre Fischer     void init( const Depth inDepth );
62*8590a0fdSAndre Fischer 
63*8590a0fdSAndre Fischer     const char* mDepthStr;
64*8590a0fdSAndre Fischer     const std::vector< ::rtl::OUString > * mpPropNames;
65*8590a0fdSAndre Fischer     std::vector< DAVResource > * mpResources;
66*8590a0fdSAndre Fischer     std::vector< DAVResourceInfo > * mpResInfo;
67*8590a0fdSAndre Fischer 
68*8590a0fdSAndre Fischer     const bool mbOnlyPropertyNames;
69*8590a0fdSAndre Fischer     com::sun::star::uno::Reference< SerfInputStream > xInputStream;
70*8590a0fdSAndre Fischer };
71*8590a0fdSAndre Fischer 
72*8590a0fdSAndre Fischer } // namespace http_dav_ucp
73*8590a0fdSAndre Fischer 
74*8590a0fdSAndre Fischer #endif // INCLUDED_SERFPROPFINDREQPROCIMPL_HXX
75