Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "tinder.h"
- #define CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY if(tinder==NULL){ return TINDER_INVALID_PARAMETERS;}
- struct Tinder_t {
- Map users;
- Map hobbies;
- };
- Tinder createTinder() {
- Tinder tinder = malloc(sizeof(*tinder));
- tinder->users = mapCreate(copyDataUser, copyID, freeDataUser, freeID,
- compareVoidID);
- if (!tinder->users) {
- free(tinder);
- return NULL;
- }
- tinder->hobbies = mapCreate(copyHobbyData, copyHobbyKey, freeHobbyData,
- freeHobbyKey, compareMapKeys);
- if (!tinder->hobbies) {
- mapDestroy(tinder->users);
- free(tinder);
- return NULL;
- }
- return tinder;
- }
- void tinderDestroy(Tinder tinder) {
- if (tinder != NULL) {
- mapDestroy(tinder->users);
- mapDestroy(tinder->hobbies);
- free(tinder);
- }
- }
- TinderResult checkUserResult(UserResult result) {
- TinderResult tResult = TINDER_SUCCESS;
- ;
- switch (result) {
- case USER_FAILED:
- tResult = TINDER_OUT_OF_MEMORY;
- break;
- case USER_NULL_ARGUMENT:
- tResult = TINDER_INVALID_PARAMETERS;
- break;
- case USER_NOT_FRIENDS:
- tResult = TINDER_USER_NOT_FRIEND;
- break;
- case USER_DOESNT_EXIST:
- tResult = TINDER_USER_DOES_NOT_EXIST;
- break;
- case USER_ALREADY_EXISTS:
- tResult = TINDER_USER_ALREADY_EXISTS;
- break;
- case USER_NO_USERS:
- tResult = TINDER_NO_USERS;
- break;
- case USER_INVALID_PARAMETERS:
- tResult = TINDER_INVALID_PARAMETERS;
- break;
- case USER_NO_USER_REQUEST:
- tResult = TINDER_NO_USER_REQUEST;
- break;
- case USER_ALREADY_FRIENDS:
- tResult = TINDER_USER_ALREADY_FRIEND;
- break;
- default:
- tResult = TINDER_SUCCESS;
- break;
- }
- return tResult;
- }
- TinderResult tinderUserAdd(int id, char* name, int year, Gender gender,
- Gender pref, Tinder tinder) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userAdd(id, name, year, gender, pref, tinder->users);
- return checkUserResult(result);
- }
- TinderResult tinderUserRemove(Tinder tinder, int id) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userRemove(tinder->users, tinder->hobbies, id);
- return checkUserResult(result);
- }
- TinderResult tinderUserReport(Tinder tinder) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userReport(tinder->users);
- return checkUserResult(result);
- }
- TinderResult tinderUserFriendRequest(Tinder tinder, int id1, int id2) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userFriendRequest(tinder->users, id1, id2);
- return checkUserResult(result);
- }
- TinderResult tinderUserHandleRequest(Tinder tinder, int id1, int id2,
- char* choice) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userHandleRequest(tinder->users, id1, id2, choice);
- return checkUserResult(result);
- }
- TinderResult tinderUserUnfriend(Tinder tinder, int id1, int id2) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userUnfriend(tinder->users, id1, id2);
- return checkUserResult(result);
- }
- TinderResult tinderUserWhoCanIDate(Tinder tinder, int id1, int count) {
- CHECK_TINDER_IF_NULL_RETURN_OUT_MEMORY
- UserResult result = userWhoCanIDate(tinder->users, id1, count);
- return checkUserResult(result);
- }
- char* getTinderUserName(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getUserName(data);
- }
- int getTinderUserBirthYear(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getUserBirthYear(data);
- }
- Gender getTinderUserGender(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getUserGender(data);
- }
- Gender getTinderUserPref(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getUserPref(data);
- }
- Set getTinderUserFriends(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getSetFirends(data);
- }
- Set getTinderUserFriendRequests(Tinder tinder, int id){
- int* key = createMapKey(id);
- MapDataElement data = mapGet(tinder->users,key);
- freeID(key);
- return getSetFirendRequests(data);
- }
- Set getTinderUserHobbies(Tinder tinder, int id){
- assert(tinder!=NULL);
- int* key = createMapKey(id);
- assert(key!=NULL);
- MapDataElement data = mapGet(tinder->users,key);
- assert(data!=NULL);
- freeID(key);
- return getSetHobbies(data);
- }
- Map getTinderUsers(Tinder tinder){
- assert(tinder!=NULL);
- return tinder->users;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement