diff -r f387669912e8 -r e8619defde14 src/server/webdav/saxhandler.h --- a/src/server/webdav/saxhandler.h Sun May 06 10:09:27 2012 +0200 +++ b/src/server/webdav/saxhandler.h Wed May 16 12:47:28 2012 +0200 @@ -50,7 +50,7 @@ const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname); - + void startDocument(); void endDocument(); @@ -63,5 +63,39 @@ DavProperty *property; }; + +class ProppatchHandler : public DefaultHandler { +public: + ProppatchHandler(ProppatchRequest *rq, pool_handle_t *p); + virtual ~ProppatchHandler(); + + void startElement( + const XMLCh* const uri, + const XMLCh* const localname, + const XMLCh* const qname, + const Attributes& attrs); + + void endElement( + const XMLCh* const uri, + const XMLCh* const localname, + const XMLCh* const qname); + + void characters(const XMLCh *const chars, const XMLSize_t length); + + void startDocument(); + + void endDocument(); + +private: + ProppatchRequest *davrq; + pool_handle_t *pool; + + bool davPropTag; + XmlElement *rxprop; /* root of xml property */ + XmlElement *cxprop; /* current element */ + DavProperty *property; + int updateMode; /* 0 = set, 1 = remove */ +}; + #endif /* SAXHANDLER_H */