12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * Copyright 2005 - 2016 Zarafa and its licensors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- #ifndef _CALDAVPROTO_H_
- #define _CALDAVPROTO_H_
- #include "WebDav.h"
- #include "CalDavUtil.h"
- #include <libxml/uri.h>
- #include <kopano/zcdefs.h>
- #include <kopano/mapiext.h>
- #include "MAPIToICal.h"
- #include "ICalToMAPI.h"
- #include "icaluid.h"
- #define FB_PUBLISH_DURATION 6
- class CalDAV _kc_final : public WebDav {
- public:
- CalDAV(Http *, IMAPISession *, const std::string &srv_tz, const std::string &charset);
- HRESULT HrHandleCommand(const std::string &strMethod) _kc_override;
- protected:
- /* entry points in webdav class */
- /* HRESULT HrPropfind(); */
- /* HRESULT HrReport(); */
- /* HRESULT HrMkCalendar(); */
- /* HRESULT HrPropPatch(); */
- HRESULT HrPut();
- HRESULT HrMove();
- HRESULT HrHandleMeeting(ICalToMapi *lpIcalToMapi);
- HRESULT HrHandleFreebusy(ICalToMapi *lpIcalToMapi);
- virtual HRESULT HrHandlePropfind(WEBDAVREQSTPROPS *sDavProp, WEBDAVMULTISTATUS *lpsDavMulStatus) _kc_override;
- virtual HRESULT HrListCalEntries(WEBDAVREQSTPROPS *sWebRCalQry,WEBDAVMULTISTATUS *sWebMStatus) _kc_override; // Used By both PROPFIND & Report Calendar-query
- virtual HRESULT HrHandleReport(WEBDAVRPTMGET *sWebRMGet, WEBDAVMULTISTATUS *sWebMStatus) _kc_override;
- virtual HRESULT HrHandlePropPatch(WEBDAVPROP *lpsDavProp, WEBDAVMULTISTATUS *sWebMStatus) _kc_override;
- virtual HRESULT HrHandleMkCal(WEBDAVPROP *lpsDavProp) _kc_override;
- virtual HRESULT HrHandlePropertySearch(WEBDAVRPTMGET *sWebRMGet, WEBDAVMULTISTATUS *sWebMStatus) _kc_override;
- virtual HRESULT HrHandlePropertySearchSet(WEBDAVMULTISTATUS *sWebMStatus) _kc_override;
- virtual HRESULT HrHandleDelete(void) _kc_override;
- HRESULT HrHandlePost();
- private:
- HRESULT HrMoveEntry(const std::string &strGuid, LPMAPIFOLDER lpDestFolder);
- HRESULT HrHandlePropfindRoot(WEBDAVREQSTPROPS *sDavProp, WEBDAVMULTISTATUS *lpsDavMulStatus);
-
- HRESULT CreateAndGetGuid(SBinary sbEid, ULONG ulPropTag, std::string *lpstrGuid);
- HRESULT HrListCalendar(WEBDAVREQSTPROPS *sDavProp, WEBDAVMULTISTATUS *lpsMulStatus);
- HRESULT HrConvertToIcal(const SPropValue *lpEid, MapiToICal *lpMtToIcal, ULONG ulFlags, std::string *strIcal);
- HRESULT HrMapValtoStruct(LPMAPIPROP lpObj, LPSPropValue lpProps, ULONG ulPropCount, MapiToICal *lpMtIcal, ULONG ulFlags, bool bPropsFirst, std::list<WEBDAVPROPERTY> *lstDavProps, WEBDAVRESPONSE *lpsResponse);
- HRESULT HrGetCalendarOrder(SBinary sbEid, std::string *lpstrCalendarOrder);
- };
- #endif
|