FwQueue
Estrutura de dados FIFO (fila) do framework TLPP. Substitui implementacao manual via array com aAdd/aDel.
Assinatura: oQueue := FwQueue():New() // :Push(x), :Pop(), :Size(), :IsEmpty()
Retorna: FwQueue object
FwQueue e a fila FIFO (first-in-first-out) do framework moderno. Antes do TLPP, voce simulava com array + aAdd/aDel — agora tem estrutura nativa, mais legivel e performatica.
#include "tlpp-core.th"
User Function TestQueue()
Local oFila := FwQueue():New()
oFila:Push("Tarefa A")
oFila:Push("Tarefa B")
oFila:Push("Tarefa C")
ConOut(oFila:Size()) // 3
While !oFila:IsEmpty()
ConOut(oFila:Pop()) // "Tarefa A", "Tarefa B", "Tarefa C"
EndDo
Return
Quando usar
- Producao/consumo (workers processando tarefas)
- BFS/varredura por niveis
- Buffering de eventos antes de processar
- Substituir array+aAdd/aDel em codigo legado refatorado
Pegadinhas
- Apenas TLPP — nao funciona em codigo AdvPL puro.
- Sem thread-safe nativo — em paralelo use FwSemaphore.
- Memoria — fila gigante consome heap; processar em lote.