void HashTable::flush( DeleteType dt ) { int shouldDel = delObj( dt ); table.forEach( setOwner, &shouldDel ); table.flush( 1 ); itemsInContainer = 0; }
void SortedArray::detach( Object& toDetach, DeleteType dt ) { int detachPoint = find( toDetach ); if( detachPoint != INT_MIN ) { if( delObj(dt) ) delete ptrAt( detachPoint ); removeEntry( detachPoint ); itemsInContainer--; if( detachPoint <= lastElementIndex ) lastElementIndex--; } }
void DoubleList::flush( DeleteType dt ) { ListElement *current = head->next; while( current != tail ) { ListElement *temp = current; current = current->next; if( delObj(dt) ) delete temp->data; delete temp; } head->next = tail; tail->prev = head; itemsInContainer = 0; }
void DoubleList::detachFromTail( Object& toDetach, DeleteType dt ) { head->data = &toDetach; ListElement *current = tail->prev; while( *(current->data) != toDetach ) current = current->prev; head->data = 0; if( current->data == 0 ) // not found return; current->next->prev = current->prev; current->prev->next = current->next; if( delObj(dt) ) delete current->data; delete current; itemsInContainer--; }
MojErr MojDb::delImpl(const MojObject& id, bool& foundOut, MojObject& foundObjOut, MojDbReq& req, MojUInt32 flags) { MojLogTrace(s_log); foundObjOut.clear(); // get object, so we can find the type MojRefCountedPtr<MojDbStorageItem> item; MojErr err = m_objDb->get(id, req.txn(), true, item); MojErrCheck(err); if (item.get()) { // and delete it MojObject obj; err = item->toObject(obj, m_kindEngine); MojErrCheck(err); err = delObj(id, obj, item.get(), foundObjOut, req, flags); MojErrCheck(err); foundOut = true; } return MojErrNone; }
int TSubScheme::do_preRun( int run_tp, int an, int anx, int any, double atdt ) { TMiso::do_preRun( run_tp, an, anx, any, atdt ); IGNORE_MOD_HERE; sch_proto = getObjOfAncessorT<Scheme*>( sch_name ); if( !sch_proto ) { qWarning() << "Subscheme prototype is not available" << sch_name <<NWHE; return 0; } if( getObj( sch_ename ) ) { delObj( sch_ename ); } sch = addObjT<Scheme>( sch_ename ); if( ! sch ) { qWarning() << "Fail to create subscheme " << NWHE; return 0; } sch->addFlags( efNoSave ); QString ss = sch_proto->toString(); if( ! sch->fromString( ss ) ) { qWarning() << "Fail to copy prototype " << sch_name << NWHE; return 0; } // handleStructChanged(); sch->handleStructChanged(); subouts.clear(); for( auto so : TCHILD(SubOutput*) ) { so->set_link(); subouts.append( so ); } return sch->preRun( run_tp, an, anx, any, atdt ); }
ICPWidget::ICPWidget(QWidget *parent) : QFrame(parent), ui(new Ui::ICPWidget) { ui->setupUi(this); v.initCameraParameters(); v.setBackgroundColor(1.0,1.0,1.0); v.addCoordinateSystem(0.3); v.registerPointPickingCallback<ICPWidget>(&ICPWidget::pick,*this,NULL); v.registerKeyboardCallback<ICPWidget>(&ICPWidget::key,*this,NULL); widget.SetRenderWindow(v.getRenderWindow()); ui->frameView->layout()->addWidget(&widget); ui->tools->setCurrentIndex(0); QString dataInfo; Pipe::loadData(_FrameKeyList,dataInfo,Pipe::_FrameListKey); Pipe::loadData(_IdMapKeyList,dataInfo,Pipe::_IdMapListKey); frameCloud = FullPointCloud::Ptr(new FullPointCloud); segCloud = FullPointCloud::Ptr(new FullPointCloud); currentFrame = 0; currentState = PICK_FRAME; currentObjIndex = -1; connect(ui->nextFrame,SIGNAL(clicked()),this,SLOT(nextFrame())); connect(ui->lastFrame,SIGNAL(clicked()),this,SLOT(lastFrame())); connect(ui->loadFrame,SIGNAL(clicked()),this,SLOT(reLoadFrameWithView())); connect(ui->addObj,SIGNAL(clicked()),this,SLOT(addObj())); connect(ui->delObj,SIGNAL(clicked()),this,SLOT(delObj())); connect(ui->icpObj,SIGNAL(clicked()),this,SLOT(icpObj())); connect(ui->tools,SIGNAL(currentChanged(int)),this,SLOT(changeState(int))); connect(ui->outObj,SIGNAL(clicked()),this,SLOT(outputObj())); connect(ui->outFrame,SIGNAL(clicked()),this,SLOT(outputFrame())); }
void Player::putObj(GameObject *obj) { _map->addObj(_posX, _posY, obj); delObj(obj); }
MojErr MojDb::delImpl(const MojDbQuery& quer, MojUInt32& countOut, MojDbReq& req, MojUInt32 flags) { MojLogTrace(s_log); countOut = 0; MojInt32 warns = 0; MojDbQuery newQuery = quer; MojUInt32 queryLimit = newQuery.limit(); if(newQuery.limit() == MojDbQuery::LimitDefault) newQuery.limit(AutoBatchSize); while(queryLimit > 0) { MojDbCursor cursor; MojErr err = findImpl(newQuery, cursor, NULL, req, OpDelete); MojErrCheck(err); MojAssert(cursor.txn()); MojUInt32 count = 0; MojUInt32 numberInBatch = 0; bool found = false; MojObject obj; for (;;) { MojDbStorageItem* item = NULL; err = cursor.get(item, found); // We simply skip ghost keys and continue; A warning is already written to the system log earlier if (err == MojErrInternalIndexOnFind) { warns++; numberInBatch++; continue; } MojErrCheck(err); if (!found) break; err = item->toObject(obj, m_kindEngine); MojErrCheck(err); const MojObject& id = item->id(); MojObject deleted; err = delObj(id, obj, item, deleted, req, flags); MojErrCheck(err); ++count; numberInBatch++; } if (warns > 0) MojLogInfo(s_log, _T("delquery index_warnings: %s, count: %d\n"), newQuery.from().data(), warns); countOut += count; err = cursor.close(); MojErrCheck(err); if(numberInBatch >= AutoBatchSize) // sing > - just in case something messed up { err = commitBatch(req); MojErrCheck(err); } if(count == 0) break; queryLimit -= newQuery.limit(); if(queryLimit > AutoBatchSize) newQuery.limit(AutoBatchSize); else newQuery.limit(queryLimit); } return MojErrNone; }