X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fconnobject%2FConnectionObject.h;h=24f357f63e9eeee953035806f970f73c7760e7fc;hb=28af58c233e5a0a78fd085bdf7fef24f76a9c5a6;hp=798ebae2c3418aaa4218cb1cdc499b58f06343d6;hpb=1a669f2f2ab771fac49d859851bd1cdba28ab3f8;p=xestiaab%2F.git diff --git a/source/connobject/ConnectionObject.h b/source/connobject/ConnectionObject.h index 798ebae..24f357f 100644 --- a/source/connobject/ConnectionObject.h +++ b/source/connobject/ConnectionObject.h @@ -16,11 +16,18 @@ // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see +#ifndef __CONNOBJECT_CONNECTIONOBJECT_H__ +#define __CONNOBJECT_CONNECTIONOBJECT_H__ + #include +#include +#include +#include "../common/sslcertstructs.h" enum COConnectResult { COCONNECT_UNITTESTFAIL = -1, COCONNECT_OK, + COCONNECT_SSLFAIL, COCONNECT_INVALID, COCONNECT_TIMEOUT, COCONNECT_AUTHFAIL @@ -30,16 +37,44 @@ enum CORequestResult { COREQUEST_UNITTESTFAIL = -1, COREQUEST_OK, COREQUEST_ERROR_NOTCONNECTED, - COREQUEST_ERROR_SERVER + COREQUEST_ERROR_SERVER, +}; + +enum COSSLVerified { + COSSL_UNITTESTFAIL = -1, + COSSL_VERIFIED, + COSSL_VERIFIED_USER, + COSSL_UNABLETOVERIFY, + COSSL_NOTAPPLICABLE, + COSSL_NORESULT +}; + +enum COContactStatus { + COCS_UNKNOWN, + COCS_UPDATED, + COCS_DELETED }; struct COServerResponse { CORequestResult RequestResult; std::string EntityTag; + int SessionCode; int ResultCode; std::string ResultMessage; }; +struct COContactData { + std::string Location; + std::string Data; + COContactStatus Status = COCS_UNKNOWN; +}; + +struct COContactList { + COServerResponse ServerResponse; + std::vector ListData; + std::string SyncToken; +}; + class ConnectionObject{ public: @@ -48,20 +83,38 @@ class ConnectionObject{ // Virtual functions to be setup by the inheriting classes. - virtual void SetupConnectionObject() {}; - virtual ~ConnectionObject() {}; + virtual void SetupConnectionObject() { }; + //virtual ~ConnectionObject() {}; + + virtual bool IsTaskCompleted() {}; - virtual COConnectResult Connect() {}; + virtual COConnectResult Connect(bool DoAuthentication) {}; + virtual void BypassSSLVerification(bool EnableBypass) {}; - virtual std::string GetDefaultPrefix() {}; - //virtual void SetupData(std::string Method, std::string Location, std::string Data) {}; + virtual COServerResponse GetDefaultPrefix(std::string *ServerPrefix) {}; virtual COServerResponse AddContact(std::string Location, std::string Data) {}; + virtual COServerResponse EditContact(std::string Location, std::string Data) {}; + virtual COServerResponse DeleteContact(std::string Location) {}; + virtual COServerResponse GetServerEntityTagValue(std::string Location) {}; + virtual COServerResponse GetContact(std::string Location, std::string *PageData) {}; + virtual COContactList GetContactList(std::string SyncToken) {}; virtual bool CanDoProcessing() {}; virtual bool CanDoSSL() {}; - virtual bool SSLVerify() {}; + virtual COSSLVerified SSLVerify() {}; virtual bool AbleToLogin() {}; virtual bool HasValidResponse() {}; + virtual bool IsSelfSigned() {}; + virtual std::string GetErrorMessage() {}; + + // OS specific functions. + +#if defined(__APPLE__) +#elif defined(__WIN32__) +#else + virtual SSLCertCollectionString BuildSSLCollection() {}; + +#endif protected: // Test Mode. @@ -78,17 +131,19 @@ class ConnectionObject{ std::string ServerAccount = ""; bool ServerSSL = true; std::string ErrorMessage = ""; - std::string ErrorBufferMessage = ""; // Connect results. bool SSLStatus = false; - bool SSLVerified = false; + COSSLVerified SSLVerified = COSSL_NORESULT; bool ValidResponse = false; bool AuthPassed = false; bool CanProcess = false; bool SSLSelfSigned = false; + bool TaskCompleted = false; private: -}; \ No newline at end of file +}; + +#endif \ No newline at end of file