// ConnectionObject.h - ConnectionObject interface header file.
//
// (c) 2012-2015 Xestia Software Development.
//
// This file is part of Xestia Address Book.
//
// Xestia Address Book is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by the
// Free Software Foundation, version 3 of the license.
//
// Xestia Address Book is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with Xestia Address Book. If not, see
#include
enum COConnectResult {
COCONNECT_UNITTESTFAIL = -1,
COCONNECT_OK,
COCONNECT_INVALID,
COCONNECT_TIMEOUT,
COCONNECT_AUTHFAIL
};
enum CORequestResult {
COREQUEST_UNITTESTFAIL = -1,
COREQUEST_OK,
COREQUEST_ERROR_NOTCONNECTED,
COREQUEST_ERROR_SERVER
};
struct COServerResponse {
CORequestResult RequestResult;
std::string EntityTag;
int ResultCode;
std::string ResultMessage;
};
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 ~ConnectionObject() {};
virtual COConnectResult Connect() {};
virtual std::string GetDefaultPrefix() {};
//virtual void SetupData(std::string Method, std::string Location, std::string Data) {};
virtual COServerResponse AddContact(std::string Location, std::string Data) {};
virtual bool CanDoProcessing() {};
virtual bool CanDoSSL() {};
virtual bool SSLVerify() {};
virtual bool AbleToLogin() {};
virtual bool HasValidResponse() {};
protected:
// Test Mode.
bool TestMode = false;
// Server variables.
std::string ServerAddress = "";
unsigned int ServerPort = 8080;
std::string ServerUser = "";
std::string ServerPass = "";
std::string ServerPrefix = "";
std::string ServerAccount = "";
bool ServerSSL = true;
std::string ErrorMessage = "";
std::string ErrorBufferMessage = "";
// Connect results.
bool SSLStatus = false;
bool SSLVerified = false;
bool ValidResponse = false;
bool AuthPassed = false;
bool CanProcess = false;
bool SSLSelfSigned = false;
private:
};