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>
This commit is contained in:
1 parent
d92708a6e9
commit
f02acaf131
61 files changed
+1408
-758
No files matched your search
@@ -0,0 +1,59 @@
|
||||
# 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)
|
||||
|
||||
```mermaid
|
||||
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](08_heartbeat_e_presenca.md).
|
||||
|
||||
## Próximo passo
|
||||
|
||||
Criar plugin próprio: [10_tutorial_plugin.md](10_tutorial_plugin.md).
|
||||
Reference in new issue
Block a user