La interfaz es muy simple, y no es un ADT. Los estados se identifican con un número entero (típicamente proveniente de un enum). - El usuario instancia un `struct state_machine' - Describe la maquina de estados: - describe el estado inicial en `initial' - todos los posibles estados en `states' (el orden debe coincidir con el identificador) - describe la cantidad de estados en `states'. Provee todas las funciones necesitadas en un `struct fd_handler' |
||
---|---|---|
docs | ||
include | ||
src | ||
.gitignore | ||
LICENSE.md | ||
Makefile | ||
README.md |
README.md
BProxy
BProxy (Bottler Proxy)
Tabla de contenidos
Requisitos
Debe instalar gcc y make. Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.
Compilación
Para compilar todos los archivos se debe hacer:
make all
Ejecución
Ahora, tendrá dos ejecutables: client
y server
. Note que primero debe correr el server
y luego conectarse con el client
.
./server
y en otra terminal
./client
Testeos
En orden de realizar un análisis estático del sistema usted debe tener instalado cppcheck y pvs-studio. Luego, puede correrlos con:
make test
Por último, si quiere hacer un análisis dinámico (usando valgrind) puede hacerlo mediante:
valgrind ./server
y en otra terminal
valgrind ./client
Limpieza
Si desea borrar los archivos creados luego de la compilación debe correr:
make clean
Note que si, además, quiere borrar el output de los tests (de PVS-Studio
específicamente), lo puede hacer con:
make cleanTest
Autores
- Barmasch, Juan Martín (61033)
- Bellver, Ezequiel (61268)
- Lo Coco, Santiago (61301)