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 #ifndef INCLUDED_SERFREQUESTPROCESSORIMPLFAC_HXX
23 #define INCLUDED_SERFREQUESTPROCESSORIMPLFAC_HXX
24 
25 #include <vector>
26 #include <rtl/ustring.hxx>
27 #include "DAVTypes.hxx"
28 #include "DAVResource.hxx"
29 
30 #include "SerfTypes.hxx"
31 #include "SerfRequestProcessorImpl.hxx"
32 #include "SerfInputStream.hxx"
33 #include <com/sun/star/io/XOutputStream.hpp>
34 
35 namespace http_dav_ucp
36 {
37     SerfRequestProcessorImpl* createPropFindReqProcImpl( const char* inPath,
38                                                          const DAVRequestHeaders& inRequestHeaders,
39                                                          const Depth inDepth,
40                                                          const std::vector< ::rtl::OUString > & inPropNames,
41                                                          std::vector< DAVResource > & ioResources );
42 
43     SerfRequestProcessorImpl* createPropFindReqProcImpl( const char* inPath,
44                                                          const DAVRequestHeaders& inRequestHeaders,
45                                                          const Depth inDepth,
46                                                          std::vector< DAVResourceInfo > & ioResInfo );
47 
48     SerfRequestProcessorImpl* createPropPatchReqProcImpl( const char* inPath,
49                                                           const DAVRequestHeaders& inRequestHeaders,
50                                                           const std::vector< ProppatchValue > & inProperties,
51                                                           const char* inLockToken );
52 
53     SerfRequestProcessorImpl* createGetReqProcImpl( const char* inPath,
54                                                     const DAVRequestHeaders& inRequestHeaders,
55                                                     const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm );
56 
57     SerfRequestProcessorImpl* createGetReqProcImpl( const char* inPath,
58                                                     const DAVRequestHeaders& inRequestHeaders,
59                                                     const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm,
60                                                     const std::vector< ::rtl::OUString > & inHeaderNames,
61                                                     DAVResource& ioResource );
62 
63     SerfRequestProcessorImpl* createGetReqProcImpl( const char* inPath,
64                                                     const DAVRequestHeaders& inRequestHeaders,
65                                                     const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm );
66 
67     SerfRequestProcessorImpl* createGetReqProcImpl( const char* inPath,
68                                                     const DAVRequestHeaders& inRequestHeaders,
69                                                     const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm,
70                                                     const std::vector< ::rtl::OUString > & inHeaderNames,
71                                                     DAVResource& ioResource );
72 
73     SerfRequestProcessorImpl* createHeadReqProcImpl( const char* inPath,
74                                                      const DAVRequestHeaders& inRequestHeaders,
75                                                      const std::vector< ::rtl::OUString > & inHeaderNames,
76                                                      DAVResource& ioResource );
77 
78     SerfRequestProcessorImpl* createPutReqProcImpl( const char* inPath,
79                                                     const DAVRequestHeaders& inRequestHeaders,
80                                                     const char* inData,
81                                                     const char* inLockToken,
82                                                     apr_size_t inDataLen );
83 
84     SerfRequestProcessorImpl* createPostReqProcImpl( const char* inPath,
85                                                      const DAVRequestHeaders& inRequestHeaders,
86                                                      const char* inData,
87                                                      apr_size_t inDataLen,
88                                                      const char* inLockToken,
89                                                      const char* inContentType,
90                                                      const char* inReferer,
91                                                      const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm );
92 
93     SerfRequestProcessorImpl* createPostReqProcImpl( const char* inPath,
94                                                      const DAVRequestHeaders& inRequestHeaders,
95                                                      const char* inData,
96                                                      apr_size_t inDataLen,
97                                                      const char* inLockToken,
98                                                      const char* inContentType,
99                                                      const char* inReferer,
100                                                      const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm );
101 
102     SerfRequestProcessorImpl* createDeleteReqProcImpl( const char* inPath,
103                                                        const DAVRequestHeaders& inRequestHeaders,
104                                                        const char * inLockToken );
105 
106     SerfRequestProcessorImpl* createMkColReqProcImpl( const char* inPath,
107                                                       const DAVRequestHeaders& inRequestHeaders,
108                                                       const char * inLockToken );
109 
110     SerfRequestProcessorImpl* createCopyReqProcImpl( const char* inSourcePath,
111                                                      const DAVRequestHeaders& inRequestHeaders,
112                                                      const char* inDestinationPath,
113                                                      const bool inOverwrite,
114                                                      const char* inLockToken );
115 
116     SerfRequestProcessorImpl* createMoveReqProcImpl( const char* inSourcePath,
117                                                      const DAVRequestHeaders& inRequestHeaders,
118                                                      const char* inDestinationPath,
119                                                      const bool inOverwrite,
120                                                      const char* inLockToken );
121 
122     SerfRequestProcessorImpl* createLockReqProcImpl( const char* inSourcePath,
123                                                      const DAVRequestHeaders& inRequestHeaders,
124                                                      const ucb::Lock& inLock,
125                                                      const char* inTimeout,
126                                                      DAVPropertyValue & outLock );
127 
128     SerfRequestProcessorImpl* createLockRefreshProcImpl( const char* inSourcePath,
129                                                      const DAVRequestHeaders& inRequestHeaders,
130                                                      const ucb::Lock& inLock,
131                                                      const char* inToken,
132                                                      const char* inTimeout,
133                                                      DAVPropertyValue & outLock );
134 
135     SerfRequestProcessorImpl* createUnlockProcImpl( const char* inSourcePath,
136                                                      const DAVRequestHeaders& inRequestHeaders,
137                                                      const ucb::Lock& inLock,
138                                                      const char* inToken );
139 
140 } // namespace http_dav_ucp
141 
142 #endif // INCLUDED_SERFREQUESTPROCESSORIMPLFAC_HXX
143