1*3edf6992SAndrea Pescetti /**************************************************************
2*3edf6992SAndrea Pescetti  *
3*3edf6992SAndrea Pescetti  * Licensed to the Apache Software Foundation (ASF) under one
4*3edf6992SAndrea Pescetti  * or more contributor license agreements.  See the NOTICE file
5*3edf6992SAndrea Pescetti  * distributed with this work for additional information
6*3edf6992SAndrea Pescetti  * regarding copyright ownership.  The ASF licenses this file
7*3edf6992SAndrea Pescetti  * to you under the Apache License, Version 2.0 (the
8*3edf6992SAndrea Pescetti  * "License"); you may not use this file except in compliance
9*3edf6992SAndrea Pescetti  * with the License.  You may obtain a copy of the License at
10*3edf6992SAndrea Pescetti  *
11*3edf6992SAndrea Pescetti  *   http://www.apache.org/licenses/LICENSE-2.0
12*3edf6992SAndrea Pescetti  *
13*3edf6992SAndrea Pescetti  * Unless required by applicable law or agreed to in writing,
14*3edf6992SAndrea Pescetti  * software distributed under the License is distributed on an
15*3edf6992SAndrea Pescetti  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3edf6992SAndrea Pescetti  * KIND, either express or implied.  See the License for the
17*3edf6992SAndrea Pescetti  * specific language governing permissions and limitations
18*3edf6992SAndrea Pescetti  * under the License.
19*3edf6992SAndrea Pescetti  *
20*3edf6992SAndrea Pescetti  *************************************************************/
21*3edf6992SAndrea Pescetti 
22*3edf6992SAndrea Pescetti #ifndef INCLUDED_SERFLOCKREQPROCIMPL_HXX
23*3edf6992SAndrea Pescetti #define INCLUDED_SERFLOCKREQPROCIMPL_HXX
24*3edf6992SAndrea Pescetti 
25*3edf6992SAndrea Pescetti #include "SerfTypes.hxx"
26*3edf6992SAndrea Pescetti #include "SerfRequestProcessorImpl.hxx"
27*3edf6992SAndrea Pescetti 
28*3edf6992SAndrea Pescetti #include "SerfInputStream.hxx"
29*3edf6992SAndrea Pescetti 
30*3edf6992SAndrea Pescetti #include <vector>
31*3edf6992SAndrea Pescetti #include <rtl/ustring.hxx>
32*3edf6992SAndrea Pescetti #include "SerfTypes.hxx"
33*3edf6992SAndrea Pescetti #include "DAVTypes.hxx"
34*3edf6992SAndrea Pescetti #include "DAVResource.hxx"
35*3edf6992SAndrea Pescetti 
36*3edf6992SAndrea Pescetti namespace http_dav_ucp
37*3edf6992SAndrea Pescetti {
38*3edf6992SAndrea Pescetti 
39*3edf6992SAndrea Pescetti     class SerfLockReqProcImpl : public SerfRequestProcessorImpl
40*3edf6992SAndrea Pescetti     {
41*3edf6992SAndrea Pescetti 
42*3edf6992SAndrea Pescetti     protected:
43*3edf6992SAndrea Pescetti         std::vector< DAVResource > mpResources;
44*3edf6992SAndrea Pescetti         const ucb::Lock     mLock;
45*3edf6992SAndrea Pescetti         const char*         mDepthStr;
46*3edf6992SAndrea Pescetti         const char*         mLockScope;
47*3edf6992SAndrea Pescetti         const char*         mTimeout;
48*3edf6992SAndrea Pescetti         DAVPropertyValue*   mLockObtained;
49*3edf6992SAndrea Pescetti         com::sun::star::uno::Reference< SerfInputStream > xInputStream;
50*3edf6992SAndrea Pescetti 
51*3edf6992SAndrea Pescetti     public:
52*3edf6992SAndrea Pescetti         SerfLockReqProcImpl( const char* inSourcePath,
53*3edf6992SAndrea Pescetti                              const DAVRequestHeaders& inRequestHeaders,
54*3edf6992SAndrea Pescetti                              const ucb::Lock& inLock,
55*3edf6992SAndrea Pescetti                              const char* inTimeout,
56*3edf6992SAndrea Pescetti                              DAVPropertyValue & outLock);
57*3edf6992SAndrea Pescetti 
58*3edf6992SAndrea Pescetti         virtual ~SerfLockReqProcImpl();
59*3edf6992SAndrea Pescetti 
60*3edf6992SAndrea Pescetti         virtual
61*3edf6992SAndrea Pescetti         serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
62*3edf6992SAndrea Pescetti 
63*3edf6992SAndrea Pescetti     protected:
64*3edf6992SAndrea Pescetti         virtual
65*3edf6992SAndrea Pescetti         void processChunkOfResponseData( const char* data, apr_size_t len );
66*3edf6992SAndrea Pescetti 
67*3edf6992SAndrea Pescetti         virtual
68*3edf6992SAndrea Pescetti         void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
69*3edf6992SAndrea Pescetti 
70*3edf6992SAndrea Pescetti     };
71*3edf6992SAndrea Pescetti 
72*3edf6992SAndrea Pescetti } // namespace http_dav_ucp
73*3edf6992SAndrea Pescetti 
74*3edf6992SAndrea Pescetti #endif // INCLUDED_SERFLOCKREQPROCIMPL_HXX
75