// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
#include <string>
+#include <vector>
+
+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 SessionCode;
+ int ResultCode;
+ std::string ResultMessage;
+};
+
+struct COContactData {
+ std::string Location;
+ std::string Data;
+};
+
+struct COContactList {
+ COServerResponse ServerResponse;
+ std::vector<COContactData> ListData;
+ std::string SyncToken;
+};
class ConnectionObject{
virtual void SetupConnectionObject() {};
virtual ~ConnectionObject() {};
+ virtual COConnectResult Connect() {};
+
+ virtual std::string GetDefaultPrefix() {};
+ virtual COServerResponse AddContact(std::string Location, std::string Data) {};
+ virtual COServerResponse EditContact(std::string Location, std::string Data) {};
+ virtual COServerResponse DeleteContact(std::string Location, std::string EntityTag) {};
+ virtual COServerResponse GetServerEntityTagValue(std::string Location) {};
+ virtual COServerResponse GetContact(std::string Location) {};
+ virtual COContactList GetContactList(std::string SyncToken) {};
+
+ 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 = "";
bool ServerSSL = true;
std::string ErrorMessage = "";
std::string ErrorBufferMessage = "";
- bool TestMode = false;
+
+ // Connect results.
+
+ bool SSLStatus = false;
+ bool SSLVerified = false;
+ bool ValidResponse = false;
+ bool AuthPassed = false;
+ bool CanProcess = false;
+ bool SSLSelfSigned = false;
+
private:
};
\ No newline at end of file