SIONlib  2.0.0-rc.2
Scalable I/O library for parallel access to task-local files
sion_serial.h
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 
10 #ifndef SION_SION_SERIAL_H
11 #define SION_SION_SERIAL_H
12 
16 
17 #include <stdint.h>
18 
19 #include "sion_enums.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
33 typedef struct sion_options sion_options;
34 
39 
58 int sion_open(const char *fname, sion_open_mode mode, int n, const sion_options *options);
59 
79 int sion_open_rank(const char *fname, sion_open_mode mode, int rank, const sion_rank_options *options);
80 
93 int sion_close(int sid);
94 
99 
103 void sion_options_delete(sion_options *options);
104 
110 void sion_options_set_chunksizes(sion_options *options, int n, const int64_t chunksizes[]);
111 
116 void sion_options_set_fsblksize(sion_options *options, int32_t fsblksize);
117 
123 
129 
134 void sion_options_set_endianness(sion_options *options, sion_endianness endianness);
135 
140 
145 
151 
152 #ifdef __cplusplus
153 }
154 #endif
155 
157 
158 #endif
sion_lowlevel_api
specifies a low-level API to use for file system access
Definition: sion_enums.h:19
void sion_rank_options_delete(sion_rank_options *options)
Delete an instance of sion_rank_options
Definition: sion_serial.c:87
void sion_options_set_endianness(sion_options *options, sion_endianness endianness)
Set the endianness for the contents of a container.
Definition: sion_serial.c:56
sion_rank_options * sion_rank_options_new(void)
Allocates and initializes an instance of sion_rank_options
Definition: sion_serial.c:78
int sion_close(int sid)
Close a SIONlib file.
Definition: sion_serial.c:102
void sion_options_set_lowlevel_api(sion_options *options, sion_lowlevel_api lowlevel_api)
Set the low-level API to use for opening a container.
Definition: sion_serial.c:51
void sion_options_delete(sion_options *options)
Delete an instance of sion_options
Definition: sion_serial.c:30
void sion_options_set_keyval_mode(sion_options *options, sion_keyval_mode keyval_mode)
Set the key-value mode to use for a container.
Definition: sion_serial.c:46
struct sion_options sion_options
Holds non-essential arguments for sion_open().
Definition: sion_serial.h:33
int sion_open_rank(const char *fname, sion_open_mode mode, int rank, const sion_rank_options *options)
Open a single logical file in a SIONlib container.
Definition: sion_serial.c:97
int sion_open(const char *fname, sion_open_mode mode, int n, const sion_options *options)
Open a SIONlib container in serial mode.
Definition: sion_serial.c:61
sion_options * sion_options_new(void)
Allocates and initializes an instance of sion_options
Definition: sion_serial.c:21
sion_keyval_mode
specifies whether to use SIONlib's key-value mechanism for accessing file content and if so in what m...
Definition: sion_enums.h:35
void sion_options_set_chunksizes(sion_options *options, int n, const int64_t chunksizes[])
Set the chunk sizes of all logical files in the container.
Definition: sion_serial.c:35
sion_endianness
declares the endianness of user data written to a file
Definition: sion_enums.h:63
sion_open_mode
specifies for what type of access to open a file
Definition: sion_enums.h:27
void sion_options_set_fsblksize(sion_options *options, int32_t fsblksize)
Set the file system block size to assume.
Definition: sion_serial.c:41
void sion_rank_options_set_lowlevel_api(sion_rank_options *options, sion_lowlevel_api lowlevel_api)
Set the low-level API to use for opening a container.
Definition: sion_serial.c:92
struct sion_rank_options sion_rank_options
Holds non-essential arguments for sion_open_rank().
Definition: sion_serial.h:38