#include <communication.h>
Diagram współpracy dla Communication:
Sygnały | |
void | connected () |
void | unableConnect () |
void | newUser (QHostAddress user_ip, QString user_nick) |
void | leaveUser (QHostAddress user_ip) |
void | recvPMsg (QHostAddress user_ip, QString msg) |
void | recvBMsg (QHostAddress user_ip, QString msg) |
void | fileRequest (QHostAddress user_ip, QString file_name, quint32 size) |
void | acceptSendFile (QHostAddress user_ip, QString file_name) |
void | refuseSendFile (QHostAddress user_ip, QString file_name) |
void | transferEnd (QHostAddress user_ip, bool ok) |
void | fileProgress (int perc) |
void | pong (QHostAddress user_ip, qint32 time) |
void | invalidNick () |
Metody publiczne | |
Communication () | |
~Communication () | |
void | welcome (const QString &nick, QHostAddress broadcast, quint16 port=2310) |
void | bye () |
void | sendPMsg (const QHostAddress &user_ip, const QString &msg) |
void | sendBMsg (const QString &msg) |
void | sendFile (QHostAddress user_ip, QString file_name) |
void | checkPing (QHostAddress user_ip) |
void | acceptFileRequest (QHostAddress user_ip, const QString &path) |
void | refuseFileRequest (QHostAddress user_ip) |
void | cancelTranfer () |
Metody chronione | |
void | connectOk (const QHostAddress &ip) |
void | connectFail () |
void | checkConnection (const QString &place) |
void | sendPacket (QHostAddress ip, LanPacket packet, bool control=false) |
void | servicePacket (LanPacket &packet, QHostAddress ip) |
void | removeUser (QHostAddress user_ip) |
void | removeQueue (QHostAddress user_ip, LanPacket::PacketType pack_type, QString md5) |
Atrybuty chronione | |
QString | user_nick |
QHostAddress | broadcast |
QList< QHostAddress > | ip_list |
QUdpSocket | read_socket |
bool | is_connect |
bool | connecting |
QHash< QHostAddress, QTime > | ping_list |
QHash< QHostAddress, SendFileTime > | send_file_list |
QHash< QHostAddress, RecvFileSize > | incoming_file |
QList< QueueItem > | packet_queue |
QTimer * | packet_timer |
QTimer * | ping_timer |
QTimer * | connect_timer |
quint32 | rand_num |
QHostAddress | my_ip |
quint16 | main_port |
bool | is_transfer |
FileTransfer * | file_transfer |
Sloty prywatne | |
void | readData () |
void | packetTimer () |
void | sysPingTimer () |
void | connectTimeOut () |
void | fileTransferEnd (bool ok) |
void | fileTransferProgres (int perc) |
Komponenty | |
struct | QueueItem |
struct | RecvFileSize |
struct | SendFileTime |
Definicja w linii 146 pliku communication.h.
|
Konstruktor klasy. Definicja w linii 322 pliku communication.cpp. Odwołuje się do connect_timer, connecting, file_transfer, incoming_file, ip_list, is_connect, is_transfer, packet_queue, packet_timer, packetTimer(), ping_list, ping_timer, rand_num, read_socket, readData() i sysPingTimer(). |
|
Destruktor klasy. Definicja w linii 347 pliku communication.cpp. Odwołuje się do bye(), file_transfer, is_connect, packet_timer i ping_timer. Oto graf wywołań dla tej funkcji: ![]() |
|
Zgoda na odebranie pliku. Wysyła do użytkownika zgodę na przyjęcie pliku. Metoda może być wywołana tylko w odpowiedzi na sygnał fileRequest
Definicja w linii 468 pliku communication.cpp. Odwołuje się do checkConnection(), FILE_PORT, file_transfer, LanPacket::FileOk, LanPacket::FileRefuse, fileTransferEnd(), fileTransferProgres(), MD5Hash::hashData(), incoming_file, is_transfer, FileTransfer::receiveFile(), sendPacket() i transferEnd(). Odwołania w GUIMainWindow::incomingFile(). Oto graf wywołań dla tej funkcji: ![]() |
|
Sygnał zgody na przyjęcie pliku. Sygnał jest generowany w momencie gdy zdalny użytkownik zgodzi się na przyjęcie od nas pliku. Jest to odpowiedź na metodę sendFile
|
|
Zamyka połączenie. Wysyła pakiet "bye" do wszystkich użytkowników w sieci
Definicja w linii 397 pliku communication.cpp. Odwołuje się do broadcast, LanPacket::Bye, connect_timer, connecting, connectTimeOut(), file_transfer, FileTransfer::getIp(), incoming_file, ip_list, is_connect, is_transfer, my_ip, packet_queue, packet_timer, ping_timer, read_socket, send_file_list, sendPacket(), transferEnd() i user_nick. Odwołania w GUIMainWindow::closeEvent(), connectFail(), GUIMainWindow::disconnectChat() i ~Communication(). Oto graf wywołań dla tej funkcji: ![]() |
|
Anuluje przesyłanie pliku. Przerywa transfer pliku
Definicja w linii 506 pliku communication.cpp. Odwołuje się do FileTransfer::cancelTransfer(), file_transfer i is_transfer. Odwołania w GUIMainWindow::cancelFileTransfer(). Oto graf wywołań dla tej funkcji: ![]() |
|
Sprawdza czy jesteśmy połączeni. Metoda sprawdza czy jesteśmy połączeni, jeśli nie rzuca wyjątkiem
Definicja w linii 548 pliku communication.cpp. Odwołuje się do is_connect. Odwołania w acceptFileRequest(), checkPing(), refuseFileRequest(), sendBMsg(), sendFile() i sendPMsg(). |
|
Sprawdza pinga. Wysyła pakiet "ping" i czeka na odpowiedź pong, po czym zwraca czas między "ping" a "pong", po otrzymaniu "pong", generowany jest sygnał pong
Definicja w linii 457 pliku communication.cpp. Odwołuje się do checkConnection(), LanPacket::Ping, ping_list i sendPacket(). Odwołania w GUIMainWindow::checkPing(). Oto graf wywołań dla tej funkcji: ![]() |
|
Sygnał połączenia. Sygnał jest generowany w momencie gdy użytkownik odbierze "swój" pakiet welcome. Między wywołaniem metody welcome a tym sygnałem, nie można wywoływać żadnych metod oprócz bye.
Odwołania w connectOk(). |
|
Metoda obługi błędnego połączenia. Metoda jest wywoływana w momencie gdy po określonym czasie nie otrzymamy "naszego pakietu" welcome, niszczy timer oraz emituje sygnał błędnego połączenia
Definicja w linii 540 pliku communication.cpp. Odwołuje się do bye() i unableConnect(). Odwołania w connectTimeOut(). Oto graf wywołań dla tej funkcji: ![]() |
|
Metoda obługi poprawnego połączenia. Metoda jest wywoływana w momencie otrzymania "naszego pakietu" welcome, ustawia flagi połączenia, niszczy timer połączenia oraz emituje sygnał poprawnego połączenia.
Definicja w linii 523 pliku communication.cpp. Odwołuje się do connect_timer, connected(), connecting, connectTimeOut(), is_connect, my_ip, PACKET_TIME, packet_timer, PING_TIME i ping_timer. Odwołania w servicePacket(). |
|
Slot do połączenia. Wywoływany gdy przekroczony zostanie czas połączenia, emituje sygnał błędnego połączenia
Definicja w linii 860 pliku communication.cpp. Odwołuje się do connectFail() i is_connect. Odwołania w bye() i connectOk(). |
|
Sygnał transferu pliku. Sygnał jest generowany w momencie zmiany postępu przesyłanego pliku.
Odwołania w fileTransferProgres(). |
|
Sygnał żądania odebrania pliku. Sygnał jest generowany w momencie gdy użytkownik chce nam wysłać plik. W odpowiedzi na ten sygnał należy wywołać metodę acceptFileRequest w celu potwierdzenia odebrania pliku, lub fileRequest w celu odmowy przyjęcia pliku.
|
|
Slot do końca transferu pliku. Wywoływany gdy klasa FileTransfer skończy wysyłanie/odbieranie plików
Definicja w linii 866 pliku communication.cpp. Odwołuje się do file_transfer, FileTransfer::getIp() i transferEnd(). Odwołania w acceptFileRequest(). |
|
Slot do przesyłu pliku. Wywoływany gdy klasa FileTransfer wyśle/odbierze kawałek pliku
Definicja w linii 874 pliku communication.cpp. Odwołuje się do fileProgress(). Odwołania w acceptFileRequest(). |
|
Sygnał błędnego nicka. Sygnał jest generowany w momencie gdy w sieci znajduje się już użytkownik o tym samym nicku co nasz. Przed wygenerowaniem sygnału, program jest rozłączany. |
|
Sygnał odejścia użytkownika. Sygnał jest generowany w momencie odebrania pakietu "bye", lub gdy użytkownik nie odpowiada na pakiety "ping"
|
|
Sygnał przyjścia nowego użytkownika. Sygnał jest generowany w momencie gdy zostanie odebrany pakiet "welcome" od jakiegoś użytkownika
Odwołania w servicePacket(). |
|
Slot do oblugi timera kolejki pakietów. Wywoływany co określony czas sprawdza które pakiety należy wysłać ponownie, lub którego użytkownika należy wyrzucić z listy bo nie odpowiedział na kilka powtórek pakietu Definicja w linii 801 pliku communication.cpp. Odwołuje się do MAX_PING_TIME, ping_list i pong(). Odwołania w Communication(). |
|
Sygnał odpowiedzi na ping. Sygnał jest generowany w momencie otrzymania pakietu pong ktory został wysłany w odpowiedzi użytkownika na pakiet ping.
Odwołania w packetTimer(). |
|
Slot do oblugi odczytowania przychodzących danych. Odczytuje pakiet, weryfikuje do, oraz wywołuje metodę obługi pakietu
Definicja w linii 767 pliku communication.cpp. Odwołuje się do connecting, is_connect, my_ip, read_socket i servicePacket(). Odwołania w Communication(). |
|
Sygnał odebrania wiadomości publicznej. Sygnał jest generowany w momencie odebrania wiadomości publicznej od użytkownika.
|
|
Sygnał odebrania wiadomości prywatnej. Sygnał jest generowany w momencie odebrania wiadomości prywatnej od użytkownika.
|
|
Odrzucenie pliku. Wysyła do użytkownika odmowę przyjęcia pliku. Metoda może być wywołana tylko w odpowiedzi na sygnał fileRequest
Definicja w linii 495 pliku communication.cpp. Odwołuje się do checkConnection(), LanPacket::FileRefuse, MD5Hash::hashData(), incoming_file i sendPacket(). Odwołania w GUIMainWindow::incomingFile(). Oto graf wywołań dla tej funkcji: ![]() |
|
Sygnał odmowy przyjęcia pliku. Sygnał jest generowany w momencie gdy zdalny użytkownik nie zgodzi się na przyjęcie od nas pliku. Jest to odpowiedź na metodę sendFile
Odwołania w removeUser(). |
|
Usuwa pakiet z kolejki. Usuwa pakiet z kolejki weryfikacji, metoda jest wywoływana w momecie otrzymania potwierdzenia otrzymania danego pakietu
Definicja w linii 748 pliku communication.cpp. Odwołuje się do packet_queue. |
|
Usuwa użytkownika. Usuwa użytkownika z wszelkich list oraz gdy to potrzebne generuje sygnały np. że user odmówił odebrania pliku, lub nie odpowiedział na pinga
Definicja w linii 725 pliku communication.cpp. Odwołuje się do ip_list, refuseSendFile() i send_file_list. |
|
Wysyła wiadomość broadcast. Wiadomość jest wysyłana do wszystkich (broadcast)
Definicja w linii 435 pliku communication.cpp. Odwołuje się do LanPacket::Bmsg, broadcast, checkConnection() i sendPacket(). Odwołania w GUIMainWindow::sendMsg(). Oto graf wywołań dla tej funkcji: ![]() |
|
Wysyła plik. Wysyła rządanie przyjęcia pliku do usera, gdy user się zgodzi generowany jest sygnał acceptSendFile, lub jeśli się nie zgodzi refuseSendFile
Definicja w linii 441 pliku communication.cpp. Odwołuje się do checkConnection(), LanPacket::FileReq, is_transfer, Communication::SendFileTime::name, send_file_list, sendPacket() i Communication::SendFileTime::time. Odwołania w GUIMainWindow::sendFile(). Oto graf wywołań dla tej funkcji: ![]() |
|
Wyślij pakiet. Wysyła pakiet do użytkownika o adresie ip, gdy control=true wrzuca pakiet do kolejki pakietów
Definicja w linii 554 pliku communication.cpp. Odwołuje się do LanPacket::isValid(). Odwołania w acceptFileRequest(), bye(), checkPing(), refuseFileRequest(), sendBMsg(), sendFile(), sendPMsg() i sysPingTimer(). Oto graf wywołań dla tej funkcji: ![]() |
|
Wysyła prywatną wiadomość. Wiadomość jest wysyłana tylko do jednego użytkownika (nie broadcast).
Definicja w linii 429 pliku communication.cpp. Odwołuje się do checkConnection(), LanPacket::Pmsg i sendPacket(). Oto graf wywołań dla tej funkcji: ![]() |
|
Obsłuż pakiet. Obługuje odebrany pakiet, w zależności od typu i zawartości podejmuje odpowiednie akcje
Definicja w linii 591 pliku communication.cpp. Odwołuje się do connecting, connectOk(), LanPacket::getFileSize(), LanPacket::getString(), LanPacket::getType(), ip_list, newUser(), rand_num, user_nick i LanPacket::Welcome. Odwołania w readData(). Oto graf wywołań dla tej funkcji: ![]() |
|
Slot do oblugi timera systemowego. Wywoływany co określony czas wysyła ping systemowy by sprawdzić czy wszyscy użytkownicy są dalej dostępni. Definicja w linii 855 pliku communication.cpp. Odwołuje się do broadcast, sendPacket() i LanPacket::SysPing. Odwołania w Communication(). |
|
Sygnał zakończenia powodzeniem transferu pliku. Sygnał jest generowany w momencie gdy transfer pliku zakończy się powodzeniem.
Odwołania w acceptFileRequest(), bye() i fileTransferEnd(). |
|
Sygnał błędu połączenia. Sygnał jest generowany w momencie gdy użytkownik nie odbierze "swójego" pakietu welcome w określnym czasie. Między wywołaniem metody welcome a tym sygnałem, nie można wywoływać żadnych metod oprócz bye.
Odwołania w connectFail(). |
|
Inicjuje połączenie. Wysyła pakiet "welcome" do wszystkich użytkowników w sieci.
Definicja w linii 355 pliku communication.cpp. Odwołuje się do connecting, incoming_file, ip_list, is_connect, main_port, my_ip, packet_queue, rand_num, read_socket i user_nick. Odwołania w GUIMainWindow::connectChat(). |
|
adres broadcast Definicja w linii 383 pliku communication.h. Odwołania w bye(), sendBMsg() i sysPingTimer(). |
|
timer połączenia Definicja w linii 394 pliku communication.h. Odwołania w bye(), Communication() i connectOk(). |
|
znacznik, że jesteśmy w trakcie łączenia Definicja w linii 387 pliku communication.h. Odwołania w bye(), Communication(), connectOk(), readData(), servicePacket() i welcome(). |
|
klasa do przesyłu plików Definicja w linii 400 pliku communication.h. Odwołania w acceptFileRequest(), bye(), cancelTranfer(), Communication(), fileTransferEnd() i ~Communication(). |
|
lista odbranych żądań o przyjęcie pliku Definicja w linii 390 pliku communication.h. Odwołania w acceptFileRequest(), bye(), Communication(), refuseFileRequest() i welcome(). |
|
lista adresów ip użytkowników w sieci Definicja w linii 384 pliku communication.h. Odwołania w bye(), Communication(), removeUser(), servicePacket() i welcome(). |
|
znacznik czy jesteśmy połączeni Definicja w linii 386 pliku communication.h. Odwołania w bye(), checkConnection(), Communication(), connectOk(), connectTimeOut(), readData(), welcome() i ~Communication(). |
|
znacznik, że przesyłany jest aktualnie plik Definicja w linii 399 pliku communication.h. Odwołania w acceptFileRequest(), bye(), cancelTranfer(), Communication() i sendFile(). |
|
Definicja w linii 397 pliku communication.h. Odwołania w welcome(). |
|
nasz adres ip Definicja w linii 396 pliku communication.h. Odwołania w bye(), connectOk(), readData() i welcome(). |
|
kolejka pakietów do weryfikacji/ponownego wysłania Definicja w linii 391 pliku communication.h. Odwołania w bye(), Communication(), removeQueue() i welcome(). |
|
timer do weryfikacji/ponownego wysyłania pakietów Definicja w linii 392 pliku communication.h. Odwołania w bye(), Communication(), connectOk() i ~Communication(). |
|
lista wysłanych pingów które oczekują pongów Definicja w linii 388 pliku communication.h. Odwołania w checkPing(), Communication() i packetTimer(). |
|
timer do wysyłania pingów systemowych Definicja w linii 393 pliku communication.h. Odwołania w bye(), Communication(), connectOk() i ~Communication(). |
|
liczba losowa niezbędna do weryfikacji naszego pakietu welcome Definicja w linii 395 pliku communication.h. Odwołania w Communication(), servicePacket() i welcome(). |
|
socket służący do odbioru pakietów Definicja w linii 385 pliku communication.h. Odwołania w bye(), Communication(), readData() i welcome(). |
|
lista wysłanych żądań o przyjęcie pliku Definicja w linii 389 pliku communication.h. Odwołania w bye(), removeUser() i sendFile(). |
|
nick użytkownika Definicja w linii 382 pliku communication.h. Odwołania w bye(), servicePacket() i welcome(). |