Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Initial work started on using ConnectionObject on Win32 systems
[xestiaab/.git] / source / connobject / ConnectionObject.h
index 24f357f..8e5221f 100644 (file)
 #include <iostream>
 #include "../common/sslcertstructs.h"
 
+#if defined (__WIN32__)
+#include <Windows.h>
+#include <basetsd.h>
+#include <winapifamily.h>
+#include <security.h>
+#include <schannel.h>
+#include <cryptuiapi.h>
+#include <sspi.h>
+#endif
+
 enum COConnectResult {
        COCONNECT_UNITTESTFAIL = -1,
        COCONNECT_OK,
@@ -80,39 +90,42 @@ class ConnectionObject{
        public:
                ConnectionObject(std::string ServerAddress, int ServerPort, std::string ServerUser, std::string ServerPass, bool ServerSSL);
                ConnectionObject(std::string ServerAddress, int ServerPort, std::string ServerUser, std::string ServerPass, bool ServerSSL, std::string ServerPrefix, std::string ServerAccount);
-       
+
                // Virtual functions to be setup by the inheriting classes.
        
-               virtual void SetupConnectionObject() { };
+               virtual void SetupConnectionObject() = 0;
                //virtual ~ConnectionObject() {};
                
-               virtual bool IsTaskCompleted() {};
+               virtual bool IsTaskCompleted() = 0;
                
-               virtual COConnectResult Connect(bool DoAuthentication) {};
-               virtual void BypassSSLVerification(bool EnableBypass) {};
+               virtual COConnectResult Connect(bool DoAuthentication) = 0;
+               virtual void BypassSSLVerification(bool EnableBypass) = 0;
                
-               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 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() {};
-               virtual bool CanDoSSL() {};
-               virtual COSSLVerified SSLVerify() {};
-               virtual bool AbleToLogin() {};
-               virtual bool HasValidResponse() {};
-               virtual bool IsSelfSigned() {};
-               virtual std::string GetErrorMessage() {};
+               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__)
 #elif defined(__WIN32__)
+
+               virtual PCCERT_CONTEXT BuildSSLCollection() = 0;
+
 #else
-               virtual SSLCertCollectionString BuildSSLCollection() {};
+               virtual SSLCertCollectionString BuildSSLCollection() = 0;
 
 #endif
                
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy