5
#include "public/adios_types.h"
6
#include "public/adios_selection.h"
8
typedef struct read_request
10
ADIOS_SELECTION * sel;
15
uint64_t datasize; // size of selection to hold data
16
// above is the common fields that all read method will use
17
void * priv; // private structure for each read method
18
struct read_request * next;
21
/* Reverse the order in an array in place.
22
use swapping from Fortran/column-major order to ADIOS-read-api/C/row-major order and back
24
void swap_order(int n, uint64_t *array, int *timedim);
25
void change_endianness( void *data, uint64_t slice_size, enum ADIOS_DATATYPES type);
26
void copy_data (void *dst, void *src,
29
uint64_t* size_in_dset,
31
const uint64_t * readsize,
38
enum ADIOS_FLAG change_endiness,
39
enum ADIOS_DATATYPES type
41
void alloc_namelist (char ***namelist, int length);
42
void free_namelist (char **namelist, int length);
43
void list_insert_read_request_tail (read_request ** h, read_request * q);
44
void list_insert_read_request_next (read_request ** h, read_request * q);
45
void list_append_read_request_list (read_request ** h, read_request * q);
46
void list_free_read_request (read_request * h);
47
int list_get_length (read_request * h);
48
ADIOS_SELECTION * copy_selection (const ADIOS_SELECTION * sel);
49
void free_selection (ADIOS_SELECTION * sel);
51
/*******************************************************
52
Processing parameter lists
53
**********************************************************/
55
Process a ;-separated and possibly multi-line text and
56
create a list of name=value pairs from each
57
item which has a "name=value" pattern. Whitespaces are removed.
58
Input is not modified. Space is allocated;
59
Also, simple "name" or "name=" patterns are processed and
60
returned with value=NULL.
65
struct PairStruct * next;
67
typedef struct PairStruct PairStruct;
69
PairStruct * text_to_name_value_pairs (const char * text);
70
void free_name_value_pairs (PairStruct * pairs);
72
/**********************************************************
74
**********************************************************/
76
void adios_nanosleep (int sec, int nanosec);
77
/* get current time as double (in seconds) */
78
double adios_gettime();