/* SPDX-License-Identifier: LGPL-2.1-only */ /* Copyright (C) 2020 Gediminas Jakutis */ #ifndef ALGOS_CACHE_H_INCLUDED #define ALGOS_CACHE_H_INCLUDED #include #include "defs.h" /* INIT|DESTROY */ int cache_create(struct stream * const in); int cache_populate(struct stream * const in); int cache_destroy(struct stream * const in); /* BLOCKMANIP */ int cache_transfer(struct stream * const src, struct stream * const dest); int cache_block_copy(struct stream * const restrict src, struct stream * const restrict dest); int cache_list_copy(struct stream * const restrict src, struct stream * const restrict dest); int cache_split(struct stream * const src, struct stream * const A, struct stream * const B); int cache_rewind(struct stream * const restrict in); /* GET */ struct entry_l *cached_get_array(struct stream * const in); struct entry_l *cached_get_list(struct stream * const in); /* PUT */ int cached_put_array(struct stream * const in, const struct entry_l * const data); int cached_put_list(struct stream * const restrict in, const struct entry_l * const node); #endif /* ALGOS_CACHE_H_INCLUDED */