void ServersManager::refreshSyncServers()
 {
     for(size_t i = 0; i < servers_.size(); ++i){
         IServerSPtr servi = servers_[i];
         if(servi->isSuperServer()){
             for(size_t j = 0; j < servers_.size(); ++j){
                 IServerSPtr servj = servers_[j];
                 if(servj != servi && servj->driver() == servi->driver()){
                     if(syncServers_){
                         servj->syncWithServer(servi.get());
                     }
                     else{
                         servj->unSyncFromServer(servi.get());
                     }
                 }
             }
         }
     }
 }
    void ServersManager::closeServer(IServerSPtr server)
    {
        for(size_t i = 0; i < servers_.size(); ++i){
            IServerSPtr ser = servers_[i];
            if(ser == server){
                if(ser->isSuperServer()){
                    IDriverSPtr drv = ser->driver();
                    for(size_t j = 0; j < servers_.size(); ++j){
                        IServerSPtr servj = servers_[j];
                        if(servj->driver() == drv){
                            servj->isSuperServer_ = true;
                            break;
                        }
                    }
                }

                servers_.erase(servers_.begin()+i);
                refreshSyncServers();
                break;
            }
        }
    }