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