+ private:
+ string ProcessXMLUserPrincipal();
+ string ProcessXMLCalendarHome();
+ CalDAVCalendarList ProcessXMLCalendarList();
+ CalDAVEntryList ProcessXMLEntryList();
+ CalDAVEntryList ProcessXMLSyncTokenList();
+ string ProcessXMLEntryETag();
+ bool MatchXMLNameTransverse(xmlNodePtr *NodePtr, string NodeName);
+ bool MatchXMLName(xmlNodePtr *NodePtrOriginal, string NodeName);
+ string FetchXMLData(xmlNodePtr *NodePtr);
+ CalDAVServerResult EditCalendarProcess(string *CalendarHREF,
+ string *CalendarName,
+ Colour *CalendarColour,
+ string *CalendarDescription,
+ int *CalendarOrder);
+
+ CalDAVConnectionData ConnectionData;
+ CalDAVServerResult ConnectionServerResult;
+ CURL *ConnectionHandle = nullptr;
+ string ServerData = "";
+ string ServerHeader = "";
+
+ public:
+ CalDAV();
+ ~CalDAV();
+ void SetupConnectionData(CalDAVConnectionData *ConnData);
+ CalDAVStatus GetConnectionData();
+ CalDAVServerResult Connect();
+ CalDAVServerResult GetServerResult();
+ CalDAVServerSupport GetServerSupport();
+ CalDAVCalendarList GetCalendars();
+ CalDAVEntryList GetEntryList(string *CalendarHREF);
+ CalDAVEntryList GetEntryList(string *CalendarHREF, string *CalendarTag);
+
+ CalDAVServerResult AddCalendar(string CalendarName);
+ CalDAVServerResult AddCalendar(string *CalendarName, string *CalendarShortName);
+
+ CalDAVServerResult EditCalendar(string *CalendarHREF,
+ string *CalendarName,
+ Colour *CalendarColour,
+ string *CalendarDescription,
+ int *CalendarOrder);
+ CalDAVServerResult EditCalendar(string *CalendarHREF,
+ Colour *CalendarColour);
+ CalDAVServerResult EditCalendar(string *CalendarHREF,
+ string *CalendarName);
+ CalDAVServerResult EditCalendar(string *CalendarHREF,
+ int *CalendarOrder);
+ CalDAVServerResult EditCalendarDescription(string *CalendarHREF,
+ string *CalendarDescription);
+
+ CalDAVServerResult DeleteCalendar(string *CalendarHREF);
+
+ CalDAVServerResult AddEntry(string *CalendarEntryHREF, string *EntryData);
+ CalDAVServerResult EditEntry(string *CalendarEntryHREF, string *EntryData, string *EntryETag);
+ CalDAVServerResult DeleteEntry(string *CalendarEntryHREF);