- virtual bool CanDoProcessing() {};
- virtual bool CanDoSSL() {};
- virtual bool SSLVerify() {};
- virtual bool AbleToLogin() {};
- virtual bool HasValidResponse() {};
- virtual bool IsSelfSigned() {};
+ virtual COConnectResult Connect(bool DoAuthentication) = 0;
+ virtual void BypassSSLVerification(bool EnableBypass) = 0;
+
+ virtual COServerResponse GetDefaultPrefix(std::string *ServerPrefix) = 0;
+ virtual COServerResponse AddContact(std::string Location, std::string Data) = 0;
+ virtual COServerResponse EditContact(std::string Location, std::string Data) = 0;
+ virtual COServerResponse DeleteContact(std::string Location) = 0;
+ virtual COServerResponse GetServerEntityTagValue(std::string Location) = 0;
+ virtual COServerResponse GetContact(std::string Location, std::string *PageData) = 0;
+ virtual COContactList GetContactList(std::string SyncToken) = 0;
+
+ virtual bool CanDoProcessing() = 0;
+ virtual bool CanDoSSL() = 0;
+ virtual COSSLVerified SSLVerify() = 0;
+ virtual bool AbleToLogin() = 0;
+ virtual bool HasValidResponse() = 0;
+ virtual bool IsSelfSigned() = 0;
+ virtual std::string GetErrorMessage() = 0;
+
+ // OS specific functions.
+
+#if defined(__APPLE__)
+
+ virtual SecTrustRef BuildSSLCollection() = 0;
+
+#elif defined(__WIN32__)
+
+ virtual PCCERT_CONTEXT BuildSSLCollection() = 0;
+
+#else
+ virtual SSLCertCollectionString BuildSSLCollection() = 0;
+
+#endif