MyOS Libc
serdes.h
1 #ifndef SERDES_H
2 #define SERDES_H
3 
4 #include <stddef.h>
5 
9 typedef struct {
10  char* buf;
11  size_t sizeorpos;
12 } serdes_state;
13 
14 
20 void serialize_int(int num,serdes_state* state);
21 
27 void serialize_ptr(void* ptr,serdes_state* state);
28 
29 
30 
37 void serialize_ary(void* ary,size_t len,serdes_state* state);
38 
44 #define serialize_str(str,state) (serialize_int(strlen(str)+1,state),serialize_ary(str,strlen(str)+1,state))
45 
46 
47 
53 void start_deserialize(char* buf,serdes_state* state);
54 
60 int deserialize_int(serdes_state* state);
61 
67 void* deserialize_ptr(serdes_state* state);
68 
75 void* deserialize_ary(size_t len,serdes_state* state);
76 
82 #define deserialize_str(state) (deserialize_ary(deserialize_int(state),state))
83 
84 
85 #endif
86 
Definition: serdes.h:9
char * buf
The buffer getting (de)serialized.
Definition: serdes.h:10
size_t sizeorpos
When serializing, the size of the buffer. When deserializing. the position in the buffer.
Definition: serdes.h:11