diff options
author | 2023-05-23 18:31:53 +0600 | |
---|---|---|
committer | 2023-05-23 18:31:53 +0600 | |
commit | 09133381cad0a1dec37595867eadf9c6858ce8ee (patch) | |
tree | a7755e42183c08729e07e2dd2f5ff8054511bd6e /src/teams.c | |
parent | 413e443613499a53cc4aa1f35664c289ffbde04b (diff) | |
download | c-obp-example-09133381cad0a1dec37595867eadf9c6858ce8ee.tar.gz c-obp-example-09133381cad0a1dec37595867eadf9c6858ce8ee.zip |
Clean up main header file
Signed-off-by: Mubashshir <ahmubashshir@gmail.com>
Diffstat (limited to 'src/teams.c')
-rw-r--r-- | src/teams.c | 71 |
1 files changed, 31 insertions, 40 deletions
diff --git a/src/teams.c b/src/teams.c index bfee347..f75f161 100644 --- a/src/teams.c +++ b/src/teams.c @@ -2,8 +2,9 @@ #include <stdlib.h> #include <string.h> -#define __IMPL_TEAMS_INTERNAL #include "teams.h" +#define __IMPL_TEAMS_INTERNAL +#include "teams-hell.h" typedef struct team_impl_struct { char name[255]; @@ -11,74 +12,65 @@ typedef struct team_impl_struct { char institution[255]; uint8_t solved; } TEAM_impl; + // base functions -TEAM team_new() -{ +NEW(team, TEAM, { return (TEAM_impl *)malloc(sizeof(TEAM_impl)); -} -void team_del(TEAM self) -{ +}) + +DEL(team, TEAM, { if(self) free(self); -} +}) // Setter definitions // @set char[]: TEAM.name -> bool -SETTER(team, name, TEAM, char *) -{ +SETTER(team, name, TEAM, char *, { return !(strncpy(self->name, value, 255) == NULL); -} +}) // @set char[]: TEAM.institution -> bool -SETTER(team, institution, TEAM, char *) -{ +SETTER(team, institution, TEAM, char *, { return !(strncpy(self->institution, value, 255) == NULL); -} +}) // @set char[]: TEAM.member_name, int: id -> bool -SETTER(team, member_name, TEAM, char *, int id) -{ +SETTER(team, member_name, TEAM, char *, { return (id > 0 && id < 4 && !(strncpy(self->members[id-1], value, 255) == NULL)); -} +}, int id) + // @set int: TEAM.solved -> bool -SETTER(team, solved, TEAM, uint8_t) -{ +SETTER(team, solved, TEAM, uint8_t, { if (value <= 10) self->solved = value; return (value <= 10); -} +}) // Getter definitions // @get TEAM.name -> char[] -GETTER(team, name, TEAM, char *) -{ +GETTER(team, name, TEAM, char *, { return self->name; -} +}) // @get TEAM.institution -> char[] -GETTER(team, institution, TEAM, char *) -{ +GETTER(team, institution, TEAM, char *, { return self->institution; -} +}) // @get TEAM.solved -> int -GETTER(team, solved, TEAM, uint8_t) -{ +GETTER(team, solved, TEAM, uint8_t, { return self->solved; -} +}) // @get TEAM.member_name, id -> char[] -GETTER(team, member_name, TEAM, char *, int id) -{ +GETTER(team, member_name, TEAM, char *, { return (id > 0 && id < 4)? self->members[id - 1] : "(incorrect id)"; -} +}, int id) -DEFINE(team, printf, TEAM, int) -{ +DEFINE(team, printf, TEAM, int, { return fun(team, fprintf, self, stdout); -} +}) -DEFINE(team, fprintf, TEAM, int, FILE *file) -{ +DEFINE(team, fprintf, TEAM, int, { return fprintf(file, "Team name : %s\n" "Institution: %s\n" @@ -92,10 +84,9 @@ DEFINE(team, fprintf, TEAM, int, FILE *file) self->members[0], self->members[1], self->members[2]); -} +}, FILE *file) -DEFINE(team, find_champion, TEAM, TEAM, TEAM *teams, unsigned num) -{ +DEFINE(team, find_champion, TEAM, TEAM, { UNUSED(self); TEAM champion = teams[num - 1]; @@ -103,4 +94,4 @@ DEFINE(team, find_champion, TEAM, TEAM, TEAM *teams, unsigned num) if ( teams[num]->solved > champion->solved ) champion = teams[num]; return champion; -} +}, TEAM *teams, unsigned num) |