210 #define SC_SCDA_HEADER_BYTES 128
211 #define SC_SCDA_USER_STRING_BYTES 58
212 #define SC_SCDA_INLINE_FIELD 32
384 const char *filename,
385 const char *user_string,
size_t *len,
432 const char *user_string,
498 const char *user_string,
501 size_t block_size,
int root,
583 const char *user_string,
587 size_t elem_size,
int indirect,
715 const char *user_string,
721 int indirect,
int encode,
769 const char *filename,
770 char *user_string,
size_t *len,
841 size_t *len,
char *type,
924 size_t block_size,
int root,
1169 char *str,
int *len);
Dynamic containers such as lists, arrays, and hash tables.
sc3_MPI_Comm_t sc_MPI_Comm
Emulate an MPI communicator.
Definition: sc_mpi.h:450
sc3_MPI_Info_t sc_MPI_Info
Emulate an MPI Info object.
Definition: sc_mpi.h:451
Provide pseudo-random generator and Poisson sampling.
uint64_t sc_rand_state_t
The internal state of sc_rand and derived functions.
Definition: sc_random.h:36
int sc_scda_ferror_class(sc_scda_ferror_t errcode, sc_scda_ferror_t *errclass)
Translate a sc_scda error code to an error class.
sc_scda_fcontext_t * sc_scda_fread_inline_data(sc_scda_fcontext_t *fc, sc_array_t *data, int root, sc_scda_ferror_t *errcode)
Read the data of an inline data section.
int sc_scda_ferror_string(sc_scda_ferror_t errcode, char *str, int *len)
Translate a sc_scda error code/class to an error string.
sc_scda_fcontext_t * sc_scda_fopen_write(sc_MPI_Comm mpicomm, const char *filename, const char *user_string, size_t *len, sc_scda_params_t *params, sc_scda_ferror_t *errcode)
Open a file for writing and write the file header to the file.
sc_scda_fcontext_t * sc_scda_fread_varray_data(sc_scda_fcontext_t *fc, sc_array_t *array_data, sc_array_t *elem_counts, sc_array_t *elem_sizes, sc_array_t *proc_sizes, int indirect, sc_scda_ferror_t *errcode)
Read the data of a variable-size array.
sc_scda_fcontext_t * sc_scda_fread_block_data(sc_scda_fcontext_t *fc, sc_array_t *block_data, size_t block_size, int root, sc_scda_ferror_t *errcode)
Read the data of a block of given size.
sc_scda_fcontext_t * sc_scda_fwrite_block(sc_scda_fcontext_t *fc, const char *user_string, size_t *len, sc_array_t *block_data, size_t block_size, int root, int encode, sc_scda_ferror_t *errcode)
Write a fixed-size block file section.
sc_scda_fcontext_t * sc_scda_fread_varray_sizes(sc_scda_fcontext_t *fc, sc_array_t *elem_sizes, sc_array_t *elem_counts, sc_scda_ferror_t *errcode)
Read the element sizes of a variable-size array.
struct sc_scda_ferror sc_scda_ferror_t
Error values for the scda functions.
uint64_t sc_scda_ulong
Type for element counts and sizes.
Definition: sc_scda.h:218
sc_scda_fcontext_t * sc_scda_fread_array_data(sc_scda_fcontext_t *fc, sc_array_t *array_data, sc_array_t *elem_counts, size_t elem_size, int indirect, sc_scda_ferror_t *errcode)
Read the data of a fixed-size array.
struct sc_scda_params sc_scda_params_t
A parameter struct for the functions sc_scda_fopen_write and sc_scda_fopen_read.
int sc_scda_proc_sizes(sc_array_t *elem_sizes, sc_array_t *elem_counts, sc_array_t *proc_sizes, sc_scda_ferror_t *errcode)
This is a collective function to determine the processor sizes.
void sc_scda_params_init(sc_scda_params_t *params)
Initialize a scda parameter structure to the defaults.
enum sc_scda_ret sc_scda_ret_t
Error values for scda-related errors.
sc_scda_fcontext_t * sc_scda_fwrite_varray(sc_scda_fcontext_t *fc, const char *user_string, size_t *len, sc_array_t *array_data, sc_array_t *elem_counts, sc_array_t *elem_sizes, sc_array_t *proc_sizes, int indirect, int encode, sc_scda_ferror_t *errcode)
Write a variable-size array file section.
sc_scda_fcontext_t * sc_scda_fwrite_inline(sc_scda_fcontext_t *fc, const char *user_string, size_t *len, sc_array_t *inline_data, int root, sc_scda_ferror_t *errcode)
Write an inline data section.
sc_scda_ret
Error values for scda-related errors.
Definition: sc_scda.h:226
@ SC_SCDA_FERR_LASTCODE
to define own error codes for a higher level application that is using sc_scda functions
Definition: sc_scda.h:255
@ SC_SCDA_FERR_COUNT
A byte count error that may occur transiently on writing or the file is short on reading.
Definition: sc_scda.h:250
@ SC_SCDA_FERR_FORMAT
File not conforming to the scda format.
Definition: sc_scda.h:228
@ SC_SCDA_FERR_USAGE
Incorrect workflow of an scda reading function.
Definition: sc_scda.h:230
@ SC_SCDA_FERR_SUCCESS
successful function call
Definition: sc_scda.h:227
@ SC_SCDA_FERR_ARG
An argument to a scda file function is invalid.
Definition: sc_scda.h:246
@ SC_SCDA_FERR_DECODE
The decode parameter to sc_scda_fread_section_header is true but the file section header(s) encounter...
Definition: sc_scda.h:241
@ SC_SCDA_FERR_MPI
An MPI error occurred; see mpiret in the corresponding sc_scda_ferror_t.
Definition: sc_scda.h:253
sc_scda_fcontext_t * sc_scda_fread_section_header(sc_scda_fcontext_t *fc, char *user_string, size_t *len, char *type, size_t *elem_count, size_t *elem_size, int *decode, sc_scda_ferror_t *errcode)
Read the next file section header.
sc_scda_fcontext_t * sc_scda_fopen_read(sc_MPI_Comm mpicomm, const char *filename, char *user_string, size_t *len, sc_scda_params_t *params, sc_scda_ferror_t *errcode)
Open a file for reading and read the file header from the file.
int sc_scda_ferror_is_success(sc_scda_ferror_t errorcode)
Check if a scda_errorcode_t encodes success.
struct sc_scda_fcontext sc_scda_fcontext_t
Opaque context for writing and reading a libsc data file, i.e.
Definition: sc_scda.h:215
int sc_scda_fclose(sc_scda_fcontext_t *fc, sc_scda_ferror_t *errcode)
Close a file opened for parallel write/read and the free the file context.
sc_scda_fcontext_t * sc_scda_fwrite_array(sc_scda_fcontext_t *fc, const char *user_string, size_t *len, sc_array_t *array_data, sc_array_t *elem_counts, size_t elem_size, int indirect, int encode, sc_scda_ferror_t *errcode)
Write a fixed-size array file section.
The sc_array object provides a dynamic array of equal-size elements.
Definition: sc_containers.h:117
Error values for the scda functions.
Definition: sc_scda.h:280
sc_scda_ret_t scdaret
scda file format related return value
Definition: sc_scda.h:286
int mpiret
MPI function return value; without MPI this variable can get filled by other I/O operation error code...
Definition: sc_scda.h:282
A parameter struct for the functions sc_scda_fopen_write and sc_scda_fopen_read.
Definition: sc_scda.h:299
unsigned fuzzy_everyn
In average every n-th possible error origin returns a fuzzy error.
Definition: sc_scda.h:301
int log_level
The log level for the scda functions.
Definition: sc_scda.h:317
sc_rand_state_t fuzzy_seed
The seed for the fuzzy error return.
Definition: sc_scda.h:313
sc_MPI_Info info
info that is passed to MPI_File_open
Definition: sc_scda.h:300