// 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 #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 SessionCode; int ResultCode; std::string ResultMessage; }; struct COContactData { std::string Location; std::string Data; }; struct COContactList { COServerResponse ServerResponse; std::vector ListData; std::string SyncToken; }; 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 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 = ""; 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: };