Repository navigation
Entrega da Etapa 1: libtslog e Arquitetura
LPII - Trabalho Final: Programação Concorrente - Etapa 1
Este é o repositório para o trabalho final da disciplina de LPII.
Esta entrega corresponde à Etapa 1: libtslog e Arquitetura.
Funcionalidades Entregues na Etapa 1
-
Biblioteca de Log Thread-Safe (
libtslog): Foi implementada uma biblioteca de log simples, encapsulada na classeLogger, que permite a escrita concorrente em um arquivo de log. A exclusão mútua é garantida pelo uso destd::mutexpara evitar condições de corrida. -
Teste CLI de Concorrência: Um programa principal (
main.cpp) foi desenvolvido para simular um ambiente com múltiplas threads (10 threads, cada uma escrevendo 100 mensagens) que utilizam a biblioteca de log simultaneamente para demonstrar que ela é, de fato, thread-safe. -
Arquitetura Inicial (Tema A: Servidor de Chat): Foi definida a arquitetura inicial para o projeto.
- [cite_start]Headers Principais: Foram criados os arquivos de cabeçalho
Server.heClient.hcom a declaração das classes e seus principais atributos e métodos. [cite: 59] - [cite_start]Diagramas: Foram produzidos o diagrama de sequência, para ilustrar o fluxo de comunicação, e o diagrama de classes, para mostrar a estrutura estática do projeto. [cite: 59]
- [cite_start]Headers Principais: Foram criados os arquivos de cabeçalho
Como Compilar e Executar
Este projeto utiliza make para a compilação.
-
Pré-requisitos:
- Compilador C++ (G++)
- Make
-
Compilar o projeto:
No terminal, na raiz do projeto, execute o comando:make
-
Executar o teste da biblioteca de log:
Após a compilação, execute o programa de teste:./bin/teste.exe
-
Verificar o resultado:
Um arquivo chamadolog_concorrente.txtserá criado na raiz do projeto, contendo as mensagens de todas as threads de forma organizada.