-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfuncionalidades_trab1.h
61 lines (50 loc) · 2.74 KB
/
funcionalidades_trab1.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef FUNCIONALIDADES_TRAB1_H
#define FUNCIONALIDADES_TRAB1_H
// Include dos headers necessários
#include "manipulacao_dados.h"
#include "vetorIndex.h"
#include "abordagem_dinamica.h"
#include "getset_dados.h"
//Typedef das estruturas de dados para o arquivo de índice
typedef struct registro_cabecalho_index CABECALHO_INDEX;
typedef struct registro_dados_index DADOS_INDEX;
#define TAMANHO_REGISTRO_INDEX 13 //Tamanho do registro de índice (13 bytes)
//Trabalho 1 da disciplina de Organização de Arquivos
/**
* @brief Cria um arquivo de índice simples primário, a partir de um arquivo de dados, cujo campo de busca é o ID.
*
* Essa função começa abrindo o arquivo de dados e fazendo a verificação do seu status. Em seguida, lê-se os registros disponíveis do arquivo de dados, que são organizados de forma ordenada (pelo ID)
* por um vetor de índices. Por fim, esse vetor de indices é escrito no arquivo de índices e o status do arquivo de índices é atualizado. Utilizamos a função fornecida "binarioNaTela" para imprimir o arquivo binário de índice.
*
* @param void
* @return void
*/
void funcionalidade4(void);
/**
* @brief remove os registros que correspondem com os parâmetros lidos do arquivo de dados e do arquivo de índice
*
* Essa função começa abrindo o arquivo de dados e fazendo a verificação do seu status e inicaliza-se o arquivo de índices por meio da função "create_index".
* Após isso são lidos os parâmetros para a exclusão com registros e feita uma busca, por indice caso o id seja um parâmetro e sequencial caso contrário,
* os registros encontrados são removidos lógicamente do arquivo de dados, sendo organizados de forma crescente para utilização do "best-fit",
* e removidos normalmente do índice.
*
*
* @param void
* @return void
*/
void funcionalidade5(void);
/**
* @brief Inserção de novos registros no arquivo de dados de entrada, utilizando a abordagem dinâmica e indexação primária.
*
* Essa função começa abrindo o arquivo de dados e fazendo a verificação do seu status. Também inicaliza-se o arquivo de índices por meio da função "create_index", que
* lê o arquivo de dados e escreve os valores de ID e Byteoffset dos registros disponíveis no arquivo de índices. Em seguida, lê-se os registros a serem inseridos no arquivo de dados
* e, dependendo da disponibilidade, utiliza-se a reutilização de espaço por meio da estratégia best-fit. Por fim, atualiza-se o status do arquivo de dados e imprime os arquivos binários (índice e dados).
*
* @param void
* @return void
*/
void funcionalidade6(void);
//Funções auxiliares para tratar a variável de controle dos registros inseridos.
int incrementar_count_reg(void);
int get_count_reg(void);
#endif