// 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: };