-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Ygor G. Sena edited this page Jan 29, 2023
·
8 revisions
Olá! Esta Wiki
contém mais algumas informações sobre o projeto desenvolvimento como detalhamento sobre as ferramentas utilizadas, as referências encontradas, o texto completo do desafio do labs desta edicão e informações extras sobre a documentação e o fluxo do projeto como um todo.
Dentro da pasta raiz do projeto, a estruturação dos diretórios é tal como se segue:
-
include
→ contém os cabeçalhos do projetos, bem como uma descrição básica do uso das funções implementadas -
src
-
data_operations
→ implementação das funções que realizam manipulações em arquivos e texto -
dec_prog
→ contém todos os arquivos relacionados à implementação do decoder -
enc_prog
→ contém todos os arquivos relacionados à implementação do encoder -
huffman_zip
→ contém a implementação do algorimo de huffman. Para adicionar outro algoritmo, basta adicionar uma nova pasta com as funções deste. -
ipc
→ contém todos os arquivos relacionados à manipulação de semáforos e uso de memória compartilhada
-
Abaixo, um exemplo de como consta o resumo técnico da implementação da função send_freq_table
em huffman.h
, localizada no arquivo enc_sections.c
, dentro do diretório enc_prog
:
/**
* @brief This function sends to decoder program the frequency table which
* allows the decoder program to recreate the dictionary necessary to unzip
* the compressed file. It also receives the length of the file before
* compression from decoder program and prints it to the standard output.
*
* @param sem Semaphores that were accessed by encoder program.
* @param shm_enc Reads content from encoder shared memory.
* @param shm_dec Reads content from decoder shared memory.
* @param info Struct with necessary information for enconder operation.
*
* @return (void) Successfully does the operations described at brief.
* Otherwise, it exits with err_exit() if something goes wrong.
*/
void send_freq_table(t_semaphore *sem, t_posix_shm *shm_enc, t_posix_shm *shm_dec, t_info *info);