Cs2ethStruct *Cs2ethCreate(void) { Cs2ethStruct *Data; Data = (Cs2ethStruct *)malloc(sizeof(Cs2ethStruct)); if (Data != (Cs2ethStruct *)NULL) { Cs2ethSetClients(Data, MengeCreate()); if (Cs2ethGetClients(Data) != (Menge *)NULL) { Cs2ethSetClientIter(Data, MengeCreateIter()); if (Cs2ethGetClientIter(Data) != (MengeIterator *)NULL) { Cs2ethSetVerbose(Data, FALSE); Cs2ethSetInterface(Data, ""); Cs2ethSetServerPort(Data, -1); Cs2ethSetClientSock(Data, -1); } else { MengeDestroy(Cs2ethGetClients(Data)); free(Data); Data = (Cs2ethStruct *)NULL; } } else { free(Data); Data = (Cs2ethStruct *)NULL; } } return(Data); }
void Cs2ethDestroy(Cs2ethStruct *Data) { if (Cs2ethGetVerbose(Data)) puts("destroy mrcs2eth"); MengeDestroyIterator(Cs2ethGetClientIter(Data)); MengeDestroy(Cs2ethGetClients(Data)); free(Data); }
void CanMemberDelAllInvalid(CanMemberStruct *Data) { Menge *MemberToDel; MengeIterator IterToDel; CollectStruct Collector; unsigned long *UidToDel; MemberToDel = MengeCreate(); MengeInit(MemberToDel, MemberDelCmp, (MengeDelCbFkt)free); Collector.CanMemberDb = CanMemberGetCanMemberDb(Data); Collector.MemberToDel = MemberToDel; MapWalkAscend(CanMemberGetCanMemberDb(Data), (MapWalkCbFkt)CollectInvalid, (void *)&Collector); MengeInitIterator(&IterToDel, MemberToDel); UidToDel = (unsigned long *)MengeFirst(&IterToDel); while (UidToDel != 0l) { MapDel(CanMemberGetCanMemberDb(Data), (MapKeyType)*UidToDel); UidToDel = (unsigned long *)MengeNext(&IterToDel); } MengeDestroy(MemberToDel); }