ScanManager::ScanManager(Scales &scales, QObject *parent) : QObject(parent), sc(scales) { scan = new Scanner(sc); scan->moveToThread(&thread); connect(scan,SIGNAL(confUpdate()),this,SIGNAL(confUpdate())); connect(&thread,SIGNAL(finished()),scan,SLOT(deleteLater())); connect(this,SIGNAL(startScan()),scan,SLOT(start())); connect(scan,SIGNAL(correctAnswer()),this,SIGNAL(correctAnswer())); connect(scan,SIGNAL(errorMessage(QString)),this,SIGNAL(errorMessage(QString))); thread.start(); emit startScan(); }
ScanController::ScanController(const QString &pName, int progAddr, QObject *parent) : QObject(parent) { this->pName = pName; scanWorker = new ScanUART(); scanWorker->setProgAddr(progAddr); scanWorker->moveToThread(&scanThread); connect(&scanThread,SIGNAL(finished()),scanWorker,SLOT(deleteLater())); connect(scanWorker,SIGNAL(percentUpdate(float)),this,SLOT(percentUpdate(float))); connect(scanWorker,SIGNAL(plcHasBeenFound(SearchController)),this,SLOT(plcHasBeenFound(SearchController))); connect(scanWorker,SIGNAL(scanIsFinished(QString)),this, SIGNAL(finished(QString))); connect(this,SIGNAL(startScan(QString)),scanWorker,SLOT(startScan(QString))); scanThread.start(); emit startScan(pName); }
Datum gingetmulti(PG_FUNCTION_ARGS) { IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0); ItemPointer tids = (ItemPointer) PG_GETARG_POINTER(1); int32 max_tids = PG_GETARG_INT32(2); int32 *returned_tids = (int32 *) PG_GETARG_POINTER(3); if (GinIsNewKey(scan)) newScanKey(scan); startScan(scan); *returned_tids = 0; do { if (scanGetItem(scan, tids + *returned_tids)) (*returned_tids)++; else break; } while (*returned_tids < max_tids); PG_RETURN_BOOL(*returned_tids == max_tids); }
Scanner (PluginListComponent& plc, AudioPluginFormat& format, PropertiesFile* properties, int threads) : owner (plc), formatToScan (format), propertiesToUse (properties), pathChooserWindow (TRANS("Select folders to scan..."), String::empty, AlertWindow::NoIcon), progressWindow (TRANS("Scanning for plug-ins..."), TRANS("Searching for all possible plug-in files..."), AlertWindow::NoIcon), progress (0.0), numThreads (threads), finished (false) { FileSearchPath path (formatToScan.getDefaultLocationsToSearch()); if (path.getNumPaths() > 0) // if the path is empty, then paths aren't used for this format. { if (propertiesToUse != nullptr) path = getLastSearchPath (*propertiesToUse, formatToScan); pathList.setSize (500, 300); pathList.setPath (path); pathChooserWindow.addCustomComponent (&pathList); pathChooserWindow.addButton (TRANS("Scan"), 1, KeyPress (KeyPress::returnKey)); pathChooserWindow.addButton (TRANS("Cancel"), 0, KeyPress (KeyPress::escapeKey)); pathChooserWindow.enterModalState (true, ModalCallbackFunction::forComponent (startScanCallback, &pathChooserWindow, this), false); } else { startScan(); } }
static void testHotlistAPs(){ EventInfo info; memset(&info, 0, sizeof(info)); printMsg("starting Hotlist AP scanning\n"); if (!startScan(&onScanResultsAvailable, stest_max_ap,stest_base_period, stest_threshold)) { printMsg("testHotlistAPs failed to start scan!!\n"); return; } int result = setHotlistAPs(); if (result == WIFI_SUCCESS) { printMsg("Waiting for Hotlist AP event\n"); while (true) { memset(&info, 0, sizeof(info)); getEventFromCache(info); if (info.type == EVENT_TYPE_SCAN_RESULTS_AVAILABLE) { retrieveScanResults(); } else if (info.type == EVENT_TYPE_HOTLIST_AP_FOUND || info.type == EVENT_TYPE_HOTLIST_AP_LOST) { printMsg("Hotlist APs"); if (--max_event_wait > 0) printMsg(", waiting for more event ::%d\n", max_event_wait); else break; } } resetHotlistAPs(); } else { printMsg("Could not set AP hotlist : %d\n", result); } }
int NetScanningController::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: newData((*reinterpret_cast< const QList<Device*>(*)>(_a[1]))); break; case 1: infInformation((*reinterpret_cast< SVT_NotifyType(*)>(_a[1]))); break; case 2: deviceCountChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: newDeviceNotify((*reinterpret_cast< SVT_NotifyType(*)>(_a[1]))); break; case 4: routerTypeChanged(); break; case 5: gatewayChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 6: onNewData((*reinterpret_cast< SVT_NotifyType(*)>(_a[1]))); break; case 7: onInfInformation((*reinterpret_cast< SVT_NotifyType(*)>(_a[1]))); break; case 8: onCountChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: onNode2Device((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< Device*(*)>(_a[2]))); break; case 10: onDeviceDataChanged((*reinterpret_cast< const Device(*)>(_a[1]))); break; case 11: onRefresh(); break; case 12: onSubscribeData((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 13: startScan(); break; default: ; } _id -= 14; } return _id; }
Connect_Bluetooth::Connect_Bluetooth(QWidget *parent) : QDialog(parent), ui(new Ui::Connect_Bluetooth) { ui->setupUi(this); discoveryAgent = new QBluetoothDeviceDiscoveryAgent(); connect(ui->inquiryType, SIGNAL(toggled(bool)), this, SLOT(setGeneralUnlimited(bool))); connect(ui->scan, SIGNAL(clicked()), this, SLOT(startScan())); connect(discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)), this, SLOT(addDevice(QBluetoothDeviceInfo))); connect(discoveryAgent, SIGNAL(finished()), this, SLOT(scanFinished())); connect(ui->list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(itemActivated(QListWidgetItem*))); /* connect(localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode)), this, SLOT(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); hostModeStateChanged(localDevice->hostMode()); // add context menu for devices to be able to pair device ui->list->setContextMenuPolicy(Qt::CustomContextMenu); */ }
DeviceDiscoveryDialog::DeviceDiscoveryDialog(QWidget *parent) : QDialog(parent), discoveryAgent(new QBluetoothDeviceDiscoveryAgent), localDevice(new QBluetoothLocalDevice), ui(new Ui_DeviceDiscovery) { ui->setupUi(this); #if defined (Q_OS_SYMBIAN) || defined(Q_OS_WINCE) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) setWindowState(Qt::WindowFullScreen); #endif connect(ui->inquiryType, SIGNAL(toggled(bool)), this, SLOT(setGeneralUnlimited(bool))); connect(ui->scan, SIGNAL(clicked()), this, SLOT(startScan())); connect(discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)), this, SLOT(addDevice(const QBluetoothDeviceInfo&))); connect(discoveryAgent, SIGNAL(finished()), this, SLOT(scanFinished())); connect(ui->list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(itemActivated(QListWidgetItem*))); connect(localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode)), this, SLOT(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); hostModeStateChanged(localDevice->hostMode()); // add context menu for devices to be able to pair device ui->list->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->list, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(displayPairingMenu(QPoint))); connect(localDevice, SIGNAL(pairingFinished(const QBluetoothAddress&, QBluetoothLocalDevice::Pairing)) , this, SLOT(pairingDone(const QBluetoothAddress&, QBluetoothLocalDevice::Pairing))); }
void app_start(int, char**) { BLE::Instance().init(bleInitComplete); #ifdef BUTTON button.rise(buttonCallback); #else startScan(); #endif }
HeapFileScan::HeapFileScan(const string & name, const int offset_, const int length_, const Datatype type_, const char* filter_, const Operator op_, Status & status) : HeapFile(name, status) { status = startScan(offset_, length_, type_, filter_, op_); }
void ImportMusicDialog::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); if (dce->GetId() == "locationchange") { m_locationEdit->SetText(dce->GetResultText()); startScan(); } } }
bool ImportMusicDialog::Create() { if (!LoadWindowFromXML("music-ui.xml", "import_music", this)) return false; bool err = false; UIUtilE::Assign(this, m_locationEdit, "location", &err); UIUtilE::Assign(this, m_locationButton, "directoryfinder", &err); UIUtilE::Assign(this, m_scanButton, "scan", &err); UIUtilE::Assign(this, m_coverartButton, "coverart", &err); UIUtilE::Assign(this, m_filenameText, "filename", &err); UIUtilE::Assign(this, m_compartistText, "compartist", &err); UIUtilE::Assign(this, m_artistText, "artist", &err); UIUtilE::Assign(this, m_albumText, "album", &err); UIUtilE::Assign(this, m_titleText, "title", &err); UIUtilE::Assign(this, m_genreText, "genre", &err); UIUtilE::Assign(this, m_yearText, "year", &err); UIUtilE::Assign(this, m_trackText, "track", &err); UIUtilE::Assign(this, m_currentText, "position", &err); UIUtilE::Assign(this, m_statusText, "status", &err); UIUtilE::Assign(this, m_compilationCheck,"compilation", &err); UIUtilE::Assign(this, m_playButton, "play", &err); UIUtilE::Assign(this, m_nextnewButton, "nextnew", &err); UIUtilE::Assign(this, m_addButton, "add", &err); UIUtilE::Assign(this, m_addallnewButton, "addallnew", &err); UIUtilE::Assign(this, m_nextButton, "next", &err); UIUtilE::Assign(this, m_prevButton, "prev", &err); if (err) { LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'import_music'"); return false; } connect(m_prevButton, SIGNAL(Clicked()), SLOT(prevPressed())); connect(m_locationButton, SIGNAL(Clicked()), SLOT(locationPressed())); connect(m_scanButton, SIGNAL(Clicked()), SLOT(startScan())); connect(m_coverartButton, SIGNAL(Clicked()), SLOT(coverArtPressed())); connect(m_playButton, SIGNAL(Clicked()), SLOT(playPressed())); connect(m_nextnewButton, SIGNAL(Clicked()), SLOT(nextNewPressed())); connect(m_addButton, SIGNAL(Clicked()), SLOT(addPressed())); connect(m_addallnewButton, SIGNAL(Clicked()), SLOT(addAllNewPressed())); connect(m_nextButton, SIGNAL(Clicked()), SLOT(nextPressed())); fillWidgets(); BuildFocusList(); m_locationEdit->SetText(gCoreContext->GetSetting("MythMusicLastImportDir", "/")); return true; }
Datum gingettuple(PG_FUNCTION_ARGS) { IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0); ScanDirection dir = (ScanDirection) PG_GETARG_INT32(1); bool res; if (dir != ForwardScanDirection) elog(ERROR, "Gin doesn't support other scan directions than forward"); if (GinIsNewKey(scan)) newScanKey(scan); startScan(scan); res = scanGetItem(scan, &scan->xs_ctup.t_self); PG_RETURN_BOOL(res); }
Scanner (CabbagePluginListComponent& plc, AudioPluginFormat& format, const StringArray& filesOrIdentifiers, PropertiesFile* properties, bool allowPluginsWhichRequireAsynchronousInstantiation, int threads, const String& title, const String& text) : owner (plc), formatToScan (format), filesOrIdentifiersToScan (filesOrIdentifiers), propertiesToUse (properties), pathChooserWindow (TRANS("Select folders to scan..."), String(), AlertWindow::NoIcon), progressWindow (title, text, AlertWindow::NoIcon), progress (0.0), numThreads (threads), allowAsync (allowPluginsWhichRequireAsynchronousInstantiation), finished (false) { pathChooserWindow.setLookAndFeel(&owner.getLookAndFeel()); progressWindow.setLookAndFeel(&owner.getLookAndFeel()); FileSearchPath path (formatToScan.getDefaultLocationsToSearch()); // You need to use at least one thread when scanning plug-ins asynchronously jassert (! allowAsync || (numThreads > 0)); // If the filesOrIdentifiersToScan argumnent isn't empty, we should only scan these // If the path is empty, then paths aren't used for this format. if (filesOrIdentifiersToScan.isEmpty() && path.getNumPaths() > 0) { #if ! JUCE_IOS if (propertiesToUse != nullptr) path = getLastSearchPath (*propertiesToUse, formatToScan); #endif pathList.setSize (500, 300); pathList.setPath (path); pathChooserWindow.addCustomComponent (&pathList); pathChooserWindow.addButton (TRANS("Scan"), 1, KeyPress (KeyPress::returnKey)); pathChooserWindow.addButton (TRANS("Cancel"), 0, KeyPress (KeyPress::escapeKey)); pathChooserWindow.enterModalState (true, ModalCallbackFunction::forComponent (startScanCallback, &pathChooserWindow, this), false); } else { startScan(); } }
char * serializeTableContent(RM_TableData *rel) { int i; VarString *result; RM_ScanHandle *sc = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); Record *r = (Record *) malloc(sizeof(Record)); MAKE_VARSTRING(result); for (i = 0; i < rel->schema->numAttr; i++) APPEND(result, "%s%s", (i != 0) ? ", " : "", rel->schema->attrNames[i]); startScan(rel, sc, NULL); while (next(sc, r) != RC_RM_NO_MORE_TUPLES) { APPEND_STRING(result, serializeRecord(r, rel->schema)); APPEND_STRING(result, "\n"); } closeScan(sc); RETURN_STRING(result); }
void printtable(char* tableName){ RM_TableData *table = (RM_TableData *) malloc(sizeof(RM_TableData)); Record *r = (Record *) malloc(sizeof(Record)); openTable(table, tableName); int i; printf("#######################################################\n"); for(i=0;i<table->schema->numAttr;i++){ printf("%-15s", table->schema->attrNames[i]); } printf("\n"); RM_ScanHandle *sc = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); startScan(table, sc, NULL); Value* v; while(next(sc, r) == RC_OK){ for(i=0;i<table->schema->numAttr;i++){ if(table->schema->dataTypes[i] == DT_INT) { getAttr(r,table->schema,i,&v); printf("%-15d",v->v.intV); } else if(table->schema->dataTypes[i] == DT_STRING) { getAttr(r,table->schema,i,&v); printf("%-15s",v->v.stringV); } else if(table->schema->dataTypes[i] == DT_FLOAT) { getAttr(r,table->schema,i,&v); printf("%-15fl",v->v.floatV); } else if(table->schema->dataTypes[i] == DT_BOOL) { getAttr(r,table->schema,i,&v); printf("%-15s",v->v.boolV ? "true" : "false"); } } printf("\n"); } printf("#######################################################\n"); }
DeviceDiscoveryDialog::DeviceDiscoveryDialog(QWidget *parent) : QDialog(parent), localDevice(new QBluetoothLocalDevice), ui(new Ui_DeviceDiscovery) { ui->setupUi(this); /* * In case of multiple Bluetooth adapters it is possible to set adapter * which will be used. Example code: * * QBluetoothAddress address("XX:XX:XX:XX:XX:XX"); * discoveryAgent = new QBluetoothDeviceDiscoveryAgent(address); * **/ discoveryAgent = new QBluetoothDeviceDiscoveryAgent(); connect(ui->inquiryType, SIGNAL(toggled(bool)), this, SLOT(setGeneralUnlimited(bool))); connect(ui->scan, SIGNAL(clicked()), this, SLOT(startScan())); connect(discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)), this, SLOT(addDevice(QBluetoothDeviceInfo))); connect(discoveryAgent, SIGNAL(finished()), this, SLOT(scanFinished())); connect(ui->list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(itemActivated(QListWidgetItem*))); connect(localDevice, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode)), this, SLOT(hostModeStateChanged(QBluetoothLocalDevice::HostMode))); hostModeStateChanged(localDevice->hostMode()); // add context menu for devices to be able to pair device ui->list->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->list, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(displayPairingMenu(QPoint))); connect(localDevice, SIGNAL(pairingFinished(QBluetoothAddress,QBluetoothLocalDevice::Pairing)) , this, SLOT(pairingDone(QBluetoothAddress,QBluetoothLocalDevice::Pairing))); }
void testScan() { printf("starting scan with max_ap_per_scan#%d base_period#%d threshold#%d \n", stest_max_ap,stest_base_period, stest_threshold); if (!startScan(&onScanResultsAvailable, stest_max_ap,stest_base_period, stest_threshold)) { printMsg("failed to start scan!!\n"); return; } else { EventInfo info; memset(&info, 0, sizeof(info)); while (true) { getEventFromCache(info); printMsg("retrieved event %d : %s\n", info.type, info.buf); retrieveScanResults(); if(--max_event_wait > 0) printMsg("Waiting for more :: %d event \n", max_event_wait); else break; } stopScan(); printMsg("stopped scan\n"); } }
static void trackSignificantChange() { printMsg("starting trackSignificantChange\n"); if (!startScan(&onScanResultsAvailable, stest_max_ap,stest_base_period, stest_threshold)) { printMsg("trackSignificantChange failed to start scan!!\n"); return; } else { printMsg("trackSignificantChange Scan started, waiting for event ...\n"); } EventInfo info; memset(&info, 0, sizeof(info)); getEventFromCache(info); int result = SelectSignificantAPsFromScanResults(); if (result == WIFI_SUCCESS) { printMsg("Waiting for significant wifi change event\n"); while (true) { memset(&info, 0, sizeof(info)); getEventFromCache(info); if (info.type == EVENT_TYPE_SCAN_RESULTS_AVAILABLE) { retrieveScanResults(); } else if(info.type == EVENT_TYPE_SIGNIFICANT_WIFI_CHANGE) { printMsg("Received significant wifi change"); if (--max_event_wait > 0) printMsg(", waiting for more event ::%d\n", max_event_wait); else break; } } untrackSignificantChange(); } else { printMsg("Failed to set significant change ::%d\n", result); } }
void testScans (void) { RM_TableData *table = (RM_TableData *) malloc(sizeof(RM_TableData)); TestRecord inserts[] = { {1, "aaaa", 3}, {2, "bbbb", 2}, {3, "cccc", 1}, {4, "dddd", 3}, {5, "eeee", 5}, {6, "ffff", 1}, {7, "gggg", 3}, {8, "hhhh", 3}, {9, "iiii", 2}, {10, "jjjj", 5}, }; TestRecord scanOneResult[] = { {3, "cccc", 1}, {6, "ffff", 1}, }; bool foundScan[] = { FALSE, FALSE }; int numInserts = 10, scanSizeOne = 2, i; Record *r; RID *rids; Schema *schema; RM_ScanHandle *sc = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); Expr *sel, *left, *right; int rc; testName = "test creating a new table and inserting tuples"; schema = testSchema(); rids = (RID *) malloc(sizeof(RID) * numInserts); TEST_CHECK(initRecordManager(NULL)); TEST_CHECK(createTable("test_table_r",schema)); TEST_CHECK(openTable(table, "test_table_r")); // insert rows into table for(i = 0; i < numInserts; i++) { r = fromTestRecord(schema, inserts[i]); TEST_CHECK(insertRecord(table,r)); rids[i] = r->id; } TEST_CHECK(closeTable(table)); TEST_CHECK(openTable(table, "test_table_r")); // run some scans MAKE_CONS(left, stringToValue("i1")); MAKE_ATTRREF(right, 2); MAKE_BINOP_EXPR(sel, left, right, OP_COMP_EQUAL); TEST_CHECK(startScan(table, sc, sel)); while((rc = next(sc, r)) == RC_OK) { for(i = 0; i < scanSizeOne; i++) { if (memcmp(fromTestRecord(schema, scanOneResult[i])->data,r->data,getRecordSize(schema)) == 0) foundScan[i] = TRUE; } } if (rc != RC_NO_TUPLES) TEST_CHECK(rc); TEST_CHECK(closeScan(sc)); for(i = 0; i < scanSizeOne; i++) ASSERT_TRUE(foundScan[i], "check for scan result"); // clean up TEST_CHECK(closeTable(table)); TEST_CHECK(deleteTable("test_table_r")); TEST_CHECK(shutdownRecordManager()); free(table); free(sc); freeExpr(sel); TEST_DONE(); }
void testMultipleScans(void) { RM_TableData *table = (RM_TableData *) malloc(sizeof(RM_TableData)); TestRecord inserts[] = { {1, "aaaa", 3}, {2, "bbbb", 2}, {3, "cccc", 1}, {4, "dddd", 3}, {5, "eeee", 5}, {6, "ffff", 1}, {7, "gggg", 3}, {8, "hhhh", 3}, {9, "iiii", 2}, {10, "jjjj", 5}, }; int numInserts = 10, i, scanOne=0, scanTwo=0; Record *r; RID *rids; Schema *schema; testName = "test running muliple scans "; schema = testSchema(); rids = (RID *) malloc(sizeof(RID) * numInserts); RM_ScanHandle *sc1 = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); RM_ScanHandle *sc2 = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); Expr *se1, *left, *right; int rc,rc2; TEST_CHECK(initRecordManager(NULL)); TEST_CHECK(createTable("test_table_r",schema)); TEST_CHECK(openTable(table, "test_table_r")); // insert rows into table for(i = 0; i < numInserts; i++) { r = fromTestRecord(schema, inserts[i]); TEST_CHECK(insertRecord(table,r)); rids[i] = r->id; } // Mix 2 scans with c=3 as condition MAKE_CONS(left, stringToValue("i3")); MAKE_ATTRREF(right, 2); MAKE_BINOP_EXPR(se1, left, right, OP_COMP_EQUAL); createRecord(&r, schema); TEST_CHECK(startScan(table, sc1, se1)); TEST_CHECK(startScan(table, sc2, se1)); if ((rc2 = next(sc2, r)) == RC_OK) scanTwo++; i = 0; while((rc = next(sc1, r)) == RC_OK) { scanOne++; i++; if (i % 3 == 0) if ((rc2 = next(sc2, r)) == RC_OK) scanTwo++; } while((rc2 = next(sc2, r)) == RC_OK) scanTwo++; ASSERT_TRUE(scanOne == scanTwo, "scans returned same number of tuples"); if (rc != RC_NO_TUPLES) TEST_CHECK(rc); TEST_CHECK(closeScan(sc1)); TEST_CHECK(closeScan(sc2)); TEST_CHECK(closeTable(table)); TEST_CHECK(deleteTable("test_table_r")); TEST_CHECK(shutdownRecordManager()); free(rids); free(table); TEST_DONE(); }
const Status Index::insertEntry(const void *value, RID rid) { Bucket* bucket; Status status; Bucket *newBucket; int newPageNo; char data[PAGESIZE*2]; int counter; int index; // If the 'unique' flag is set, scan the index to see if the // <attribute, rid> pair already exists if (headerPage->unique == UNIQUE) { RID outRid; if((status = startScan(value)) != OK) return status; while ((status = scanNext(outRid)) != NOMORERECS) { if (status != OK) return status; if (!memcmp(&outRid, &rid, sizeof(RID))) return NONUNIQUEENTRY; } if((status = endScan()) != OK) return status; } // Get the bucket containing the entry into buffer pool status = hashIndex(value, index); int pageNo = headerPage->dir[index]; #ifdef DEBUGIND cout << "Inserting entry " << *(int*)value << " to bucket " << pageNo << endl; #endif status = bufMgr->readPage(file, pageNo, (Page*&)bucket); if (status != OK) return status; // the bucket needs to be splitted if the number of entries // on the bucket equals the maximum if (bucket->slotCnt == numSlots) { // splitting bucket // allocate a new bucket status = bufMgr->allocPage(file, newPageNo, (Page*&)newBucket); if (status != OK) return status; // Initialize this newly allocated bucket newBucket->depth = ++(bucket->depth); newBucket->slotCnt = 0; // Copy all (value, rid) pairs in the old bucket and the new // entry to a temporary area memcpy(data, bucket->data, numSlots*recSize); memcpy(&(data[numSlots*recSize]), value, headerPage->length); memcpy(&(data[numSlots*recSize + headerPage->length]), &rid, sizeof(RID)); counter = bucket->slotCnt + 1; bucket->slotCnt = 0; // the directory needs to be doubled if the depth of the bucket // being splitted equals the depth of the directory if (bucket->depth > headerPage->depth) { // doubling directory // The directory is doubled and the lower half of the directory // is copied to the upper half int newDirSize = 2 * dirSize; if (newDirSize > DIRSIZE) return DIROVERFLOW; for (int i = 0; i < dirSize; i++) headerPage->dir[i + dirSize] = headerPage->dir[i]; dirSize = newDirSize; (headerPage->depth)++; headerPage->dir[index + (1 << (bucket->depth - 1))] = newPageNo; } else { // reset the appropriate directories to the new bucket int oldindex = index % (1 << (bucket->depth - 1)); int newindex = oldindex + (1 << (bucket->depth - 1)); for (int j = 0; j < dirSize; j++) if ((j % (1 << (bucket->depth))) == newindex) headerPage->dir[j] = newPageNo; } #ifdef DEBUGIND printDir(); #endif // call insertEntry recursively to insert all (value, rid) // pairs in the temporary area to the index for (int k = 0; k < counter; k++) { value = &(data[k * recSize]); rid = * ((RID *)((char *)value + headerPage->length)); status = insertEntry(value, rid); if (status != OK) return status; } status = bufMgr->unPinPage(file, newPageNo, true); if (status != OK) return status; } else { // There is sufficient free space in the bucket. Insert (value, rid) here int offset = (bucket->slotCnt) * recSize; memcpy(&(bucket->data[offset]), value, headerPage->length); memcpy(&(bucket->data[offset+headerPage->length]), &rid, sizeof(RID)); (bucket->slotCnt)++; } status = bufMgr->unPinPage(file, pageNo, true); return status; }
void QWifiManagerPrivateMac::timerEvent(QTimerEvent *) { // qDebug() << "Rescanning"; startScan(); }
EmberStatus emberAfZllInitiateTouchLink(void) { return startScan(SCAN_FOR_TOUCH_LINK); }
void testScansTwo (void) { RM_TableData *table = (RM_TableData *) malloc(sizeof(RM_TableData)); TestRecord inserts[] = { {1, "aaaa", 3}, {2, "bbbb", 2}, {3, "cccc", 1}, {4, "dddd", 3}, {5, "eeee", 5}, {6, "ffff", 1}, {7, "gggg", 3}, {8, "hhhh", 3}, {9, "iiii", 2}, {10, "jjjj", 5}, }; bool foundScan[] = { FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE }; int numInserts = 10, i; Record *r; RID *rids; Schema *schema; RM_ScanHandle *sc = (RM_ScanHandle *) malloc(sizeof(RM_ScanHandle)); Expr *sel, *left, *right, *first, *se; int rc; testName = "test creating a new table and inserting tuples"; schema = testSchema(); rids = (RID *) malloc(sizeof(RID) * numInserts); TEST_CHECK(initRecordManager(NULL)); TEST_CHECK(createTable("test_table_r",schema)); TEST_CHECK(openTable(table, "test_table_r")); // insert rows into table for(i = 0; i < numInserts; i++) { r = fromTestRecord(schema, inserts[i]); TEST_CHECK(insertRecord(table,r)); rids[i] = r->id; } TEST_CHECK(closeTable(table)); TEST_CHECK(openTable(table, "test_table_r")); // Select 1 record with INT in condition a=2. MAKE_CONS(left, stringToValue("i2")); MAKE_ATTRREF(right, 0); MAKE_BINOP_EXPR(sel, left, right, OP_COMP_EQUAL); createRecord(&r, schema); TEST_CHECK(startScan(table, sc, sel)); while((rc = next(sc, r)) == RC_OK) { ASSERT_EQUALS_RECORDS(fromTestRecord(schema, inserts[1]), r, schema, "compare records"); } if (rc != RC_NO_TUPLES) TEST_CHECK(rc); TEST_CHECK(closeScan(sc)); // Select 1 record with STRING in condition b='ffff'. MAKE_CONS(left, stringToValue("sffff")); MAKE_ATTRREF(right, 1); MAKE_BINOP_EXPR(sel, left, right, OP_COMP_EQUAL); createRecord(&r, schema); TEST_CHECK(startScan(table, sc, sel)); while((rc = next(sc, r)) == RC_OK) { ASSERT_EQUALS_RECORDS(fromTestRecord(schema, inserts[5]), r, schema, "compare records"); serializeRecord(r, schema); } if (rc != RC_NO_TUPLES) TEST_CHECK(rc); TEST_CHECK(closeScan(sc)); // Select all records, with condition being false MAKE_CONS(left, stringToValue("i4")); MAKE_ATTRREF(right, 2); MAKE_BINOP_EXPR(first, right, left, OP_COMP_SMALLER); MAKE_UNOP_EXPR(se, first, OP_BOOL_NOT); TEST_CHECK(startScan(table, sc, se)); while((rc = next(sc, r)) == RC_OK) { serializeRecord(r, schema); for(i = 0; i < numInserts; i++) { if (memcmp(fromTestRecord(schema, inserts[i])->data,r->data,getRecordSize(schema)) == 0) foundScan[i] = TRUE; } } if (rc != RC_NO_TUPLES) TEST_CHECK(rc); TEST_CHECK(closeScan(sc)); ASSERT_TRUE(!foundScan[0], "not greater than four"); ASSERT_TRUE(foundScan[4], "greater than four"); ASSERT_TRUE(foundScan[9], "greater than four"); // clean up TEST_CHECK(closeTable(table)); TEST_CHECK(deleteTable("test_table_r")); TEST_CHECK(shutdownRecordManager()); freeRecord(r); free(table); free(sc); freeExpr(sel); TEST_DONE(); }
EmberStatus emberAfZllDeviceInformationRequest(void) { return startScan(SCAN_FOR_DEVICE_INFORMATION); }
EmberStatus emberAfZllIdentifyRequest(void) { return startScan(SCAN_FOR_IDENTIFY); }
EmberStatus emberAfZllResetToFactoryNewRequest(void) { return startScan(SCAN_FOR_RESET); }
LibraryScanner::LibraryScanner(QWidget* pParentWidget, TrackCollection* collection) : m_pCollection(collection), m_libraryHashDao(m_database), m_cueDao(m_database), m_playlistDao(m_database), m_crateDao(m_database), m_directoryDao(m_database), m_analysisDao(m_database, collection->getConfig()), m_trackDao(m_database, m_cueDao, m_playlistDao, m_crateDao, m_analysisDao, m_libraryHashDao, collection->getConfig()) { // Don't initialize m_database here, we need to do it in run() so the DB // conn is in the right thread. qDebug() << "Starting LibraryScanner thread."; // Move LibraryScanner to its own thread so that our signals/slots will // queue to our event loop. moveToThread(this); m_pool.moveToThread(this); unsigned static id = 0; // the id of this LibraryScanner, for debugging purposes setObjectName(QString("LibraryScanner %1").arg(++id)); m_pool.setMaxThreadCount(kScannerThreadPoolSize); // Listen to signals from our public methods (invoked by other threads) and // connect them to our slots to run the command on the scanner thread. connect(this, SIGNAL(startScan()), this, SLOT(slotStartScan())); // Force the GUI thread's TrackInfoObject cache to be cleared when a library // scan is finished, because we might have modified the database directly // when we detected moved files, and the TIOs corresponding to the moved // files would then have the wrong track location. connect(this, SIGNAL(scanFinished()), &(collection->getTrackDAO()), SLOT(clearCache())); connect(this, SIGNAL(trackAdded(TrackPointer)), &(collection->getTrackDAO()), SLOT(databaseTrackAdded(TrackPointer))); connect(this, SIGNAL(tracksMoved(QSet<int>, QSet<int>)), &(collection->getTrackDAO()), SLOT(databaseTracksMoved(QSet<int>, QSet<int>))); connect(this, SIGNAL(tracksChanged(QSet<int>)), &(collection->getTrackDAO()), SLOT(databaseTracksChanged(QSet<int>))); // Parented to pParentWidget so we don't need to delete it. LibraryScannerDlg* pProgress = new LibraryScannerDlg(pParentWidget); connect(this, SIGNAL(progressLoading(QString)), pProgress, SLOT(slotUpdate(QString))); connect(this, SIGNAL(progressHashing(QString)), pProgress, SLOT(slotUpdate(QString))); connect(this, SIGNAL(scanStarted()), pProgress, SLOT(slotScanStarted())); connect(this, SIGNAL(scanFinished()), pProgress, SLOT(slotScanFinished())); connect(pProgress, SIGNAL(scanCancelled()), this, SLOT(cancel())); connect(&m_trackDao, SIGNAL(progressVerifyTracksOutside(QString)), pProgress, SLOT(slotUpdate(QString))); connect(&m_trackDao, SIGNAL(progressCoverArt(QString)), pProgress, SLOT(slotUpdateCover(QString))); start(); }
void radarStateClass::update(sf::RenderWindow& window) { sf::Event event; while(window.pollEvent(event)) { if(event.type == sf::Event::Closed) { window.close(); return; } else if(event.type == sf::Event::KeyPressed) { if(event.key.code == sf::Keyboard::Tab) { stopScan(); global::activeGameStateStack->pop(); return; } } } ++currentFrame; if(currentFrame > numberOfWaitFrame) { currentFrame = 0; } if(currentFrame == 0) { for(auto circleIte = listOfCircle.begin(); circleIte != listOfCircle.end(); ) { if(circleIte->getOutlineThickness() < maxThickness) { circleIte->setOutlineThickness(circleIte->getOutlineThickness() + 1); if(circleIte->getOutlineThickness() >= maxThickness) { circleIte->setFillColor(sf::Color::Transparent); } } else { circleIte->setRadius(circleIte->getRadius() + 0.1); } if(circleIte->getRadius() > maxRadius) { listOfCircle.erase(circleIte++); continue; } circleIte->setOrigin(circleIte->getRadius(), circleIte->getRadius()); ++circleIte; } } if(scannerTimer.getElapsedTime().asSeconds() > timeBetweenScan && inScan == false) { startScan(); } if(inScan == true) { moveScannerAndScan(); } global::activeGameStateStack->oldUpdate(window); }