INT32 _pmdDataProcessor::_onUpdateReqMsg( MsgHeader * msg, SDB_DPSCB *dpsCB ) { INT32 rc = SDB_OK ; INT32 flags = 0 ; CHAR *pCollectionName = NULL ; CHAR *pSelectorBuffer = NULL ; CHAR *pUpdatorBuffer = NULL ; CHAR *pHintBuffer = NULL ; rc = msgExtractUpdate( (CHAR*)msg, &flags, &pCollectionName, &pSelectorBuffer, &pUpdatorBuffer, &pHintBuffer ); PD_RC_CHECK( rc, PDERROR, "Session[%s] extract update message failed, " "rc: %d", getSession()->sessionName(), rc ) ; try { BSONObj selector( pSelectorBuffer ); BSONObj updator( pUpdatorBuffer ); BSONObj hint( pHintBuffer ); MON_SAVE_OP_DETAIL( eduCB()->getMonAppCB(), msg->opCode, "CL:%s, Match:%s, Updator:%s, Hint:%s", pCollectionName, selector.toString().c_str(), updator.toString().c_str(), hint.toString().c_str() ) ; PD_LOG ( PDDEBUG, "Session[%s] Update: selctor: %s\nupdator: %s\n" "hint: %s", getSession()->sessionName(), selector.toString().c_str(), updator.toString().c_str(), hint.toString().c_str() ) ; rc = rtnUpdate( pCollectionName, selector, updator, hint, flags, eduCB(), _pDMSCB, dpsCB ) ; } catch ( std::exception &e ) { PD_LOG ( PDERROR, "Session[%s] Failed to create selector and updator " "for update: %s", getSession()->sessionName(), e.what () ) ; rc = SDB_INVALIDARG ; goto error ; } done: return rc ; error: goto done ; }
void PUParticleSystem3D::forceUpdate( float delta ) { if (!_emitters.empty()){ calulateRotationOffset(); prepared(); emitParticles(delta); preUpdator(delta); updator(delta); postUpdator(delta); } Vec3 currentPos = getDerivedPosition(); _latestPositionDiff = currentPos - _latestPosition; _latestPosition = currentPos; _latestOrientation = getDerivedOrientation(); _timeElapsedSinceStart += delta; }