+ 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);