SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
sion_keyvalue_inline.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
14 #ifndef SION_SION_KEYVALUE_INLINE_H
15 #define SION_SION_KEYVALUE_INLINE_H
16 
17 #include <stdint.h>
18 
19 #include "sion_const.h"
20 #include "sion_common.h"
21 #include "sion_datatypes.h"
22 #include "sion_filedesc.h"
23 
25 
27  sion_int64 key;
28  size_t offset;
29  size_t bytes_left;
30  sion_int32 new;
31 };
32 
33 size_t _sion_store_and_write_key_and_len_inline(_sion_filedesc *sion_filedesc, uint64_t key, size_t len);
34 size_t _sion_write_value_inline(_sion_filedesc *sion_filedesc, const void *data, uint64_t key, size_t len);
35 
36 int _sion_key_full_scan_inline(_sion_filedesc *sion_filedesc);
37 
38 int _sion_iterator_reset_inline(_sion_filedesc *sion_filedesc);
39 int _sion_iterator_next_inline(_sion_filedesc *sion_filedesc, uint64_t *keyptr, size_t *sizeptr);
40 
41 int _sion_find_and_read_key_and_len_inline(_sion_filedesc *sion_filedesc, uint64_t key, size_t len, size_t *datalen);
42 size_t _sion_read_value_inline(_sion_filedesc *sion_filedesc, void *data, uint64_t key, size_t len);
43 
44 int _sion_keyval_dup_dataptr_inline(_sion_filedesc *sion_filedesc, _sion_filedesc *new_filedesc);
45 
46 int _sion_seek_key_inline(_sion_filedesc *sion_filedesc, uint64_t key, int blocknum, sion_int64 posinblock);
47 
48 /* iterator for list of keys */
49 int _sion_key_list_iterator_reset_inline(_sion_filedesc *sion_filedesc);
50 int _sion_key_list_iterator_next_inline(_sion_filedesc *sion_filedesc, uint64_t *keyptr);
51 
52 /* fills a stat-data structure containing information about the key */
53 int _sion_key_get_stat_inline(_sion_filedesc *sion_filedesc, uint64_t key, sion_key_stat_t *keystat);
54 
55 #endif
Sion File Descriptor Structure.
Definition: sion_filedesc.h:79