Package caldavclientlibrary :: Package protocol :: Package webdav :: Module propfindbase
[hide private]
[frames] | no frames]

Source Code for Module caldavclientlibrary.protocol.webdav.propfindbase

 1  ## 
 2  # Copyright (c) 2007-2016 Apple Inc. All rights reserved. 
 3  # 
 4  # Licensed under the Apache License, Version 2.0 (the "License"); 
 5  # you may not use this file except in compliance with the License. 
 6  # You may obtain a copy of the License at 
 7  # 
 8  # http://www.apache.org/licenses/LICENSE-2.0 
 9  # 
10  # Unless required by applicable law or agreed to in writing, software 
11  # distributed under the License is distributed on an "AS IS" BASIS, 
12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  # See the License for the specific language governing permissions and 
14  # limitations under the License. 
15  ## 
16   
17  from caldavclientlibrary.protocol.webdav.requestresponse import RequestResponse 
18  from caldavclientlibrary.protocol.webdav.definitions import methods 
19  from caldavclientlibrary.protocol.webdav.definitions import headers 
20  from caldavclientlibrary.protocol.http.data.string import RequestDataString 
21  from StringIO import StringIO 
22   
23 -class PropFindBase(RequestResponse):
24
25 - def __init__(self, session, url, depth):
26 assert(depth in (headers.Depth0, headers.Depth1, headers.DepthInfinity)) 27 28 super(PropFindBase, self).__init__(session, methods.PROPFIND, url) 29 self.depth = depth
30
31 - def initRequestData(self):
32 # Write XML info to a string 33 os = StringIO() 34 self.generateXML(os); 35 self.request_data = RequestDataString(os.getvalue(), "text/xml; charset=utf-8");
36
37 - def setOutput(self, response_data):
38 self.response_data = response_data
39
40 - def addHeaders(self, hdrs):
41 # Do default 42 super(PropFindBase, self).addHeaders(hdrs) 43 44 # Add depth header 45 hdrs.append((headers.Depth, self.depth))
46
47 - def generateXML(self, os):
48 raise NotImplementedError
49