Files
pitiupi/docs/documentation/11_plugins_referencia.md
T
Gabriel Felipe Souza SantosandCursor f02acaf131 Consolida documentação e plugins de referência ao núcleo atual.
Alinha mpChat e screenCast a ConnectionManager/GuiManager, adiciona docs em docs/ e README de plugins; remove artefatos de build do índice.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 21:20:20 -03:00

2.3 KiB

Plugins de referência

Três exemplos no repositório para comparar estilos de integração. Todos devem ser empacotados em pitiupi/plugins/.

Comparativo

pitiupi.chat pitiupi.screenCast pitiupi.mpChat
Build Ant Ant Make
Classe ChatPlugin ScreenCastPlugin MultiProtocolChat
Categoria menu Social (menu custom via GuiManager) Social (multicast + unicast)
Mensagem ChatMessage ScreenCastMessage MpChatMessage
Transporte principal UDP (via ConnectionManager) UDP / payloads maiores UDP público + TCP privado
TCP avançado Não Depende da versão do módulo receivePrivateConnection, receiveBytes

pitiupi.chat

  • Referência canônica alinhada ao contrato atual Plugin + ConnectionManager / GuiManager.
  • createPlugin registra ChatMenu em MenuCategory.Social.
  • getMessages() retorna ChatMessage.class; receiveMessage atualiza ChatWindow.

Caminhos: pitiupi.chat/src/pitiupi/chat/plugin/ChatPlugin.java.

pitiupi.screenCast

  • Demonstra compartilhamento de tela / imagens (ScreenCastWindow, ScreenCastMessage).
  • Útil para discutir tamanho de datagramas, compressão (ImageTransformation) e limites UDP.

Caminhos: pitiupi.screenCast/src/pitiupi/screenCast/. Alinhado ao contrato Plugin + ConnectionManager / GuiManager (como ChatPlugin).

pitiupi.mpChat

  • Chat público (multicast / unicast UDP) e privado (TCP).
  • createPlugin(ConnectionManager, GuiManager) como nos demais plugins; usa ConnectionManager.connectPluginTcp para abrir canal privado.
  • Sobrescreve hooks TCP do Plugin (receivePrivateConnection, receiveBytes, onSocketClosed).

Caminhos: pitiupi.mpChat/src/plugin/MultiProtocolChat.java.

Fluxo UDP (todos os plugins)

sequenceDiagram
  participant App as MainWindow
  participant UDP as SocketUDP
  participant HB as HeartbeatManager
  participant PM as PluginManager
  participant Peer as OutroPeer
  App->>UDP: join multicast
  UDP->>HB: HeartbeatMessage
  Peer->>UDP: Message plugin
  UDP->>PM: handleMessage bytes
  PM->>PM: deserialize + dispatch

Heartbeat não passa pelos plugins — ver 08_heartbeat_e_presenca.md.

Próximo passo

Criar plugin próprio: 10_tutorial_plugin.md.