コード例 #1
0
ファイル: Conditional.hpp プロジェクト: el-bart/TIER
 // wait for condition to be met
 inline void wait(void)
 {
   Lock lock(_mutex);
   // wait and check if condition is met:
   while( !testCondition() )
     if( pthread_cond_wait(&_cond._cond, &_mutex._mutex)!=0 )
       throw Threads::Exception("Conditional::wait(): "
                                "pthread_cond_wait() failed");
 };
コード例 #2
0
ファイル: async_wait.c プロジェクト: MarkMielke/brltty
int
asyncAwaitCondition (int timeout, AsyncConditionTester *testCondition, void *data) {
  TimePeriod period;
  startTimePeriod(&period, timeout);

  while (!(testCondition && testCondition(data))) {
    long int elapsed;

    if (afterTimePeriod(&period, &elapsed)) return 0;
    awaitAction(timeout - elapsed);
  }

  return 1;
}
コード例 #3
0
ファイル: AiEntity.cpp プロジェクト: jrbeck/longshot
void AiEntity::updateState() {
  // test conditions
  AiSpecies* species = gSpeciesData.get(mType);
  size_t totalStates = species->stateMachine.mStates.size();
  bool isDone = false;
  for (size_t i = 0; i < totalStates && !isDone; i++) {
    if (species->stateMachine.mStates[i].state == mCurrentState) {
      if (testCondition(species->stateMachine.mStates[i].condition)) {
        mCurrentState = species->stateMachine.mStates[i].nextState;
        isDone = true;
      }
    }
  }

  switch(mCurrentState) {
  case AISTATE_ALL:
    printf("AiEntity::updateState(): AISTATE_ALL: should not be here...\n");
    mCurrentState = AISTATE_STOP;
    break;
  case AISTATE_STOP:
    break;
  case AISTATE_WANDER:
    break;
  case AISTATE_MOVE_TO_WAYPOINT:
    break;
  case AISTATE_PURSUE:
    break;
  case AISTATE_ATTACK_MELEE:
    break;
  case AISTATE_ATTACK_RANGE:
    break;
  case AISTATE_RANGE:
    break;
  case AISTATE_FLEE:
    break;
  case AISTATE_FOLLOW:
    break;
  default:
    printf("AiEntity::updateState(): unknown state\n");
    mCurrentState = AISTATE_STOP;
    break;
  }
}
コード例 #4
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testPostAssertions(iPAR* ipar) {
	return testCondition(ipar,5);
}
コード例 #5
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testDuringAssertions(iPAR* ipar) {
	return testCondition(ipar,4);
}
コード例 #6
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testExecutionSteps(iPAR* ipar) {
  return testCondition(ipar, 3);
}
コード例 #7
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testPreparatorySpec(iPAR* ipar) {
  return testCondition(ipar, 2);
}
コード例 #8
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testCulminationCond(iPAR* ipar) {
  return testCondition(ipar, 1);
}
コード例 #9
0
ファイル: ipar.cpp プロジェクト: GAIA-GMU/PAR
PyObject*
Actionary::testApplicabilityCond(iPAR* ipar) {
   return testCondition(ipar, 0);
}
コード例 #10
0
ファイル: TestCondition.cpp プロジェクト: CltKitakami/MyLib
int main()
{
	testCondition();

	return 0;
}