void CComponentVida::Update(float _fDeltaTime) { if(m_fHoTTime > 0.0f) { m_fHoTTime -= _fDeltaTime; Increase(m_fHoT * _fDeltaTime); }else { m_fHoTTime = 0.0f; } if(m_fDoTTime > 0.0f) { m_fDoTTime -= _fDeltaTime; Decrease(m_fDoT * _fDeltaTime); }else { m_fDoTTime = 0.0f; } if(m_bRegen) { if(m_fTimeSinceHit <= m_fTimeForRegen) { m_fTimeSinceHit += _fDeltaTime; }else{ Increase(m_fRegenAmount * _fDeltaTime); } } }
CPlayer::CPlayer() : m_pHead(nullptr) , m_pTail(nullptr) { m_pReflectObject = new CReflectObject(); float color[4] = { 0 }; for (int i = 0; i < 4; ++i) { color[i] = (rand() % 255) / 255.0f; } m_pColorLightObject = new CColorPointLightObject(color); Increase(); Increase(); }
TEST(ZXTestCAssertionTest, AssertBytesSingleCall) { called = 0; getter_called = 0; EXPECT_BYTES_EQ(Get(), Increase()); ZX_ASSERT_MSG(called == 1, "ASSERT_BYTES_* evaluating multiple times."); ZX_ASSERT_MSG(getter_called == 1, "ASSERT_* evaluating multiple times."); }
void main() { ABList L; printf("nnttWelcom to the information management system!nttt Copyright. Huang Wenbo,2010.n"); InitList_AB(L); load(L); system("color 18"); int flag=1; while(flag) { switch(menu()) { case 1:CreatABList(L);break; case 2:Increase(L);break; case 3:del(L);break; case 4:Modify(L);break; case 5:search(L);break; case 6:save(L);break; case 7:destroy(L);break; case 8:system("cls");break; case 9:flag = 0;printf("ttt欢迎下次使用! nttCopyright.Huang Wenbo,2010.n"); } } }
void CComponentEnergy::Update(float _fDeltaTime) { if(m_fTimeSinceUsed <= m_fTimeForRegen) { m_fTimeSinceUsed += _fDeltaTime; }else{ Increase(m_fRegenAmount * _fDeltaTime); } }
void partitionIncreasing(int value) { printf("partitionIncreasing %d\n", value); int * arr = malloc(value * sizeof(int)); int ind = 0; Increase(value,arr,ind); free(arr); }
int CSem::Inc(int nSemIdx, bool bNoWait, bool bUndo, int val) { if(m_nBCounterNum > 0) { return CounterInc(nSemIdx); } else { return Increase(nSemIdx, bNoWait, bUndo, val); } }
int CSem::CreateCounter(int nKey, int nCounterNum) { if ( nCounterNum > MAX_BIGCOUNTER_NUM || nCounterNum < 1 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d", __func__, SEM_ERR_CREATECOUNTER_PARA); return SEM_ERR_CREATECOUNTER_PARA; } int nCnt = nCounterNum * 2 + 1; int nSemID = semget ( nKey,nCnt,IPC_CREAT|0666 ); if (nSemID == -1) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATECOUNTER_SEMGET, strerror(errno)); return SEM_ERR_CREATECOUNTER_SEMGET; } m_nKey = nKey; m_nSemID = nSemID; m_nSemCnt = nCnt; m_nBCounterNum = nCounterNum; m_nMaxVal = SEM_VALUE_MAX * SEM_VALUE_MAX; //初始化信号量 union semun sem; sem.val = 0; sem.array = new ushort [nCnt]; for ( int i = 0; i < nCnt; i++ ) { sem.array[i] = 0; } sem.array[m_nSemCnt - 1] = m_nBCounterNum; //最后一个用于记录BigCounter个数 int nRet = semctl (m_nSemID, nCnt, SETALL, sem); delete [] sem.array; if ( nRet < 0 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATECOUNTER_SEMCTL, strerror(errno)); return SEM_ERR_CREATECOUNTER_SEMCTL; } nRet = Increase(0, true, true); if(nRet < 0) return nRet; nRet = Decrease(0, true, true); if(nRet < 0) return nRet; return m_nSemID; }
void Action::Push(Double m_val) { #if FIXINT_BITS == 32 uint32_t tmp = *((uint32_t*)&m_val.intValue); if (MemWriteLeft() < 4) Increase(); SDLNet_Write32(m_val, m_write); m_write += 4; #else uint32_t tmp[2]; if (MemWriteLeft() < 8) Increase(); memcpy(tmp, &m_val.intValue, 8); # if (SDL_BYTEORDER == SDL_LIL_ENDIAN) SDLNet_Write32(tmp[0], m_write); m_write+= 4; SDLNet_Write32(tmp[1], m_write); m_write+= 4; # else SDLNet_Write32(tmp[1], m_write); m_write+= 4; SDLNet_Write32(tmp[0], m_write); m_write+= 4; # endif #endif m_header.len += sizeof(fp::fint_t); }
void Action::Push(const std::string& m_val) { // First, write the size of the string (assume len<65536): uint16_t size = m_val.size(); if (MemWriteLeft() < uint(size+2)) Increase(size+2); SDLNet_Write16(size, m_write); m_write += 2; // Then write the actual string if (size) { memcpy(m_write, m_val.c_str(), size); m_write += size; } m_header.len += size+2; }
void Increase(int n,int * arr,int ind) { int val; if(n == 0) { partprint(arr,ind); return; } for(val=1;val<=n;val++) { arr[ind]=val; if(arr[ind]>arr[ind-1]) { Increase(n-val,arr,ind+1); } } }
void TimeTextCtrl::OnMouse(wxMouseEvent &event) { if (event.LeftDown() && event.GetX() >= mWidth) { wxContextMenuEvent e; OnContext(e); } else if (event.LeftDown()) { SetFocus(); int bestDist = 9999; unsigned int i; mFocusedDigit = 0; for(i=0; i<mDigits.GetCount(); i++) { int dist = abs(event.m_x - (mDigits[i].digitBox.x + mDigits[i].digitBox.width/2)); if (dist < bestDist) { mFocusedDigit = i; bestDist = dist; } } Refresh(false); } else if (event.RightDown() && mMenuEnabled) { wxContextMenuEvent e; OnContext(e); } else if( event.m_wheelRotation != 0 ) { int steps = event.m_wheelRotation / (event.m_wheelDelta > 0 ? event.m_wheelDelta : 120); if (steps < 0) { Decrease(-steps); Updated(); } else { Increase(steps); Updated(); } } }
/** Called by ServiceL() It tests the function code and then delegates to the appropriate function. */ void CCountServSession::DispatchMessageL(const RMessage2& aMessage) { switch (aMessage.Function()) { case ECountServSetFromString: SetFromStringL(aMessage); return; case ECountServIncrease: Increase(); return; case ECountServIncreaseBy: IncreaseBy(aMessage); return; case ECountServDecrease: Decrease(); return; case ECountServDecreaseBy: DecreaseBy(aMessage); return; case ECountServReset: Reset(); return; case ECountServValue: CounterValueL(aMessage); return; // This is an example of a request that we know about, but don't support. // We cause KErrNotSupported to be returned to the client. case ECountServUnsupportedRequest: User::Leave(KErrNotSupported); // Requests that we don't understand at all are a different matter. // This is considered a client programming error, so we panic the // client - this also completes the message. default: PanicClient(aMessage,EBadRequest); return; } }
bool FolderDelThread::RmFolder(const QDir& dir){ if(!dir.exists()) return true; QFileInfoList fileList = dir.entryInfoList(); foreach(QFileInfo info,fileList) { QString fileName = info.fileName(); if(fileName == "." || fileName==".."){ //暂时先不处理 }else if(info.isFile() || info.isSymLink()){ QFile file(info.filePath()); FAIL_RET( file.setPermissions(QFile::WriteOwner) ); FAIL_RET( file.remove() ); emit Increase(); emit Name(fileName); }else if(info.isDir()){ FAIL_RET(RmFolder(info.filePath())); }else{ //不存在其他类型的情况 assert(false); return false; } }
// [ Sem1 Sem2 ] = SmallCounter // 两个信号量为1个SmallCounter,组成1个小计数器,第一个信号量用作开关,第二个用于计数 // // [Group1]...[GroupN] = BigCounter // 多个SmallCounter组成1个大计数器 // // [BigCounter1] ... [BigCounterN] = Semaphores // 信号量集根据大计数器的个数,为每个大计数器平均分配SmallCounter数量 // // 每个BigCounter的最大计数值 = SmallCounter数量 * SEM_VALUE_MAX int CSem::CreateCounter(int nKey, int nCounterNum) { if ( nCounterNum > MAX_BIGCOUNTER_NUM || nCounterNum < 1 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d", __func__, SEM_ERR_CREATECOUNTER_PARA); return SEM_ERR_CREATECOUNTER_PARA; } int nCnt = 65535; int nSemID = semget ( nKey,nCnt,IPC_CREAT|0666 ); if (nSemID == -1) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATECOUNTER_SEMGET, strerror(errno)); return SEM_ERR_CREATECOUNTER_SEMGET; } m_nKey = nKey; m_nSemID = nSemID; m_nSemCnt = nCnt; m_nBCounterNum = nCounterNum; int res = 0; if(m_nBCounterNum % 2 == 0) { res = 0;//剩下的是单数 } else res = 1;//剩下的是双数 m_nSCounterNum = ((m_nSemCnt - res - m_nBCounterNum - 1) / m_nBCounterNum) / 2 ; m_nMaxVal = m_nSCounterNum * SEM_VALUE_MAX; //初始化信号量 union semun sem; sem.val = 0; sem.array = new ushort [nCnt]; for ( int i = 0; i < m_nSCounterNum * 2 * m_nBCounterNum; i++ ) { if(i % (m_nSCounterNum * 2) == 0) //第一个开关打开 { sem.array[i] = 0; continue; } if(i % 2 == 0) //其余开关关闭 { sem.array[i] = 1; } else //计数器清0 sem.array[i] = 0; } for ( int i = m_nSCounterNum * 2 * m_nBCounterNum; i < m_nSCounterNum * 2 * m_nBCounterNum + m_nBCounterNum; i++ )//SmallCounter记录清0 { sem.array[i] = 0; } for ( int i = m_nSCounterNum * 2 * m_nBCounterNum + m_nBCounterNum; i < m_nSemCnt - 1; i++ )//用于锁 { sem.array[i] = 0; } sem.array[m_nSemCnt - 1] = m_nBCounterNum; //最后一个用于记录BigCounter个数 int nRet = semctl (m_nSemID, nCnt, SETALL, sem); delete [] sem.array; if ( nRet < 0 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATECOUNTER_SEMCTL, strerror(errno)); return SEM_ERR_CREATECOUNTER_SEMCTL; } nRet = Increase(0, true, true); if(nRet < 0) return nRet; nRet = Decrease(0, true, true); if(nRet < 0) return nRet; return m_nSemID; }
int CSem::Create(int nKey, int nCnt, int initVal) { assert ( nKey != -1 ); int nSemID, nRet; union semun sem ; if ( nCnt < 1 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d", __func__, SEM_ERR_CREATE_PARA); return SEM_ERR_CREATE_PARA; } nSemID = semget ( nKey,nCnt,IPC_CREAT|0666 ); if (nSemID == -1) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATE_SEMGET, strerror(errno)); return SEM_ERR_CREATE_SEMGET; } m_nKey = nKey; m_nSemID = nSemID; m_nSemCnt = nCnt; //初始化信号量 sem.val = initVal; sem.array = new ushort [nCnt]; for ( int i = 0; i < nCnt; i++ ) sem.array[i] = initVal; nRet = semctl (m_nSemID, nCnt, SETALL, sem); delete [] sem.array; if ( nRet < 0 ) { snprintf(m_errmsg, sizeof(m_errmsg), "%s=%d,%s", __func__, SEM_ERR_CREATE_SEMCTL, strerror(errno)); return SEM_ERR_CREATE_SEMCTL; } ///初始化后立即调用,主要是要调用semop函数操作改变arg.buf->sem_otime if(initVal == SEM_VALUE_MAX) { nRet = Decrease(0, true, true); if(nRet < 0) return nRet; nRet = Increase(0, true, true); if(nRet < 0) return nRet; } else { nRet = Increase(0, true, true); if(nRet < 0) return nRet; nRet = Decrease(0, true, true); if(nRet < 0) return nRet; } return m_nSemID; }
void LWSlider::OnKeyEvent(wxKeyEvent & event) { if (mEnabled) { switch( event.GetKeyCode() ) { case WXK_RIGHT: case WXK_UP: Increase( mScrollLine ); SendUpdate( mCurrentValue ); break; case WXK_LEFT: case WXK_DOWN: Decrease( mScrollLine ); SendUpdate( mCurrentValue ); break; case WXK_PAGEUP: #if !wxCHECK_VERSION(2,7,0) case WXK_PRIOR: #endif Increase( mScrollPage ); SendUpdate( mCurrentValue ); break; case WXK_PAGEDOWN: #if !wxCHECK_VERSION(2,7,0) case WXK_NEXT: #endif Decrease( mScrollPage ); SendUpdate( mCurrentValue ); break; case WXK_HOME: SendUpdate( mMinValue ); break; case WXK_END: SendUpdate( mMaxValue ); break; case WXK_TAB: { wxNavigationKeyEvent nevent; nevent.SetWindowChange( event.ControlDown() ); nevent.SetDirection( !event.ShiftDown() ); nevent.SetEventObject( mParent ); nevent.SetCurrentFocus( mParent ); mParent->GetParent()->ProcessEvent( nevent ); } break; case WXK_RETURN: case WXK_NUMPAD_ENTER: { wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(mParent), wxTopLevelWindow); wxWindow *def = tlw->GetDefaultItem(); if (def && def->IsEnabled()) { wxCommandEvent cevent(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId()); mParent->ProcessEvent(cevent); } } default: // Allow it to propagate event.Skip(); break; } } event.Skip(); }
void TimeTextCtrl::OnKeyDown(wxKeyEvent &event) { event.Skip(false); int keyCode = event.GetKeyCode(); int digit = mFocusedDigit; if (mFocusedDigit < 0) mFocusedDigit = 0; if (mFocusedDigit >= (int)mDigits.GetCount()) mFocusedDigit = mDigits.GetCount()-1; // Convert numeric keypad entries. if ((keyCode >= WXK_NUMPAD0) && (keyCode <= WXK_NUMPAD9)) keyCode -= WXK_NUMPAD0 - '0'; if (keyCode >= '0' && keyCode <= '9') { mValueString[mDigits[mFocusedDigit].pos] = wxChar(keyCode); ControlsToValue(); ValueToControls(); mFocusedDigit = (mFocusedDigit+1)%(mDigits.GetCount()); Updated(); } else if (keyCode == WXK_BACK) { // Moves left, replaces that char with '0', stays there... mFocusedDigit--; mFocusedDigit += mDigits.GetCount(); mFocusedDigit %= mDigits.GetCount(); mValueString[mDigits[mFocusedDigit].pos] = '0'; ControlsToValue(); ValueToControls(); Updated(); } else if (keyCode == WXK_LEFT) { mFocusedDigit--; mFocusedDigit += mDigits.GetCount(); mFocusedDigit %= mDigits.GetCount(); Refresh(); } else if (keyCode == WXK_RIGHT) { mFocusedDigit++; mFocusedDigit %= mDigits.GetCount(); Refresh(); } else if (keyCode == WXK_HOME) { mFocusedDigit = 0; Refresh(); } else if (keyCode == WXK_END) { mFocusedDigit = mDigits.GetCount() - 1; Refresh(); } else if (keyCode == WXK_UP) { Increase(1); Updated(); } else if (keyCode == WXK_DOWN) { Decrease(1); Updated(); } else if (keyCode == WXK_TAB) { wxWindow *parent = GetParent(); wxNavigationKeyEvent nevent; nevent.SetWindowChange(event.ControlDown()); nevent.SetDirection(!event.ShiftDown()); nevent.SetEventObject(parent); nevent.SetCurrentFocus(parent); GetParent()->ProcessEvent(nevent); } else if (keyCode == WXK_RETURN || keyCode == WXK_NUMPAD_ENTER) { wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow); wxWindow *def = tlw->GetDefaultItem(); if (def && def->IsEnabled()) { wxCommandEvent cevent(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId()); GetParent()->ProcessEvent(cevent); } } else { event.Skip(); return; } if (digit != mFocusedDigit) { SetFieldFocus(mFocusedDigit); } event.Skip(false); }
void LWSlider::OnMouseEvent(wxMouseEvent & event) { if (event.Entering()) { #if wxUSE_TOOLTIPS // Not available in wxX11 // Display the tooltip in the status bar if (mParent->GetToolTip()) { wxString tip = mParent->GetToolTip()->GetTip(); GetActiveProject()->TP_DisplayStatusMessage(tip); Refresh(); } #endif } else if (event.Leaving()) { GetActiveProject()->TP_DisplayStatusMessage(wxT("")); Refresh(); } // Events other than mouse-overs are ignored when we are disabled if (!mEnabled) return; float prevValue = mCurrentValue; // Figure out the thumb position wxRect r; if (mOrientation == wxHORIZONTAL) { r.x = mLeft + ValueToPosition(mCurrentValue); r.y = mTop + (mCenterY - (mThumbHeight / 2)); } else { r.x = mLeft + (mCenterX - (mThumbWidth / 2)); r.y = mTop + ValueToPosition(mCurrentValue); } r.width = mThumbWidth; r.height = mThumbHeight; wxRect tolerantThumbRect = r; tolerantThumbRect.Inflate(3, 3); // Should probably use a right click instead/also if( event.ButtonDClick() && mPopup ) { //On a double-click, we should pop up a dialog. DoShowDialog(mParent->ClientToScreen(wxPoint(event.m_x,event.m_y))); } else if( event.ButtonDown() ) { if( mDefaultShortcut && event.CmdDown() ) { mCurrentValue = mDefaultValue; } if( event.RightDown() ) { mParent->SetFocus(); } // Thumb clicked? // // Do not change position until first drag. This helps // with unintended value changes. if( tolerantThumbRect.Contains( event.GetPosition() ) ) { // Remember mouse position and current value mClickPos = (mOrientation == wxHORIZONTAL) ? event.m_x : event.m_y; mClickValue = mCurrentValue; mIsDragging = true; } // Clicked to set location? else { mCurrentValue = ClickPositionToValue( (mOrientation == wxHORIZONTAL) ? event.m_x : event.m_y, event.ShiftDown()); } mParent->CaptureMouse(); // wxSetCursor(wxCURSOR_BLANK); ((TipPanel*)LWSlider::sharedTipPanel)->SetTargetParent(mParent); FormatPopWin(); SetPopWinPosition(); LWSlider::sharedTipPanel->Show(); //hide mouseover tooltip wxToolTip::Enable(false); } else if( event.ButtonUp() ) { mIsDragging = false; if (mParent->HasCapture()) mParent->ReleaseMouse(); LWSlider::sharedTipPanel->Hide(); //restore normal tooltip behavor for mouseovers wxToolTip::Enable(true); // wxSetCursor(wxNullCursor); } else if (event.Dragging() && mIsDragging) { if (mOrientation == wxHORIZONTAL) { if (event.m_y < (r.y - 2 * r.height) || event.m_y > (r.y + 3 * r.height)) { // If the mouse y coordinate is relatively far from the slider, // snap back to the original position mCurrentValue = mClickValue; } else { // Otherwise, move the slider to the right position based // on the mouse position mCurrentValue = DragPositionToValue(event.m_x, event.ShiftDown()); } } else // (mOrientation == wxVERTICAL) { if (event.m_x < (r.x - 2 * r.width) || event.m_x > (r.x + 3 * r.width)) { // If the mouse x coordinate is relatively far from the slider, // snap back to the original position mCurrentValue = mClickValue; } else { // Otherwise, move the slider to the right position based // on the mouse position mCurrentValue = DragPositionToValue(event.m_y, event.ShiftDown()); } } } else if( event.m_wheelRotation != 0 ) { //Calculate the number of steps in a given direction this event //represents (allows for two or more clicks on a single event.) double steps = event.m_wheelRotation / (event.m_wheelDelta > 0 ? (double)event.m_wheelDelta : 120.0); if( steps < 0.0 ) { Decrease( (float)-steps ); } else { Increase( (float)steps ); } SendUpdate( mCurrentValue ); } if( prevValue != mCurrentValue ) SendUpdate( mCurrentValue ); }
//------------- Add datas to the action ---------------- void Action::Push(int32_t m_val) { if (MemWriteLeft() < 4) Increase(); SDLNet_Write32(m_val, m_write); m_write += 4; m_header.len += 4; }