int cutstock::processRequest(vector<int> & requests, pipeStock & state) { cout << "processing remaining requests\n"; printvec(requests); cout << "at state\n"; printdvec(state); // static int memHit=0; if (requests.empty()) return state.size(); int nextReq=requests.back(); requests.pop_back(); set<int> numPipes; for (int i=0; i<state.size()+1; i++) { if (i == state.size() || checkPipe(state[i], nextReq)) { pipeStock newState=state; vector<int> newReq=requests; if (i == state.size()) { pipe p; newState.push_back(p); } newState[i].push_back(nextReq); int stocks; //search memory if (m.find(mapIndex(newState)) != m.end()) { stocks=m.find(mapIndex(newState))->second; memHit++; } else { //if not found in memory, go through recursion stocks=processRequest(newReq, newState); //record it in memory m[mapIndex(newState)]=stocks; } numPipes.insert(stocks); // numPipes.insert(processRequest(newReq, newState)); } } set<int>::iterator it=numPipes.begin(); return *it; }
void MainWindow::down() { QModelIndex index = mapIndex(_ui->listView->currentIndex()); QString name = _objectModel->data(index).toString(); if (_objectModel->enter(index.row())) _history.push_back(qMakePair(name, _objectModel->parentObjectId())); updateActionsState(); }
void MainWindow::onActivated ( const QModelIndex & proxyIndex ) { QModelIndex index = mapIndex(proxyIndex); QString name = _objectModel->data(index).toString(); if (_objectModel->enter(index.row())) _history.push_back(qMakePair(name, _objectModel->parentObjectId())); updateActionsState(); }
void MainWindow::downloadFiles() { QItemSelectionModel *selection =_ui->listView->selectionModel(); QModelIndexList rows = selection->selectedRows(); QVector<mtp::ObjectId> objects; for(QModelIndex row : rows) { row = mapIndex(row); objects.push_back(_objectModel->objectIdAt(row.row())); } downloadFiles(objects); }
virtual const wchar_t* getLabel(uint32 index) { index = mapIndex(index); if (index == 0) return Managers::GetString(L"#PM_VIEWPROFILE"); else if (index == 1) return Managers::GetString(L"#IF_PRELOADLAUNCH_INSTALLDEMO"); else if (index == 2) return Managers::GetString(L"#IF_PRELOADLAUNCH_INSTALLOTHER"); return nullptr; }
void MainWindow::renameFile() { QItemSelectionModel *selection =_ui->listView->selectionModel(); QModelIndexList rows = selection->selectedRows(); if (rows.empty()) return; QModelIndex row = mapIndex(rows.at(0)); RenameDialog d(_objectModel->data(row).toString(), this); restoreGeometry("rename-dialog", d); if (d.exec()) _objectModel->rename(row.row(), d.name()); saveGeometry("rename-dialog", d); }
void MainWindow::deleteFiles() { QItemSelectionModel *selection =_ui->listView->selectionModel(); QModelIndexList rows = selection->selectedRows(); int r = QMessageBox::question(this, tr("Deleting file(s)"), tr("Are you sure?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No ); if (r != QMessageBox::Yes) return; MtpObjectList objects; for(QModelIndex row : rows) { row = mapIndex(row); objects.push_back(_objectModel->objectIdAt(row.row())); } _objectModel->deleteObjects(objects); }
virtual void performAction(uint32 index) { index = mapIndex(index); if (index == 0) { g_pMainApp->handleInternalLink(m_Id, ACTION_PROFILE); } else if (index == 1) { std::vector<std::string> argsList; argsList.push_back(gcString("branch={0}", (uint32)m_DemoBranch)); g_pMainApp->handleInternalLink(m_Id, ACTION_INSTALL, argsList); } else if (index == 2) { std::vector<std::string> argsList; argsList.push_back("skippreorder"); g_pMainApp->handleInternalLink(m_Id, ACTION_INSTALL, argsList); } }
/** * Receiver::handle_event() * * Description: * Processes an event that arrived through the MC-Channel * * Parameters: * _eventData: header of IP/MC Event packet * _iov: Complete packet */ int Receiver::handle_event(EventData &_eventData, iovec *_iov) { ACE_INET_Addr from; /* Drop the packet if data doesn't fit */ if ((_eventData.requestSize < _eventData.fragmentSize) || (_eventData.fragmentOffset >= _eventData.requestSize) || (_eventData.fragmentId >= _eventData.fragmentCount)) { PRINT_DBG(DBG_INFO, "Dropping packet"); return 0; } /* Index the incomplete (due to fragmentation) requests */ RequestIndex mapIndex(from, _eventData.requestId); RequestMapEntry *entry; if (this->requestMap_.find(mapIndex, entry) == -1) { /* Create an entry and insert it... */ RequestEntry *requestEntry = new RequestEntry(_eventData.byteOrder, _eventData.requestId, _eventData.requestSize, _eventData.fragmentCount); /* Drop the packet if impossible to bind entry to map */ if ((requestEntry == 0) || (this->requestMap_.bind(mapIndex, requestEntry, entry) == -1)) { PRINT_DBG(DBG_VERBOSE, "Unable to index, dropping"); return 0; } } /* Validate the message... */ if (entry->int_id_->validateFragment(_eventData.byteOrder, _eventData.requestSize, _eventData.fragmentSize, _eventData.fragmentOffset, _eventData.fragmentId, _eventData.fragmentCount) == 0) { PRINT_DBG(DBG_VERBOSE, "Fragment rejected"); return 0; } /* Already received this fragment */ if (entry->int_id_->testReceived(_eventData.fragmentId) == 1) { PRINT_DBG(DBG_VERBOSE, "Duplicate Fragment, dropping"); return 0; } /* Copy the payload into the fragment buffer */ char *buffer = (char *)_iov[0].iov_base + HEADER_SIZE; int bufferLen = _iov[0].iov_len - HEADER_SIZE; memcpy(entry->int_id_->fragmentBuffer(_eventData.fragmentOffset), buffer, bufferLen); /* Mark datagram fragment as received */ entry->int_id_->markReceived(_eventData.fragmentId); /* If the message is not complete we must return... */ if (!entry->int_id_->complete()) return 0; /* Demarshal datagram payload */ ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { CosNotification::StructuredEvent event; /* Decode datagram */ entry->int_id_->decode(event ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; /* Drop packet if it's too old */ if (ACE_OS::gettimeofday().msec() - _eventData.timestamp > configuration_->getEventMaxAge()) { PRINT_DBG(DBG_VERBOSE, "Packet " << _eventData.requestId << " dropped because it was too old"); return 0; } /* Send event to event channel */ sendEvent(event ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY { ACE_PRINT_EXCEPTION(ACE_ANY_EXCEPTION, "NotifyMulticastReceiver::handle_input"); } ACE_ENDTRY; return 0; }