File index mapping and serialization functions.
More...
#include <stdio.h>
#include "fs.h"
Go to the source code of this file.
|
#define | INDEXBUCKETS 64 |
| The fixed number of buckets in the index map.
|
|
|
struct inode_s * | indexfind (const struct index_s *idx, const char *fp) |
| Searches the index for a node with a matching filepath.
|
|
int | indexwrite (struct index_s *idx, FILE *s) |
| Flattens the index map into a sorted array of nodes (by filepath). The list is then written to the file stream and freed.
|
|
int | indexread (struct index_s *idx, FILE *s) |
| Reads a file stream and deserializes the contents into a map of individual file nodes.
|
|
struct inode_s * | indexput (struct index_s *idx, struct inode_s node) |
| Copies the node and inserts it into the index mapping.
|
|
void | indexfree (struct index_s *idx) |
| Frees all nodes in the index map.
|
|
struct inode_s ** | indexlist (const struct index_s *idx) |
| Flattens the index map into an unsorted array of nodes. The list is dynamically allocated and must be freed by the caller. Array size is determined by the size field in the index struct.
|
|
File index mapping and serialization functions.
◆ INDEXBUCKETS
The fixed number of buckets in the index map.
◆ indexfind()
struct inode_s * indexfind |
( |
const struct index_s * | idx, |
|
|
const char * | fp ) |
Searches the index for a node with a matching filepath.
- Parameters
-
idx | The index to search |
fp | The search value (filepath) to compare |
- Returns
- If a match is found, its pointer is returned, otherwise NULL.
◆ indexfree()
void indexfree |
( |
struct index_s * | idx | ) |
|
Frees all nodes in the index map.
- Parameters
-
◆ indexlist()
Flattens the index map into an unsorted array of nodes. The list is dynamically allocated and must be freed by the caller. Array size is determined by the size
field in the index struct.
- Parameters
-
- Returns
- If successful, a pointer to an array of size
idx->size
is returned. Otherwise, NULL is returned and errno
is set.
◆ indexput()
Copies the node and inserts it into the index mapping.
- Parameters
-
idx | The index to insert into |
node | The node to insert |
- Returns
- The pointer to the new node in the index map, otherwise NULL is returned and
errno
is set.
◆ indexread()
int indexread |
( |
struct index_s * | idx, |
|
|
FILE * | s ) |
Reads a file stream and deserializes the contents into a map of individual file nodes.
- Parameters
-
idx | The index to populate |
s | The file stream to read from |
- Returns
- If successful, 0 is returned. Otherwise, -1 is returned and
errno
is set.
◆ indexwrite()
int indexwrite |
( |
struct index_s * | idx, |
|
|
FILE * | s ) |
Flattens the index map into a sorted array of nodes (by filepath). The list is then written to the file stream and freed.
- Parameters
-
idx | The index to flatten |
s | The file stream to write to |
- Returns
- If successful, 0 is returned. Otherwise, -1 is returned and
errno
is set.