int main() { // Change console appearance. SetConsoleTitle("Chat - Maxim Gonchar Var8"); SMALL_RECT windowSize = { 0, 0, 79, 49 }; SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &windowSize); // Testing module. chat_t *testChat = chat_new("KR_1 chat"); list_t *usersList = chat_getUsersObjects(testChat); chat_printInfo(testChat); puts(""); chat_addUser(testChat, "Maxim", "Gonchar"); chat_addUser(testChat, "Sergei", "Romaniyk"); chat_addUser(testChat, "Fedya", "Andrienko"); printf("Users list:\n%s\n", chat_getUsersList(testChat)); puts(""); printf("This guy will send messages now: \n"); user_t *tempSender = (user_t *) list_getNodeValueByIndex(usersList, 0); user_printInfo(tempSender); msg_t *tempMessage = msg_new("Hello", "World"); user_sendMessageToAll(testChat, tempSender, tempMessage, testCallback); // Free allocated memory. chat_delete(testChat); return 0; }
PurpleChat *qq_room_find_or_new(PurpleConnection *gc, guint32 id, guint32 qun_id) { qq_data *qd; qq_room_data *rmd; PurpleChat *chat; gchar *num_str; g_return_val_if_fail (gc != NULL && gc->proto_data != NULL, NULL); qd = (qq_data *) gc->proto_data; g_return_val_if_fail(id != 0 && qun_id != 0, NULL); purple_debug_info("QQ", "Find or add new room: id %u, qun id %u\n", id, qun_id); rmd = qq_room_data_find(gc, id); if (rmd == NULL) { rmd = room_data_new(id, qun_id, NULL); g_return_val_if_fail(rmd != NULL, NULL); rmd->my_role = QQ_ROOM_ROLE_YES; qd->rooms = g_slist_append(qd->rooms, rmd); } num_str = g_strdup_printf("%u", qun_id); chat = purple_blist_find_chat(purple_connection_get_account(gc), num_str); g_free(num_str); if (chat) { return chat; } return chat_new(gc, rmd); }
void rcv_chat_create (struct htlc_conn *htlc) { struct htlc_conn *htlcp; u_int32_t uid = 0, ref; u_int16_t uid16, icon, color; dh_start(htlc) if (dh_type != HTLC_DATA_UID) continue; dh_getint(uid); if ((htlcp = isclient(htlc->sid, uid))) { struct htlc_chat *chat = chat_new(); chat_set(htlc, chat, 0); ref = htonl(chat->ref); uid16 = htons(htlc->uid); icon = htons(htlc->icon); color = htons(htlc->color); hlwrite(htlc, HTLS_HDR_TASK, 0, 5, HTLS_DATA_CHAT_ID, sizeof(ref), &ref, HTLS_DATA_UID, sizeof(uid16), &uid16, HTLS_DATA_ICON, sizeof(icon), &icon, HTLS_DATA_COLOUR, sizeof(color), &color, HTLS_DATA_NAME, strlen(htlc->name), htlc->name); if (htlc->uid != (u_int16_t)uid) hlwrite(htlcp, HTLS_HDR_CHAT_INVITE, 0, 3, HTLS_DATA_CHAT_ID, sizeof(ref), &ref, HTLS_DATA_UID, sizeof(uid16), &uid16, HTLS_DATA_NAME, strlen(htlc->name), htlc->name); } else send_taskerror(htlc, "who?!?"); dh_end() }
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; }
static void getNLastMsges__fiveMessages__messagesAdded(void **state) { chat_t *testChat = chat_new("KR_1 chat"); list_t *usersList = chat_getUsersObjects(testChat); chat_addUser(testChat, "Maxim", "Gonchar"); msg_t *tempMessage1 = msg_new("Hello1", "World"); msg_t *tempMessage2 = msg_new("Hello2", "World"); msg_t *tempMessage3 = msg_new("Hello3", "World"); msg_t *tempMessage4 = msg_new("Hello4", "World"); msg_t *tempMessage5 = msg_new("Hell5", "World"); // This task isn`t done yet. Agree with -marks. }
void main_thread_entry(cyg_addrword_t p) { CYG_TEST_INFO("Initializing lwIP"); cyg_lwip_simple_init(); test_state = TEST_CHAT_INIT; req_state = REQ_DNS_INIT; while (1) { cyg_lwip_simple_poll(); switch (test_state) { case TEST_INITIAL: diag_printf("INFO:<Starting test run (%d/%d)>\n", run, NUM_RUNS); test_state = TEST_CHAT_INIT; break; case TEST_CHAT_INIT: CYG_TEST_INFO("Initializing chat"); sd = sio_open(SIO_DEV_PPPOS); if (!sd) CYG_TEST_FAIL_FINISH("Cannot open serial"); chat = chat_new(sd, chat_items, CHAT_TIMEOUT, chat_cb, chat_send_cb, NULL); if (!chat) CYG_TEST_FAIL_FINISH("Cannot allocate chat"); test_state = TEST_CHAT_RUN; break; case TEST_CHAT_RUN: chat_poll(chat); break; case TEST_CHAT_FINISH: chat_free(chat); if (chat_ok) test_state = TEST_PPP_INIT; else test_state = TEST_NEXT_RUN; break; case TEST_PPP_INIT: CYG_TEST_INFO("Initializing PPP"); if (ppp_init() != ERR_OK) CYG_TEST_FAIL_FINISH("Cannot initialize PPP"); pd = ppp_open_serial(sd, ppp_status_cb, (void *) pd); if (pd < 0) CYG_TEST_FAIL_FINISH("Cannot open PPP over serial"); ppp_set_auth(PPPAUTHTYPE_ANY, CYGDAT_NET_LWIP_PPP_TEST_USERNAME, CYGDAT_NET_LWIP_PPP_TEST_PASSWORD); test_state = TEST_PPP_INIT_WAIT; break; case TEST_PPP_INIT_WAIT: ppp_poll(pd); break; case TEST_PPP_UP: ppp_poll(pd); handle_req_state(); break; case TEST_PPP_CLOSE: ppp_close(pd); test_state = TEST_PPP_CLOSE_WAIT; break; case TEST_PPP_CLOSE_WAIT: ppp_poll(pd); if (!ppp_is_open(pd)) // Escape from data mode sio_write(sd, (u8_t *) "+++", 3); cyg_thread_delay(200); test_state = TEST_NEXT_RUN; break; case TEST_NEXT_RUN: if (run < NUM_RUNS) { run++; test_state = TEST_INITIAL; } else { test_state = TEST_FINISH; } break; case TEST_FINISH: test_state = TEST_CHAT_INIT; diag_printf("INFO:<Test done (%d/%d) successful runs\n", success, NUM_RUNS); break; } cyg_thread_yield(); } }