X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2FCalDAV%2FCalDAV.h;h=fd7095a833740838d5d225944a1cc0e3dc17538e;hb=acc457ce286ec3716b00c074ced297bbd8ab7d89;hp=5e8622d2f0e010b2b8df058930a5e628d6d35fe9;hpb=4814657c80f09987a02c7842af6386fa33210c98;p=xestiacalendar%2F.git diff --git a/source/objects/CalDAV/CalDAV.h b/source/objects/CalDAV/CalDAV.h index 5e8622d..fd7095a 100644 --- a/source/objects/CalDAV/CalDAV.h +++ b/source/objects/CalDAV/CalDAV.h @@ -20,7 +20,12 @@ #define __OBJECTS_CALDAV_CALDAV_H__ #include +#include +#include #include +#include +#include +#include using namespace std; @@ -34,6 +39,10 @@ enum CalDAVQueryResult { CALDAVQUERYRESULT_SERVERERROR }; +struct CalDAVCalendarList { + +}; + struct CalDAVConnectionData{ string Hostname = ""; @@ -42,6 +51,7 @@ struct CalDAVConnectionData{ string Password = ""; string Prefix = ""; bool UseSSL = true; + int Timeout = 60; }; @@ -57,7 +67,20 @@ struct CalDAVStatus{ string Username; string Prefix; bool UseSSL; + int Timeout; + +}; +// CalDAVServerSupport: used for +// getting what the server supports +// from the CalDAV specification. + +struct CalDAVServerSupport{ + + // Variable name. Name in CalDAV header. + + bool BasicSupport = false; // calendar-access + }; // CalDAVServerResult: used for @@ -73,18 +96,42 @@ struct CalDAVServerResult{ }; +// CalDAVSendData: used for +// sending data to the CaLDAV +// server. + +struct CalDAVSendData{ + string *readptr; + long sizeleft; + int seek = 0; +}; + class CalDAV{ private: + string ProcessXMLUserPrincipal(); + string ProcessXMLCalendarHome(); + bool MatchXMLName(xmlNodePtr *NodePtr, string NodeName); + string FetchXMLData(xmlNodePtr *NodePtr); + CalDAVConnectionData ConnectionData; + CalDAVServerResult ConnectionServerResult; CURL *ConnectionHandle = nullptr; + string ServerData = ""; + string ServerHeader = ""; public: + CalDAV(); + ~CalDAV(); void SetupConnectionData(CalDAVConnectionData *ConnData); CalDAVStatus GetConnectionData(); CalDAVServerResult Connect(); - CalDAV(); - ~CalDAV(); + CalDAVServerResult GetServerResult(); + CalDAVServerSupport GetServerSupport(); + CalDAVCalendarList GetCalendars(); + + string GetUserPrincipal(); + string GetCalendarHome(string UserPrincipalURI); }; @@ -92,5 +139,6 @@ class CalDAV{ // CalDAVConnectionData struct. bool CalDAVObjectValidSettings(CalDAVConnectionData *ConnData); +string BuildServerAddress(CalDAVConnectionData *ConnData, string URIAddress); #endif