#pragma once #include "mptp.h" #include "package.h" #include "url.h" #include #include typedef struct lm_pool_info { char *maintainer; char *pubkey; ssize_t size; } lm_pool_info_t; typedef struct lm_pool { struct lm_pool *next; lm_pool_info_t info; lm_url_t url; lm_pkg_t *pkg; char *name; char *info_file; char *list_file; char *dir; bool available, loaded; } lm_pool_t; #define POOL_INFO_SIZE "size" #define POOL_INFO_PUBKEY "pubkey" #define POOL_INFO_MAINTAINER "maintainer" lm_pool_t *lm_pool_new(char *name, char *url); void lm_pool_test(lm_pool_t *pool); void lm_pool_free(lm_pool_t *pool); lm_pkg_t *lm_pool_package_find(lm_pool_t *pool, char *name, char *version); bool lm_pool_package_add(lm_pool_t *pool, lm_pkg_t *pkg); bool lm_pool_path_set_dir(lm_pool_t *pool, char *dir); bool lm_pool_path_is_empty(lm_pool_t *pool); bool lm_pool_info_download(lm_pool_t *pool, lm_mptp_transfer_callback_t callback, void *data); bool lm_pool_info_load(lm_pool_t *pool); void lm_pool_info_free(lm_pool_t *pool); bool lm_pool_list_download(lm_pool_t *pool, char *dir, lm_mptp_transfer_callback_t callback, void *data); bool lm_pool_list_load(lm_pool_t *pool, char *dir); void lm_pool_list_free(lm_pool_t *pool);