Mise à jour complète d'un événement auto-généré


o UpdateNextEvent
Le corps, affecté par SetUpdateNextEvent, donne des valeurs spécifiques à un événement qui vient d'être auto-généré. .

void myEvent_updateNextEvent_Body(EventMethod* pM) {
  Event* pPreviousEvent = pM->GetEventArgValue(PREVIOUS_EVENT_ARGUMENT);
  Event* pEventToUpdate = pPreviousEvent->NextEvent();
  ... // les ajustements définissant le prochain événement (pEventToUpdate)
}
MyEvent::MyEvent() 
   : Event(MY_EVENT, "myEvent") {
  ...
  SetUpdateNextEvent(myEvent_updateNextEvent_Body);
  ...
};

Le constructeur UpdateNextEvent() affecte le symbole de classe UPDATE_NEXT_EVENT et le nom de classe "updateNextEvent". Ainsi, on peut écrire :

int main(...) {
  ...
  Event* pEv = new MyEvent();

  // le code ci-dessous ...
  Method* pM = pEv->GetMethod(UPDATE_NEXTEVENT);
  pM->SetArgValue(PREVIOUS_EVENT_ARGUMENT, pEv);
  ((EventVoidMethod*)pM)->Body((EventMethod*)pM);

  // ... est équivalent à celui-ci
  pEv->SetEventArgValue(UPDATE_NEXTEVENT, PREVIOUS_EVENT_ARGUMENT, pEv);
  pEv->ExecVoidMethod(UPDATE_NEXTEVENT);
  ...
}

This page was generated with the help of DOC++.