Index: xotcl/library/comm/Dav.xotcl =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -r435b41481fb51bf000ebe736d8574fefbeec1710 --- xotcl/library/comm/Dav.xotcl (.../Dav.xotcl) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/library/comm/Dav.xotcl (.../Dav.xotcl) (revision 435b41481fb51bf000ebe736d8574fefbeec1710) @@ -1,162 +1,174 @@ -# $Id: Dav.xotcl,v 1.1 2004/05/23 22:50:39 neumann Exp $ +# $Id: Dav.xotcl,v 1.2 2005/09/09 21:07:23 neumann Exp $ + package provide xotcl::comm::dav 0.9 -Class Dav -superclass Http -Dav instproc initialize args { - my instvar contentType - #showCall - set contentType text/xml - next -} +package require XOTcl -Dav instproc PROPFIND {} { - #showCall - # extra dav headers - # Depth: ("0" | "1" | "infinity") [infinity is the default] - - # body is a propfind XML-Element - # - # - # - # +namespace eval ::xotcl::comm::dav { + namespace import ::xotcl::* - # this should be set by the clients - # - # - # - # - my open -} -Dav instproc PROPPATCH {} { - #showCall - # body is a propertyupdate XML-Element - # - # - # - - # set xmlReqBody($method) " - # - # - # - # - # - # - # " - my open -} -Dav instproc MKCOL {} { - #showCall - # invoked without a request body (may contain a message body?) - my open -} -Dav instproc GET {} { - #showCall - # invoked without a request body and without extra header - # back to HTTP class - next -} -Dav instproc HEAD {} { - #showCall - # invoked without a request bodyand without extra header - # back to HTTP class - next -} -Dav instproc POST {} { - #showCall - # the same as in RFC2068 - # back to HTTP class - next -} -Dav instproc DELETE {} { - #showCall - # extra dav headers - # Depth: ("0" | "1" | "infinity") + Class Dav -superclass Http + Dav instproc initialize args { + my instvar contentType + #showCall + set contentType text/xml + next + } - # invoked without a request body - my open -} -Dav instproc PUT {} { - #showCall - # PUT for Non-Collection Resources --> RFC2068 - # PUT for Collections --> MKCOL - # next -} -Dav instproc COPY {} { - #showCall - # extra dav headers - # If: [see 9.4 WebDAV] - # Destination: [see RFC2396 for the definition of absolutURI] - # Depth: ("0" | "1" | "infinity") - # Overwrite: ("T" | "F") - + Dav instproc PROPFIND {} { + #showCall + # extra dav headers + # Depth: ("0" | "1" | "infinity") [infinity is the default] + + # body is a propfind XML-Element + # + # + # + # - # body is a propertybehavior XML-Element - # - # - # - # - my open -} -Dav instproc MOVE {} { - #showCall - # extra dav headers - # If: [see 9.4 WebDAV] - # Destination: [see RFC2396 for the definition of absolutURI] - # Depth: "infinity" [see 8.9.2] - # Overwrite: ("T" | "F") + # this should be set by the clients + # + # + # + # + my open + } + Dav instproc PROPPATCH {} { + #showCall + # body is a propertyupdate XML-Element + # + # + # + + # set xmlReqBody($method) " + # + # + # + # + # + # + # " + my open + } + Dav instproc MKCOL {} { + #showCall + # invoked without a request body (may contain a message body?) + my open + } + Dav instproc GET {} { + #showCall + # invoked without a request body and without extra header + # back to HTTP class + next + } + Dav instproc HEAD {} { + #showCall + # invoked without a request bodyand without extra header + # back to HTTP class + next + } + Dav instproc POST {} { + #showCall + # the same as in RFC2068 + # back to HTTP class + next + } + Dav instproc DELETE {} { + #showCall + # extra dav headers + # Depth: ("0" | "1" | "infinity") - # body is a propertybehavior XML-Element - # see COPY - my open -} -Dav instproc LOCK {} { - #showCall - # extra dav headers - # If: [see 9.4 WebDAV] - # Destination: [see RFC2396 for the definition of absolutURI] - # Depth: ("0" | "1" | "infinity") - # Timeout: [see 9.8 WebDAV] - # Authorization: (defined in HTTP1.1 in 14.8) + # invoked without a request body + my open + } + Dav instproc PUT {} { + #showCall + # PUT for Non-Collection Resources --> RFC2068 + # PUT for Collections --> MKCOL + # next + } + Dav instproc COPY {} { + #showCall + # extra dav headers + # If: [see 9.4 WebDAV] + # Destination: [see RFC2396 for the definition of absolutURI] + # Depth: ("0" | "1" | "infinity") + # Overwrite: ("T" | "F") + - # body is a lockinfo XML-Element - # - # - # - # - # - # - # - my open -} + # body is a propertybehavior XML-Element + # + # + # + # + my open + } + Dav instproc MOVE {} { + #showCall + # extra dav headers + # If: [see 9.4 WebDAV] + # Destination: [see RFC2396 for the definition of absolutURI] + # Depth: "infinity" [see 8.9.2] + # Overwrite: ("T" | "F") -# The Lock-Token request header is used with the UNLOCK method to -# identify the lock to be removed. -Dav instproc UNLOCK {} { - my instvar headers - #showCall - # extra dav headers - # Lock-Token: [see 8.11 in WebDAV] + # body is a propertybehavior XML-Element + # see COPY + my open + } + Dav instproc LOCK {} { + #showCall + # extra dav headers + # If: [see 9.4 WebDAV] + # Destination: [see RFC2396 for the definition of absolutURI] + # Depth: ("0" | "1" | "infinity") + # Timeout: [see 9.8 WebDAV] + # Authorization: (defined in HTTP1.1 in 14.8) - # invoked without a request body - my open -} + # body is a lockinfo XML-Element + # + # + # + # + # + # + # + my open + } -#--------------------- -# Utility # -#--------------------- + # The Lock-Token request header is used with the UNLOCK method to + # identify the lock to be removed. + Dav instproc UNLOCK {} { + my instvar headers + #showCall + # extra dav headers + # Lock-Token: [see 8.11 in WebDAV] -#? -Object xmlReqBodyManager -xmlReqBodyManager proc requireXmlReqBody {request} { -} + # invoked without a request body + my open + } -#? -Object davHeaderManager -davHeaderManager proc requireDavHeader {request} { -} + #--------------------- + # Utility # + #--------------------- + #? + Object xmlReqBodyManager + xmlReqBodyManager proc requireXmlReqBody {request} { + } + #? + Object davHeaderManager + davHeaderManager proc requireDavHeader {request} { + } -#LOCK /DAV/welcome.html HTTP/1.1 -#Host: wawog -#Connection: close + + + #LOCK /DAV/welcome.html HTTP/1.1 + #Host: wawog + #Connection: close + + namespace export Dav \ + xmlReqBodyManager davHeaderManager +} + +namespace import ::xotcl::comm::dav::*