IServerSPtr ServersManager::createServer(IConnectionSettingsBaseSPtr settings) { if (!settings) { NOTREACHED(); return IServerSPtr(); } connectionTypes conT = settings->type(); IServer* server = nullptr; #ifdef BUILD_WITH_REDIS if (conT == REDIS) { server = new redis::RedisServer(settings); } #endif #ifdef BUILD_WITH_MEMCACHED if (conT == MEMCACHED) { server = new memcached::MemcachedServer(settings); } #endif #ifdef BUILD_WITH_SSDB if (conT == SSDB) { server = new ssdb::SsdbServer(settings); } #endif #ifdef BUILD_WITH_LEVELDB if (conT == LEVELDB) { server = new leveldb::LeveldbServer(settings); } #endif #ifdef BUILD_WITH_ROCKSDB if (conT == ROCKSDB) { server = new rocksdb::RocksdbServer(settings); } #endif #ifdef BUILD_WITH_UNQLITE if (conT == UNQLITE) { server = new unqlite::UnqliteServer(settings); } #endif #ifdef BUILD_WITH_LMDB if (conT == LMDB) { server = new lmdb::LmdbServer(settings); } #endif if (!server) { NOTREACHED(); return IServerSPtr(); } IServerSPtr sh(server); servers_.push_back(sh); return sh; }
IServerSPtr ICluster::root() const { if(nodes_.empty()){ return IServerSPtr(); } return nodes_[0]; }
IServerSPtr ExplorerKeyItem::server() const { ExplorerDatabaseItem* db = dynamic_cast<ExplorerDatabaseItem*>(parent_); if(!db){ return IServerSPtr(); } return db->server(); }
IServerSPtr ExplorerDatabaseItem::server() const { ExplorerServerItem* serv = dynamic_cast<ExplorerServerItem*>(parent_); if(!serv){ return IServerSPtr(); } return serv->server(); }
IServerSPtr ServersManager::findServerBySetting(const IConnectionSettingsBaseSPtr &settings) const { for(size_t i = 0; i < servers_.size(); ++i){ IServerSPtr drp = servers_[i]; IDriverSPtr curDr = drp->driver(); if(curDr->settings() == settings){ return drp; } } return IServerSPtr(); }