forked from amirg00/Simple-Chat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClient_UML.puml
80 lines (71 loc) · 1.98 KB
/
Client_UML.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@startuml
class analysis_unit{
+analysis_confirms_msg(type_code:str, msg:str)
+analysis_updates_msg(type_code:str, msg:str)
+analysis_errors_msg(type_code:str, msg:str)
+analysis_msg_main(msg:str)
}
logic --* analysis_unit
class logic{
+download_over_tcp_handler(sock:socket, filename:str)
+download_over_udp_handler(sock:socket, filename:str)
+files_list_handler(sock:socket)
+users_list_handler(sock:socket)
+send_msg_handler(sock:socket, msg_to_user, tar_username:str)
+send_msg_broadcast_handler(sock:socket, msg_to_everyone:str)
+disconnect_handler(sock:socket)
+logic(option:int, sock:socket, message=None, target=None, filename=None)
}
class RDT_Receiver{
+KB:int
+PORT
+ FILENAME: str
+ file:File
+ ADDRESS: str, int
+ sock:socket
+ WINDOW_SIZE:int
+ last_is_order:bool
+ files_textbox:Text
+ chat_window
+ per_lbl:Label
+ prog_bar: ProgressBar
+ FILE_SIZE:int
--
+ analysis_data(data:str)
+ calc_ack(seq:int)
+ build_ack_packet(ack:int)
+ main()
+ update_progress_bar(curr_bytes:int, total:int)
}
GUI --* RDT_Receiver
GUI --* logic
class GUI{
+set_entrance_layout()
+set_chat_layout()
+leave_chat()
+send_button(client_message: Text, to)
+send_message(client_message: Text, to)
+connect_to_chat(SERVER_IP: str, SERVER_PORT: str, USERNAME: str)
+exit()
+download_file(server_files_combobox: Combobox, protocol)
+receive_file_by_TCP(PORT:int, FILENAME:str, FILE_SIZE: int)
+update_progress_bar(curr_bytes:int, total:int)
+log_in_to_chat(sock:socket, username:str)
+listen_to_server(port:int, SERVER_IP:str)
+protocol_message_textbox(choice: int)
+center_label(textbox:Text, **kwargs)
+update_online_user_list()
+update_option_menu()
+update_server_files(files_combobox: Combobox)
+set_server_sock(sock:int)
+set_chat_textBox(text: Text)
+set_users_menu(users_menu)
+set_users_var(users_var)
+set_online_users_list(users_list: list)
+set_server_ip(server_ip)
+set_server_files(server_files)
+set_files_textBox(textBox: Text)
+set_username(username)
+set_progress_bar(progress_bar)
}
@enduml