parent
dfea46decb
commit
5291d530d7
@ -1,67 +0,0 @@ |
|||||||
//
|
|
||||||
// Created by MightyPork on 2017/12/19.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <malloc.h> |
|
||||||
#include <assert.h> |
|
||||||
|
|
||||||
#define GEX_H // to allow including other headers
|
|
||||||
#include "gex_defines.h" |
|
||||||
#include "gex_helpers.h" |
|
||||||
#include "gex_internal.h" |
|
||||||
|
|
||||||
/** Delete recursively all GEX callsign look-up table entries */ |
|
||||||
void gex_destroy_unit_lookup(GexClient *gex) |
|
||||||
{ |
|
||||||
assert(gex != NULL); |
|
||||||
|
|
||||||
struct gex_unit *next = gex->ulu_head; |
|
||||||
while (next != NULL) { |
|
||||||
struct gex_unit *cur = next; |
|
||||||
next = next->next; |
|
||||||
free(cur->name); |
|
||||||
free(cur->type); |
|
||||||
free(cur); |
|
||||||
} |
|
||||||
gex->ulu_head = NULL; |
|
||||||
} |
|
||||||
|
|
||||||
/** Get lookup entry for unit name */ |
|
||||||
struct gex_unit *gex_find_unit_by_callsign(GexClient *gex, uint8_t callsign) |
|
||||||
{ |
|
||||||
assert(gex != NULL); |
|
||||||
|
|
||||||
struct gex_unit *next = gex->ulu_head; |
|
||||||
while (next != NULL) { |
|
||||||
if (next->callsign == callsign) { |
|
||||||
return next; |
|
||||||
} |
|
||||||
next = next->next; |
|
||||||
} |
|
||||||
return NULL; |
|
||||||
} |
|
||||||
|
|
||||||
/** Get lookup entry for unit name */ |
|
||||||
struct gex_unit *gex_find_unit_by_name(GexClient *gex, const char *name) |
|
||||||
{ |
|
||||||
assert(gex != NULL); |
|
||||||
assert(name != NULL); |
|
||||||
|
|
||||||
struct gex_unit *next = gex->ulu_head; |
|
||||||
while (next != NULL) { |
|
||||||
if (strcmp(next->name, name) == 0) { |
|
||||||
return next; |
|
||||||
} |
|
||||||
next = next->next; |
|
||||||
} |
|
||||||
return NULL; |
|
||||||
} |
|
||||||
|
|
||||||
/** Get callsign for unit name */ |
|
||||||
uint8_t gex_find_callsign_by_name(GexClient *gex, const char *name) |
|
||||||
{ |
|
||||||
assert(gex != NULL); |
|
||||||
|
|
||||||
struct gex_unit *lu = gex_find_unit_by_name(gex, name); |
|
||||||
return (uint8_t) ((lu == NULL) ? 0 : lu->callsign); |
|
||||||
} |
|
@ -1,26 +0,0 @@ |
|||||||
//
|
|
||||||
// Created by MightyPork on 2017/12/19.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef GEX_CLIENT_GEX_HELPERS_H |
|
||||||
#define GEX_CLIENT_GEX_HELPERS_H |
|
||||||
|
|
||||||
#ifndef GEX_H |
|
||||||
#error "Include gex.h instead!" |
|
||||||
#endif |
|
||||||
|
|
||||||
#include "gex_defines.h" |
|
||||||
|
|
||||||
/** Delete recursively all GEX callsign look-up table entries */ |
|
||||||
void gex_destroy_unit_lookup(GexClient *gex); |
|
||||||
|
|
||||||
/** Get lookup entry for unit name */ |
|
||||||
GexUnit *gex_find_unit_by_callsign(GexClient *gex, uint8_t callsign); |
|
||||||
|
|
||||||
/** Get lookup entry for unit name */ |
|
||||||
GexUnit *gex_find_unit_by_name(GexClient *gex, const char *name); |
|
||||||
|
|
||||||
/** Get callsign for unit name */ |
|
||||||
uint8_t gex_find_callsign_by_name(GexClient *gex, const char *name); |
|
||||||
|
|
||||||
#endif //GEX_CLIENT_GEX_HELPERS_H
|
|
Loading…
Reference in new issue