// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#include "stdpch.h"
#include "server.h"
#include "configfile.h"
#ifdef DEBUG_NEW
#define new DEBUG_NEW
#endif
const CServer NoServer;
void CServer::loadFromSettings(const QSettings &settings)
{
id = settings.value("id").toString();
name = settings.value("name").toString();
displayUrl = settings.value("display_url").toString();
filesListUrl = settings.value("files_list_url").toString();
dataDownloadUrl = settings.value("data_download_url").toString();
dataDownloadFilename = settings.value("data_download_filename").toString();
dataCompressedSize = settings.value("data_compressed_size").toULongLong();
dataUncompressedSize = settings.value("data_uncompressed_size").toULongLong();
clientDownloadUrl = settings.value("client_download_url").toString();
clientDownloadFilename = settings.value("client_download_filename").toString();
#if defined(Q_OS_WIN)
clientFilename = settings.value("client_filename_windows").toString();
clientFilenameOld = settings.value("client_filename_old_windows").toString();
configurationFilename = settings.value("configuration_filename_windows").toString();
#elif defined(Q_OS_MAC)
clientFilename = settings.value("client_filename_osx").toString();
clientFilenameOld = settings.value("client_filename_old_osx").toString();
configurationFilename = settings.value("configuration_filename_osx").toString();
#else
clientFilename = settings.value("client_filename_linux").toString();
clientFilenameOld = settings.value("client_filename_old_linux").toString();
configurationFilename = settings.value("configuration_filename_linux").toString();
#endif
comments = settings.value("comments").toString();
}
void CServer::loadFromServers(const CServers &servers)
{
foreach(const CServer &server, servers)
{
if (server.id == id)
{
// found the same server
loadFromServer(server);
break;
}
}
}
void CServer::loadFromServer(const CServer &server)
{
// copy all members
id = server.id;
name = server.name;
displayUrl = server.displayUrl;
filesListUrl = server.filesListUrl;
dataDownloadUrl = server.dataDownloadUrl;
dataDownloadFilename = server.dataDownloadFilename;
dataCompressedSize = server.dataCompressedSize;
dataUncompressedSize = server.dataUncompressedSize;
clientDownloadUrl = server.clientDownloadUrl;
clientDownloadFilename = server.clientDownloadFilename;
clientFilename = server.clientFilename;
clientFilenameOld = server.clientFilenameOld;
configurationFilename = server.configurationFilename;
comments = server.comments;
}
void CServer::saveToSettings(QSettings &settings) const
{
settings.setValue("id", id);
settings.setValue("name", name);
settings.setValue("display_url", displayUrl);
settings.setValue("files_list_url", filesListUrl);
settings.setValue("data_download_url", dataDownloadUrl);
settings.setValue("data_download_filename", dataDownloadFilename);
settings.setValue("data_compressed_size", dataCompressedSize);
settings.setValue("data_uncompressed_size", dataUncompressedSize);
settings.setValue("client_download_url", clientDownloadUrl);
settings.setValue("client_download_filename", clientDownloadFilename);
#if defined(Q_OS_WIN)
settings.setValue("client_filename_windows", clientFilename);
settings.setValue("client_filename_old_windows", clientFilenameOld);
settings.setValue("configuration_filename_windows", configurationFilename);
#elif defined(Q_OS_MAC)
settings.setValue("client_filename_osx", clientFilename);
settings.setValue("client_filename_old_osx", clientFilenameOld);
settings.setValue("configuration_filename_osx", configurationFilename);
#else
settings.setValue("client_filename_linux", clientFilename);
settings.setValue("client_filename_old_linux", clientFilenameOld);
settings.setValue("configuration_filename_linux", configurationFilename);
#endif
settings.setValue("comments", comments);
}
QString CServer::getDirectory() const
{
return CConfigFile::getInstance()->getInstallationDirectory() + "/" + id;
}
QString CServer::getClientFullPath() const
{
if (clientFilename.isEmpty()) return "";
return getDirectory() + "/" + clientFilename;
}
QString CServer::getConfigurationFullPath() const
{
if (configurationFilename.isEmpty()) return "";
return getDirectory() + "/" + configurationFilename;
}
QString CServer::getDefaultClientConfigFullPath() const
{
return getDirectory() + "/client_default.cfg";
}