Man page - mdex_addfile(3)

Packages contains this manual

Manual

MDEX_ADD

NAME
LIBRARY
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
SEE ALSO

NAME

mdex_add, mdex_addfile, mdex_alias - index data, files and directories

LIBRARY

Librecast library ( liblibrecast , -llibrecast )

SYNOPSIS

#include <librecast/mdex.h>

int mdex_add(mdex_t *mdex , void *data , size_t len , q_t *q , int flags );
int mdex_addfile(mdex_t
*mdex , const char *path , q_t *q , int flags );
int mdex_alias(mdex_t
*mdex , unsigned char *alias , size_t aliaslen ,
unsigned char
*hash , size_t hashlen );

Compile and link with -llibrecast .

DESCRIPTION

The mdex_add function builds a merkle tree from data with length len and adds entries for both the tree and chunks to mdex .

The mdex_addfile function builds a merkle tree from the file or directory at path and adds entries for the trees and chunks to mdex .

The mdex_alias function adds an entry alias of length aliaslen which points to the entry hash of length hashlen which must already exist in mdex .

If q is not NULL, it must point to a queue q_t structure previously initialized with q_init (3). This will be passed through to mtree_build (3) to build the merkle tree. This is normally used in conjunction with a threadpool created with q_pool_create (3) with threads all calling q_job_seek (3).

The flags argument is the bitwise OR of zero of more of the following flags:
MDEX_ALIAS

Entry is a pointer to another entry.

MDEX_RAND Entry should be sent using random symbols.

MDEX_RECURSE Recursively index all files and directories below path . (mdex_addfile)

MDEX_MOUNT If set, stay within the same filesystem (i.e., do not cross mount points).
MDEX_SYMLINK

Follow symbolic links when recursively indexing.

RETURN VALUE

These function return zero on success. On error, -1 is returned, and errno is set to indicate the error.

ERRORS

EINVAL

Invalid argument. Both mdex and hash are required (not NULL), and hashlen > 0.

ENOMEM Not enough space/cannot allocate memory (POSIX.1-2001).

SEE ALSO

mdex_init (3), mdex_free (3), mdex_get (3), mdex_put (3), mdex_del (3), mtree_build (3), q_init (3), q_pool_create (3), q_job_seek (3) lc_share (3)