IServerSPtr ServersManager::createServer(IConnectionSettingsBaseSPtr settings) { DCHECK(settings); IServerSPtr result; connectionTypes conT = settings->connectionType(); IServerSPtr ser = findServerBySetting(settings); if(conT == REDIS){ RedisServer *newRed = NULL; if(!ser){ IDriverSPtr dr(new RedisDriver(settings)); dr->start(); newRed = new RedisServer(dr, true); } else{ newRed = new RedisServer(ser->driver(), false); } result.reset(newRed); servers_.push_back(result); } else if(conT == MEMCACHED){ MemcachedServer *newMem = NULL; if(!ser){ IDriverSPtr dr(new MemcachedDriver(settings)); dr->start(); newMem = new MemcachedServer(dr, true); } else{ newMem = new MemcachedServer(ser->driver(), false); } result.reset(newMem); servers_.push_back(result); } else if(conT == SSDB){ SsdbServer *newSsdb = NULL; if(!ser){ IDriverSPtr dr(new SsdbDriver(settings)); dr->start(); newSsdb = new SsdbServer(dr, true); } else{ newSsdb = new SsdbServer(ser->driver(), false); } result.reset(newSsdb); servers_.push_back(result); } DCHECK(result); if(ser && syncServers_){ result->syncWithServer(ser.get()); } return result; }
IServerSPtr ServersManager::createServer(IConnectionSettingsBaseSPtr settings) { DCHECK(settings); IServerSPtr result; connectionTypes conT = settings->connectionType(); IServerSPtr ser = findServerBySetting(settings); #ifdef BUILD_WITH_REDIS if(conT == REDIS){ result.reset(make_server<RedisServer, RedisDriver>(ser, settings)); } #endif #ifdef BUILD_WITH_MEMCACHED if(conT == MEMCACHED){ result.reset(make_server<MemcachedServer, MemcachedDriver>(ser, settings)); } #endif #ifdef BUILD_WITH_SSDB if(conT == SSDB){ result.reset(make_server<SsdbServer, SsdbDriver>(ser, settings)); } #endif #ifdef BUILD_WITH_LEVELDB if(conT == LEVELDB){ result.reset(make_server<LeveldbServer, LeveldbDriver>(ser, settings)); } #endif DCHECK(result); if(result){ servers_.push_back(result); if(ser && syncServers_){ result->syncWithServer(ser.get()); } } return result; }
ConnectionDiagnosticDialog::ConnectionDiagnosticDialog(QWidget* parent, IConnectionSettingsBaseSPtr connection) : QDialog(parent) { using namespace translations; setWindowTitle(trConnectionDiagnostic); setWindowIcon(GuiFactory::instance().icon(connection->connectionType())); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); // Remove help button (?) QVBoxLayout* mainLayout = new QVBoxLayout; executeTimeLabel_ = new QLabel; executeTimeLabel_->setText(connectionStatusTemplate.arg("execute...")); mainLayout->addWidget(executeTimeLabel_); statusLabel_ = new QLabel(timeTemplate.arg("calculate...")); iconLabel_ = new QLabel; QIcon icon = GuiFactory::instance().failIcon(); const QPixmap pm = icon.pixmap(stateIconSize); iconLabel_->setPixmap(pm); mainLayout->addWidget(statusLabel_); mainLayout->addWidget(iconLabel_, 1, Qt::AlignCenter); QDialogButtonBox* buttonBox = new QDialogButtonBox; buttonBox->setOrientation(Qt::Horizontal); buttonBox->setStandardButtons(QDialogButtonBox::Ok); VERIFY(connect(buttonBox, &QDialogButtonBox::accepted, this, &ConnectionDiagnosticDialog::accept)); mainLayout->addWidget(buttonBox); setFixedSize(QSize(fix_width, fix_height)); setLayout(mainLayout); glassWidget_ = new fasto::qt::gui::GlassWidget(GuiFactory::instance().pathToLoadingGif(), trTryToConnect, 0.5, QColor(111, 111, 100), this); testConnection(connection); }