summaryrefslogtreecommitdiff
path: root/src/teams.c
diff options
context:
space:
mode:
authorLibravatar Mubashshir <ahmubashshir@gmail.com>2025-05-22 22:59:39 +0600
committerLibravatar Mubashshir <ahmubashshir@gmail.com>2025-05-22 23:01:28 +0600
commit29b8e5efb43bdb71737f1b417fedb3b1558bb9af (patch)
tree79eaca3ba73974af3c4d6989e3ebbb006b2404c5 /src/teams.c
parentcefb440148fd80cac7537b3743dd0e018df3a797 (diff)
downloadc-obp-example-29b8e5efb43bdb71737f1b417fedb3b1558bb9af.tar.gz
c-obp-example-29b8e5efb43bdb71737f1b417fedb3b1558bb9af.zip
Clean up and fix warnings
Signed-off-by: Mubashshir <ahmubashshir@gmail.com>
Diffstat (limited to 'src/teams.c')
-rw-r--r--src/teams.c84
1 files changed, 38 insertions, 46 deletions
diff --git a/src/teams.c b/src/teams.c
index bebb786..b0233f5 100644
--- a/src/teams.c
+++ b/src/teams.c
@@ -2,61 +2,60 @@
#include <stdlib.h>
#include <string.h>
+#define __COBJ_IMPL__
#include "teams.h"
-#define __COBJ_PRIV_IMPLS_H__
-#include "cobj.h"
// Setter definitions
// @set char[]: TEAM.name -> bool
-Setter(team, name, ref(char), {
- return !(strncpy(SELF(name), value, 255) == NULL);
+Set(team, name, ref(char), {
+ return !(strncpy(Self(name), value, 255) == NULL);
})
// @set char[]: TEAM.institution -> bool
-Setter(team, institution, ref(char), {
- return !(strncpy(SELF(institution), value, 255) == NULL);
+Set(team, institution, ref(char), {
+ return !(strncpy(Self(institution), value, 255) == NULL);
})
// @set char[]: TEAM.member_name, int: id -> bool
-Setter(team, member_name, ref(char), {
- return (id > 0 && id < 4 && !(strncpy(SELF(member_name)[id-1], value, 255) == NULL));
+Set(team, member_name, ref(char), {
+ return (id > 0 && id < 4 && !(strncpy(Self(member_name)[id-1], value, 255) == NULL));
}, int id)
// @set int: TEAM.solved -> bool
-Setter(team, solved, uint8_t, {
+Set(team, solved, uint8_t, {
if (value <= 10)
- SELF(solved) = value;
+ Self(solved) = value;
return (value <= 10);
})
// Getter definitions
// @get TEAM.name -> char[]
-Getter(team, name, ptr(char), {
- return SELF(name);
+Get(team, name, ptr(char), {
+ return Self(name);
})
// @get TEAM.institution -> char[]
-Getter(team, institution, ptr(char), {
- return SELF(institution);
+Get(team, institution, ptr(char), {
+ return Self(institution);
})
// @get TEAM.solved -> int
-Getter(team, solved, uint8_t, {
- return SELF(solved);
+Get(team, solved, uint8_t, {
+ return Self(solved);
})
-static char* const _id_error = (char *)"(incorrect id)"; // C++ fix
// @get TEAM.member_name, id -> char[]
-Getter(team, member_name, ptr(char), {
- return (id > 0 && id < 4)? SELF(member_name)[id - 1] : _id_error;
+static char* const _id_error = (char *)"(incorrect id)"; // C++ fix
+Get(team, member_name, ptr(char), {
+ return (id > 0 && id < 4)? Self(member_name)[id - 1] : _id_error;
}, int id)
-Define(team, printf, int, {
- return call(self, fprintf, stdout);
+Def(team, printf, int, {
+ return Call(self, fprintf, stdout);
})
-Define(team, fprintf, int, {
+Def(team, fprintf, int, {
return fprintf(file,
"Team name : %s\n"
"Institution: %s\n"
@@ -64,41 +63,34 @@ Define(team, fprintf, int, {
" Member 1: %s\n"
" Member 2: %s\n"
" Member 3: %s\n",
- SELF(name),
- SELF(institution),
- SELF(solved),
- SELF(member_name)[0],
- SELF(member_name)[1],
- SELF(member_name)[2]);
+ Self(name),
+ Self(institution),
+ Self(solved),
+ Self(member_name)[0],
+ Self(member_name)[1],
+ Self(member_name)[2]);
}, ptr(FILE) file)
-Define(team, find_champion, team, {
+Def(team, find_champion, team, {
UNUSED(self);
team champion = teams[num - 1];
while(num --)
- if (GET(teams[num], solved) > GET(champion, solved) )
+ if (Attr(teams[num], solved) > Attr(champion, solved) )
champion = teams[num];
return champion;
}, ptr(team) teams, size_t num)
+Del(team, DefaultDelete)
// base functions
New(team, {
- team self = (team)malloc(sizeof(TYPE(team)));
- if (self)
- {
- PROPERTY(team, name);
- PROPERTY(team, member_name);
- PROPERTY(team, institution);
- PROPERTY(team, solved);
- CALLABLE(team, printf);
- CALLABLE(team, fprintf);
- CALLABLE(team, find_champion);
- }
- return self;
-})
-
-Del(team, {
- if(self) free(self);
+ Prop(team, name);
+ Prop(team, member_name);
+ Prop(team, institution);
+ Prop(team, solved);
+ Func(team, printf);
+ Func(team, fprintf);
+ Func(team, find_champion);
+ DelF(team);
})