Provided by: liblibrecast-dev_0.8.0-1.1build1_amd64 bug

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)