No Description

mainwindow.h 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QTableWidget>
  5. #include <QPixmap>
  6. #include "sniffer.h"
  7. #include <QThread>
  8. #include <QWaitCondition>
  9. #include <QMutex>
  10. #include <string>
  11. #include <QStringList>
  12. #include <QNetworkAccessManager>
  13. #include <QNetworkReply>
  14. #include <QUrl>
  15. #include <QListWidgetItem>
  16. #include <QIcon>
  17. #include "imagepacket.h"
  18. using namespace std ;
  19. namespace Ui {
  20. class MainWindow;
  21. }
  22. class MainWindow : public QMainWindow
  23. {
  24. Q_OBJECT
  25. public:
  26. /// \fn MainWindow::MainWindow(QWidget *parent)
  27. /// \~English
  28. /// \brief Constructor
  29. /// \~Spanish
  30. /// \brief Constructor
  31. explicit MainWindow(QWidget *parent = 0);
  32. /// \fn MainWindow::~MainWindow()
  33. /// \~English
  34. /// \brief Destructor
  35. /// \~Spanish
  36. /// \brief Destructor
  37. ~MainWindow();
  38. private slots:
  39. /// \fn void MainWindow::on_capture_clicked()
  40. /// \~English
  41. /// \brief Signal that starts or pauses the capture of the packets in the sniffer.
  42. /// \~Spanish
  43. /// \brief Senal que inicia o pausa la captura de paquetes en el sniffer
  44. void on_capture_clicked();
  45. /// \fn void MainWindow::on_packetDisplay_itemClicked(QTableWidgetItem *item)
  46. /// \~English
  47. /// \brief When a line of the packets captured is selected from the GUI
  48. /// a summary of the payload in ascii is presented in the summary box.
  49. /// \param item item selected in the GUI
  50. /// \~Spanish
  51. /// \brief Cuando una linea de los paquetes es seleccionada desde el GUI
  52. /// un resumen de la carga en ascii es presentado en la caja de resumen.
  53. /// \param item articulo seleccionado en el GUI
  54. void on_packetDisplay_itemClicked(QTableWidgetItem *item);
  55. /// \fn void MainWindow::on_resetButton_clicked()
  56. /// \~English
  57. /// \brief Empties the packets vector, resets the GUI packet table and
  58. /// summary
  59. /// \~Spanish
  60. /// \brief Vacia el vector de paquetes, reajusta la tabla de paquetes y
  61. /// el resumen del GUI.
  62. void on_resetButton_clicked();
  63. public slots:
  64. /// \fn void MainWindow::handleResults(unsigned long index)
  65. /// \~English
  66. /// \brief A signal was received from the sniffer that a packet of the form
  67. /// Ethernet -> IP -> (TCP|UDP) has to be displayed in the GUI.
  68. /// Also checks if the packet is an http image request to display.
  69. /// \param index number of the packet in the table
  70. /// \~Spanish
  71. /// \brief Una senal es recibida desde el sniffer que un paquete de la forma
  72. /// Ethernet ->IP -> (TCP|UDP) tiene que ser desplegado en el GUI.
  73. /// Tambien revisa si el paquete es una solicitud a una imagen en http
  74. /// para desplegar.
  75. /// \param index numero de el paquete en la tabla
  76. void handleResults(unsigned long index) ;
  77. /// \fn void MainWindow::slot_netwManagerFinished(QNetworkReply *reply)
  78. /// \~English
  79. /// \brief This slot is called when an image is successfuly retrieved.
  80. /// The image is then added to the GUI display.
  81. /// \param reply object that contains the reply to our request.
  82. /// \~Spanish
  83. /// \brief Este "slot" es llamado cuando se recibe una imagen con exito.
  84. /// La imagen entonces es anadida a la vizualizacion en el GUI.
  85. /// \param reply objeto que contiene la respuesta a nuestra solicitud
  86. void slot_netwManagerFinished(QNetworkReply *reply) ;
  87. private:
  88. Ui::MainWindow *ui;
  89. Sniffer *sniff ; /**< pointer to the sniffer class / apuntador a la clase sniffer */
  90. QThread sniff_thread ; /**< thread for the sniffer / hilo para el sniffer */
  91. QWaitCondition wait_pause ; /**< to pause the sniffer / para pausar el sniffer */
  92. int pause ; /**< flag to pause / bandera para pausar */
  93. QMutex mutex ; /**< Protect critical region / protege region critica */
  94. QStringList imageList ; /**< List of images / lista de imagenes */
  95. QNetworkAccessManager *netManager ; /**< to request http images / para solicitar imagenes http */
  96. };
  97. #endif // MAINWINDOW_H