int main(void){ chat_t * chat = chat_new("First Chat"); printf("1st task(Chat name is) : %s\n", get_chat_name(chat));//1st task user_t * firstUser = user_new("Dima", "Diachenko", 18); chat_add_user(chat, firstUser); user_t * secondUser = user_new("Gleb", "Davidov", 18); chat_add_user(chat, secondUser); //6th task list_t * users_list = list_new(); users_list = chat_get_list_of_users(chat); printf("4th task (and 6th task)(Users in list) : %i\n", list_getSize(users_list));//4th task printf("2d task : List of users:\n"); // 2d task for(int i = 0; i < list_getSize(users_list); i++){ user_t * tmp = (user_t*) list_get(users_list, i); printf("%s %s %i\n", user_get_name(tmp), user_get_surname(tmp), user_get_age(tmp)); } printf("7th task : %s - this user was removed!\n", user_get_surname(chat_remove_user_by_surname(chat, "Davidov")));//7th task users_list = chat_get_list_of_users(chat); printf("2d task : List of users:\n"); // 2d task for(int i = 0; i < list_getSize(users_list); i++){ user_t * tmp = (user_t*) list_get(users_list, i); printf("%s %s %i\n", user_get_name(tmp), user_get_surname(tmp), user_get_age(tmp)); } message_t * msg1 = message_new("Hello!", firstUser); chat_add_message(chat, msg1);//8th task printf("8th task: added message to chat:\n%s:\t%s\n", user_get_surname(get_owner(msg1)), get_message_text(msg1)); list_t * msgs_list = list_new(); msgs_list = get_list_of_messages_of_one_user(chat, firstUser);//5th task printf("5th task : Messages of user %s\n", user_get_surname(firstUser)); for(int i = 0; i < list_getSize(msgs_list); i++){ message_t * tmpmsg = list_get(msgs_list, i); printf("%s\n", get_message_text(tmpmsg)); } msgs_list = get_last_messages(chat, 1); printf("3d task : List of last messages(1):\n"); for(int i = 0; i < list_getSize(msgs_list); i++){ message_t * tmpmsg = list_get(msgs_list, i); printf("%s\n", get_message_text(tmpmsg)); } return 0; }
list_t * get_list_of_messages_of_one_user(chat_t * chat, user_t * user){ list_t * msgList = list_new(); for(int i = 0; i < list_getSize(chat->messages); i++){ message_t * tmp = list_get(chat->messages, i); if(strcmp(user_get_surname(tmp->owner), user_get_surname(user)) == 0 && strcmp(user_get_name(tmp->owner), user_get_name(user)) == 0 && user_get_age(tmp->owner) == user_get_age(user)) { list_push_back(msgList, (void*) tmp); } else continue; } return msgList; }
static int on_stream(http_request_t *hr, void *data, const char *remaining, size_t size) { int sck; user_t *user; channel_t *channel; (void) remaining; (void) size; (void) data; user = http_request_get_data(hr); if(user == NULL) return -1; sck = http_request_detach(hr); send(sck, basic_reponse, sizeof(basic_reponse) - 1, MSG_DONTWAIT); if(user_add_socket(user, sck) == -1) { close(sck); } channel = channel_add_user(user_get_name(user), user); user_set_channel(user, channel); return 0; }
message_t * message_new(const char * Msg, user_t * user){ message_t * self = malloc(sizeof(message_t)); self->owner = user_new(user_get_name(user), user_get_surname(user), user_get_age(user)); self->msg = malloc(sizeof(char) * (strlen(Msg) + 1)); self->msg = Msg; return self; }
int main( int argc, char ** argv) { /* user_t * u = user_new(); assert( u != NULL ); printf("created user %p\n",u); user_set_name(u,"ken"); printf("set user %s\n",user_get_name(u)); assert( strcmp(user_get_name(u),"ken") == 0 ); user_free(u); */ user_t u; user_new_for_addr(&u); assert( &u != NULL ); printf("created user %p\n",&u); user_set_name(&u,"ken"); printf("set user %s\n",user_get_name(&u)); assert( strcmp(user_get_name(&u),"ken") == 0 ); user_for_addr_free(&u); return 0; }
void strange_alert (user_t * receiver, event_t * event) { char * name = user_get_name(receiver); char * summary = event_get_summary(event); printf("\nHEYYY NERD, IS UR NAME %s ? THEN UR PARTY HAS STARTED. LETSS GOOO!\n", name); printf("Actually it's summary is:\n%s\n", summary); free(name); free(summary); }
void normal_alert (user_t * receiver, event_t * event) { char * name = user_get_name(receiver); char * summary = event_get_summary(event); printf("\nHey, %s\n", name); printf("Notifying you that event has started. It's summary : \n%s\n", summary); free(name); free(summary); }
void chat_add_message(chat_t * chat, message_t * msg){ list_t * tmp = list_new(); tmp = chat_get_list_of_users(chat); for(int i = 0; i < list_getSize(tmp); i++){ // if new user print a message user_t * tmpUser = (user_t*) list_get(tmp, i); if(strcmp(user_get_name(tmpUser), user_get_name(msg->owner)) != 0 || strcmp(user_get_surname(tmpUser), user_get_surname(msg->owner)) != 0 || user_get_age(tmpUser) != user_get_age(msg->owner)) { if( i == (list_getSize(tmp) - 1)){ list_push_back(chat, (void *) user_new(user_get_name(msg->owner), user_get_surname(msg->owner),user_get_age(msg->owner))); break; } continue; } else { break; } } list_push_back(chat->messages, (void*) msg); }
int cmd_nick(Channel *channel, User *speaker, const char *text) { int i; Channel *ch; char buf[256]; if(!user_name_is_valid(text)) return 0; if(user_lookup(text) != NULL) /* Refuse if nick is in use. */ return 0; /* Before doing the change, go through all channels and notify. */ snprintf(buf, sizeof buf, "%s is now known as %s\n", user_get_name(speaker), text); for(i = 0; (ch = channel_index(i)) != NULL; i++) { if(channel_user_is_member(ch, speaker)) channel_hear(ch, NULL, buf); } user_set_name(speaker, text); return 1; }
static void new__name__zeroCount(void **state) { user_t * user = user_create("Frodo"); assert_int_equal(strcmp("Frodo",user_get_name(user)), 0); user_delete(user); }