diff --git a/pitiupi/src/pitiupi/GUI/MenuBar.java b/pitiupi/src/pitiupi/GUI/MenuBar.java
index 1e3a4a8..db4ca35 100644
--- a/pitiupi/src/pitiupi/GUI/MenuBar.java
+++ b/pitiupi/src/pitiupi/GUI/MenuBar.java
@@ -29,6 +29,11 @@ public class MenuBar extends JMenuBar {
private javax.swing.JMenuItem exitMenu;
private final MainWindow mainWindow;
+ /**
+ * Cria a barra de menus principal da aplicação.
+ *
+ * @param mainWindow mainWindow janela principal da aplicação utilizada para executar
+ */
public MenuBar(MainWindow mainWindow) {
this.mainWindow = mainWindow;
this.initComponents();
diff --git a/pitiupi/src/pitiupi/control/HeartbeatManager.java b/pitiupi/src/pitiupi/control/HeartbeatManager.java
index 4de8a4b..725cede 100644
--- a/pitiupi/src/pitiupi/control/HeartbeatManager.java
+++ b/pitiupi/src/pitiupi/control/HeartbeatManager.java
@@ -35,16 +35,28 @@ public class HeartbeatManager {
private ScheduledExecutorService scheduler;
private final String instanceId = UUID.randomUUID().toString();
+ /**
+ * Cria um gerenciador de heartbeat associado à janela principal da aplicação.
+ *
+ * @param mainWindow janela principal utilizada para obter o nome do usuário
+ * e o socket de comunicação.
+ */
public HeartbeatManager(MainWindow mainWindow) {
this.mainWindow = mainWindow;
}
+ /**
+ * Inicia o mecanismo de heartbeat.
+ */
public void start() {
scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(this::announce, 0, HEARTBEAT_INTERVAL_MS, TimeUnit.MILLISECONDS);
scheduler.scheduleAtFixedRate(this::checkTimeouts, HEARTBEAT_INTERVAL_MS, HEARTBEAT_INTERVAL_MS, TimeUnit.MILLISECONDS);
}
+ /**
+ * Para o mecanismo de heartbeat e encerra as tarefas agendadas.
+ */
public void stop() {
if (scheduler != null) {
scheduler.shutdownNow();
@@ -64,8 +76,8 @@ public class HeartbeatManager {
/**
* Processa uma mensagem de heartbeat recebida de outro usuário.
*
- * Atualiza a informação do peer correspondente e notifica os listeners
- * caso um novo usuário seja identificado.
+ * Atualiza o momento da última atividade do peer correspondente e notifica os listeners
+ * caso outra instância da aplicação seja identificada.
*
* Mensagens de heartbeat enviadas pela própria aplicação são ignoradas.
*
@@ -118,10 +130,20 @@ public class HeartbeatManager {
l.onPeersChanged(new ArrayList<>(peers.values()));
}
+ /**
+ * Remove um listener previamente registrado.
+ *
+ * @param l listener que deixará de receber atualizações.
+ */
public void removePeerListener(PeerListener l) {
listeners.remove(l);
}
+ /**
+ * Retorna uma cópia da lista atual de peers conhecidos.
+ *
+ * @return lista contendo os peers atualmente conhecidos.
+ */
public List getPeers() {
return new ArrayList<>(peers.values());
}
diff --git a/pitiupi/src/pitiupi/net/Socket.java b/pitiupi/src/pitiupi/net/Socket.java
index 139484a..91c2c89 100644
--- a/pitiupi/src/pitiupi/net/Socket.java
+++ b/pitiupi/src/pitiupi/net/Socket.java
@@ -20,7 +20,7 @@ import pitiupi.plugin.Plugin;
import pitiupi.net.HeartbeatMessage;
/**
- * Responsável pela comunicação multicast entre a aplicação e os plugins.
+ * "Responsável pela comunicação multicast da aplicação e pelo encaminhamento de mensagens aos plugins."
*
* Esta classe gerencia o envio e o recebimento de mensagens, além de
* manter a conexão com o grupo multicast utilizado pela aplicação.
@@ -72,6 +72,9 @@ public class Socket extends Thread {
multicastSocket.send(msgPacket);
}
+ /**
+ * Encerra a comunicação multicast e interrompe a recepção de mensagens.
+ */
public void close() {
running = false;
if (multicastSocket != null) {