bool FileIntersect::processSortedFiles() { // use the chromsweep algorithm to detect overlaps on the fly. NewChromSweep sweep(_context); if (!sweep.init()) { return false; } if (!_recordOutputMgr->init(_context)) { return false; } RecordKeyList hitSet; while (sweep.next(hitSet)) { if (_context->getObeySplits()) { RecordKeyList keySet(hitSet.getKey()); RecordKeyList resultSet(hitSet.getKey()); _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet); processHits(resultSet); } else { processHits(hitSet); } } return true; }
AddrRange ModificationMap::getAddrRange() { if(isEmpty()) { return AddrRange(); } else { const Set<__int64> set = keySet(); return AddrRange(set.getMin(), set.getMax()); } }
void AudioPlayer::setMainWindow(MainWindow* mainWindow) { mainWindow_ = mainWindow; Config& config = mainWindow_->getConfig(); config.set("playback.replaygain", QVariant(replayGainToString(replaygain_))); config.set("playback.replaygain.preamp_with_rg", QVariant(preamp_with_rg_)); config.set("playback.enqueue.onlyOnce", QVariant(queue_.enqueueOnlyOnce())); config.set("library.length_hack", QVariant(lengthHack_)); QObject::connect(&config, SIGNAL(keySet(QString,QVariant)), this, SLOT(configChanged(QString,QVariant))); }
void Server::onShakeHandleReq(const SessionPtr& conn, shared_ptr_Msg message) { //得到这个连接是谁; std::shared_ptr<IMChat::shakeHandleReq> ptrRequest = std::dynamic_pointer_cast<IMChat::shakeHandleReq>(message); if (NULL != ptrRequest) { cout << ptrRequest->GetTypeName() << ":" << ptrRequest->userid() << endl; map<string, string> dataMap; string key("loginMap:"); key += ptrRequest->userid(); m_redis.HGetAll(key, dataMap); if (dataMap.size() != 0) //如果用户登陆则Map表不为空; { if (!m_redis.Exists("online:" + ptrRequest->userid())) { //向连接设置sessionId和userId; conn->set_SessionId(dataMap["sessionid"]); conn->set_userId(ptrRequest->userid()); //向连接管理表添加信息; m_tcpserver.getConnection_Manager().userIdMap(ptrRequest->userid(), conn); //添加online:userid键值对; m_redis.Set("online:" + ptrRequest->userid(), m_strServerSocket); //找到用户所有的群; string keySet("groupSet:"); keySet += ptrRequest->userid(); vector<string> vecStr = m_redis.SMEMBERS(keySet); //对所有的群的onlineGroup:groupid添加成员; for (size_t i = 0; i < vecStr.size(); i++) { m_redis.SADD("onlineGroup:" + vecStr[i], ptrRequest->userid()); } //publish online 消息; m_redis.Publish("online", ptrRequest->userid()); //返回结果; IMChat::shakeHandleRes response; time_t nowtime; std::time(&nowtime); response.set_timestamp(nowtime); response.set_result(0); m_codec.Send(conn, response); } } else { //返回结果; IMChat::shakeHandleRes response; response.set_result(2); time_t nowtime; std::time(&nowtime); response.set_timestamp(nowtime); response.set_result(0); m_codec.Send(conn, response); } } }
bool FileIntersect::processUnsortedFiles() { const QuickString &databaseFilename = _context->getDatabaseFileName(); BinTree *binTree = new BinTree(_context->getDatabaseFileIdx(), _context); FileRecordMgr *queryFRM = new FileRecordMgr(_context->getQueryFileIdx(), _context); if (!queryFRM->open()) { return false; } if (!binTree->loadDB()) { fprintf(stderr, "Error: Unable to load database file %s.\n", databaseFilename.c_str()); delete binTree; exit(1); } _context->determineOutputType(); _recordOutputMgr->init(_context); while (!queryFRM->eof()) { Record *queryRecord = queryFRM->allocateAndGetNextRecord(); if (queryRecord == NULL) { continue; } RecordKeyList hitSet(queryRecord); binTree->getHits(queryRecord, hitSet); if (_context->getObeySplits()) { RecordKeyList keySet(hitSet.getKey()); RecordKeyList resultSet; _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet); processHits(resultSet); } else { processHits(hitSet); } queryFRM->deleteRecord(queryRecord); } queryFRM->close(); //clean up. delete queryFRM; delete binTree; return true; }
bool FileMap::mapFiles() { NewChromSweep sweep(_context); if (!sweep.init()) { return false; } RecordKeyList hitSet; while (sweep.next(hitSet)) { if (_context->getObeySplits()) { RecordKeyList keySet(hitSet.getKey()); RecordKeyList resultSet(hitSet.getKey()); _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet); _recordOutputMgr->printRecord(resultSet.getKey(), _context->getColumnOpsVal(resultSet)); } else { _recordOutputMgr->printRecord(hitSet.getKey(), _context->getColumnOpsVal(hitSet)); } } return true; }
void IntersectFile::checkSplits(RecordKeyVector &hitSet) { if (upCast(_context)->getObeySplits()) { RecordKeyVector keySet(hitSet.getKey()); RecordKeyVector resultSet(hitSet.getKey()); RecordKeyVector overlapSet(hitSet.getKey()); upCast(_context)->getSplitBlockInfo()->findBlockedOverlaps(keySet, hitSet, resultSet, overlapSet); // when using coverage, we need a list of the sub-intervals of coverage // so that per-base depth can be properly calculated when obeying splits if (_context->getProgram() == ContextBase::COVERAGE) { hitSet.swap(overlapSet); } else { hitSet.swap(resultSet); } } }
bool Fisher::getFisher() { NewChromSweep sweep(_context); if (!sweep.init()) { return false; } RecordKeyVector hitSet; while (sweep.next(hitSet)) { if (_context->getObeySplits()) { RecordKeyVector keySet(hitSet.getKey()); RecordKeyVector resultSet(hitSet.getKey()); _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet); _intersectionVal += getTotalIntersection(resultSet); } else { _intersectionVal += getTotalIntersection(hitSet); } } sweep.closeOut(); _queryLen = sweep.getQueryTotalRecordLength(); _dbLen = sweep.getDatabaseTotalRecordLength(); _unionVal = _queryLen + _dbLen; return true; }
bool Jaccard::getIntersectionAndUnion() { NewChromSweep sweep(_context); if (!sweep.init()) { return false; } RecordKeyList hitSet; while (sweep.next(hitSet)) { if (_context->getObeySplits()) { RecordKeyList keySet(hitSet.getKey()); RecordKeyList resultSet(hitSet.getKey()); _blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet); _intersectionVal += getTotalIntersection(&resultSet); } else { _intersectionVal += getTotalIntersection(&hitSet); } } sweep.closeOut(); unsigned long queryUnion = sweep.getQueryTotalRecordLength(); unsigned long dbUnion = sweep.getDatabaseTotalRecordLength(); _unionVal = queryUnion + dbUnion; return true; }
MainWindow::MainWindow(AudioPlayer &player, QWidget *parent) : QMainWindow(parent), statusBar_(this), player_(player), cursorFollowsPlayback_(false), saveTabs_(false) { setupUi(this); // Not saving a pointer to this QActionGroup *playbackOrderGroup = new QActionGroup(this); playbackOrderGroup->addAction(defaultAction); playbackOrderGroup->addAction(randomAction); playbackOrderGroup->addAction(repeatTrackAction); playbackOrderGroup->addAction(repeatPlaylistAction); installEventFilter(this); player.setMainWindow(this); QObject::connect(&player_, SIGNAL(playbackOrderChanged(PlaybackOrder)), this, SLOT(playbackOrderChanged(PlaybackOrder))); QObject::connect(&player_, SIGNAL(audioStateChanged(AudioState)), this, SLOT(slotAudioStateChanged(AudioState))); QObject::connect(&player_, SIGNAL(trackPlaying(PTrack)), this, SLOT(updateUI(PTrack))); playbackOrderChanged(player.playbackOrder()); QObject::connect(&player_, SIGNAL(tick(qint64)), this, SLOT(tick(qint64))); seekSlider_ = new SeekSlider(player_, this); volumeSlider_ = new QSlider(this); volumeSlider_->setOrientation(Qt::Horizontal); volumeSlider_->setMaximum(100); volumeSlider_->setMinimum(0); volumeSlider_->setValue(player_.volume() * 100); volumeSlider_->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); QObject::connect(volumeSlider_, SIGNAL(valueChanged(int)), this, SLOT(volumeChanged(int))); mainToolBar->addWidget(seekSlider_); mainToolBar->addWidget(volumeSlider_); trayIcon_ = new QSystemTrayIcon(this); setTrayIcon(false); connect(trayIcon_, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); trayIcon_->show(); setStatusBar(&statusBar_); QObject::connect(&statusBar_, SIGNAL(statusBarDoubleClicked()), this, SLOT(statusBarDoubleClicked())); lyricsDock_ = new QDockWidget("Lyrics", this); // Not setting an object name because we don't want save its state // since Qt doesn't restore it correctly // lyricsDock_->setObjectName("LyricsDock"); lyricsWidget_ = new QPlainTextEdit(lyricsDock_); // lyricsWidget_->setObjectName("LyricsWidget"); lyricsWidget_->setReadOnly(true); lyricsDock_->setWidget(lyricsWidget_); QObject::connect(lyricsDock_, SIGNAL(visibilityChanged(bool)), this, SLOT(dockVisibilityChanged(bool))); // playlistTabs->setTabsClosable(true); QObject::connect(playlistTabs, SIGNAL(tabCloseRequested(int)), this, SLOT(removePlaylistTab(int))); QObject::connect(playlistTabs, SIGNAL(newTabRequested()), this, SLOT(newTabRequested())); QObject::connect(menu_File, SIGNAL(aboutToShow()), this, SLOT(menuFileAboutToShow())); setWindowIcon(QIcon(":/icon/logo22.png")); instance = this; console_ = new ConsoleWindow(this); QObject::connect(console_, SIGNAL(visibilityChanged(bool)), this, SLOT(consoleVisibilityChanged(bool))); readSettings(); config_.set("mainwindow.save_tabs", QVariant(saveTabs_)); QObject::connect(&config_, SIGNAL(keySet(QString, QVariant)), this, SLOT(configChanged(QString, QVariant))); setShortcuts(); }