예제 #1
0
void CanMemberDelete(CanMemberStruct *Data, CanMemberInfo *CanMember)
{  unsigned long Uid;

   Uid = CanMemberInfoGetUid(CanMember);
   MapDel(CanMemberGetCanMemberDb(Data), (MapKeyType)Uid);
   CanMemberSetNumMembers(Data, CanMemberGetNumMembers(Data) - 1);
}
예제 #2
0
파일: lok.c 프로젝트: GBert/railroad
static void PurgeDeletedLoks(LokStruct *Data)
{  AddrSearchType Search;

   do {
      Search.Addr = 0l;
      Search.Result = (LokInfo *)NULL;
      MapWalkAscend(LokGetLokDb(Data), (MapWalkCbFkt)SearchDeleted,
                    (void *)&Search);
      if (Search.Result != (LokInfo *)NULL)
      {
         MapDel(LokGetLokDb(Data), LokInfoGetName(Search.Result));
      }
   } while (Search.Result != (LokInfo *)NULL);
}
예제 #3
0
파일: cs2cfg.c 프로젝트: GBert/railroad
void Cs2CfgDataEnd(Cs2CfgData *Data, unsigned int CanHash)
{  Cs2CfgEntry *Entry;

   Entry = (Cs2CfgEntry *)MapGet(Cs2CfgDataGetCfgDatas(Data),
                                 (MapKeyType)CanHash);
   if (Entry != (Cs2CfgEntry *)NULL)
   {
      Cs2CfgEntrySetCfgLength(Entry, 0);
      Cs2CfgEntrySetCfgHaveRead(Entry, 0l);
      if (Cs2CfgEntryGetCfgBuffer(Entry) != (char *)NULL)
      {
         free(Cs2CfgEntryGetCfgBuffer(Entry));
         Cs2CfgEntrySetCfgBuffer(Entry, (char *)NULL);
      }
      MapDel(Cs2CfgDataGetCfgDatas(Data), (MapKeyType)CanHash);
   }
}
예제 #4
0
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);
}
예제 #5
0
파일: gleisbild.c 프로젝트: GBert/railroad
void GleisbildDelete(GleisbildStruct *Data, GleisbildInfo *Gleisbild)
{  int Id;

   Id = GleisbildInfoGetId(Gleisbild);
   MapDel(GleisbildGetGleisbildDb(Data), (MapKeyType)Id);
}