struct Director* PtidesPlatformDirector__GetEmbeddedPtidesDirector(struct PtidesPlatformDirector* director) { struct CompositeActor* container = director->container; PblIterator* actors = pblIteratorNew(container->_containedEntities); while (pblIteratorHasNext(actors)) { struct CompositeActor* actor = (struct CompositeActor*) pblIteratorNext(actors); pblIteratorFree(actors); return actor->getDirector(actor); } pblIteratorFree(actors); return NULL; }
void schedule_remove(void (*callback)(void *p), void *p) { PblIterator *iterator; struct nscallback *nscb; bool restoreheap = false; if(schedule_list == NULL) return; if(pblHeapIsEmpty(schedule_list)) return; iterator = pblHeapIterator(schedule_list); while ((nscb = pblIteratorNext(iterator)) != -1) { if((nscb->callback == callback) && (nscb->p == p)) { ami_remove_timer_event(nscb); pblIteratorRemove(iterator); FreeVec(nscb); restoreheap = true; } }; pblIteratorFree(iterator); if(restoreheap) pblHeapConstruct(schedule_list); }
bool FSMDirector_DirectorTransferModalOutputs(struct FSMDirector* director) { struct CompositeActor* container = director->container; PblIterator* outports = pblIteratorNew(container->outputPortList(container)); while (pblIteratorHasNext(outports)) { struct IOPort* port = pblIteratorNext(outports); director->directorTransferModalOutputs1(director, port); } pblIteratorFree(outports); return true; }
void schedule_remove_all(void) { PblIterator *iterator; struct nscallback *nscb; if(pblHeapIsEmpty(schedule_list)) return; iterator = pblHeapIterator(schedule_list); while ((nscb = pblIteratorNext(iterator)) != -1) { ami_remove_timer_event(nscb); pblIteratorRemove(iterator); FreeVec(nscb); }; pblIteratorFree(iterator); }