2ed68aa361545f4eb1f38338a454a027f8d0b88f
[ppam-mpi.git] / code / src / Util / utils.h
1 #ifndef PPAM_UTIL_UTILS_H
2 #define PPAM_UTIL_UTILS_H
3
4 #include "Util/types.h"
5 #include <stdlib.h>
6 #include <stdio.h>
7
8 #define CURVES_PER_REQUEST 50
9
10 void free_work(Work_t* work);
11
12 void free_result(Result_t* result);
13
14 char readInt(FILE* stream, int64_t* integer);
15
16 char readReal(FILE* stream, Real* real);
17
18 // convert n-bytes binary integers to uint32_t
19 uint32_t bInt_to_uint(Byte* pInteger, size_t bytesCount);
20
21 // serialize integers with a portable bytes order
22 void write_int(uint32_t integer, size_t bytesCount, Byte* buffer);
23
24 // Expected size of a Work message in bytes:
25 uint32_t get_packedWork_length(uint32_t nbSeriesInChunk);
26
27 // Expected size of a Result message in bytes: (uint32_t is on 4 bytes)
28 uint32_t get_packedResult_length(uint32_t nbClusters);
29
30 // get metadata: nbSeries
31 uint32_t get_nbSeries(const char* ifileName);
32
33 // get metadata: tsLength
34 uint32_t get_tsLength(const char* ifileName);
35
36 #endif