GRU - Generic Reusable Utilities
gru_payload.h
Go to the documentation of this file.
1 /*
2  Copyright 2016 Otavio Rodolfo Piske
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  */
16 
17 #ifndef GRU_PAYLOAD_H
18 #define GRU_PAYLOAD_H
19 
20 #include <stdio.h>
21 #include <stdlib.h>
22 
23 #if !defined(_WIN32) && !defined(_WIN64)
24 #include <strings.h>
25 #endif
26 
27 #include "common/gru_portable.h"
28 #include "common/gru_status.h"
29 #include "io/gru_ioutils.h"
30 #include "io/gru_path.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 typedef void (*gru_payload_data_init_t)(void *);
37 typedef void (*gru_payload_data_save_t)(FILE *, void *);
38 typedef void (*gru_payload_data_read_t)(FILE *, void *);
39 
40 typedef struct gru_payload_t_ {
44 
45  void *data;
47 
51  void *data,
52  gru_status_t *status);
53 
55 
56 gru_export FILE *gru_payload_init_data(gru_payload_t *payload, const char *filename, gru_status_t *status);
57 gru_export FILE *gru_payload_for_dump(gru_payload_t *payload, const char *filename, gru_status_t *status);
58 
59 #ifdef __cplusplus
60 }
61 #endif
62 
63 #endif /* GRU_PAYLOAD_H */
void(* gru_payload_data_init_t)(void *)
Definition: gru_payload.h:36
gru_export FILE * gru_payload_for_dump(gru_payload_t *payload, const char *filename, gru_status_t *status)
Definition: gru_payload.c:70
gru_export FILE * gru_payload_init_data(gru_payload_t *payload, const char *filename, gru_status_t *status)
Definition: gru_payload.c:41
gru_export void gru_payload_destroy(gru_payload_t **payload)
Definition: gru_payload.c:36
gru_export gru_payload_t * gru_payload_init(gru_payload_data_init_t init, gru_payload_data_save_t save, gru_payload_data_read_t read, void *data, gru_status_t *status)
Definition: gru_payload.c:20
void(* gru_payload_data_read_t)(FILE *, void *)
Definition: gru_payload.h:38
void(* gru_payload_data_save_t)(FILE *, void *)
Definition: gru_payload.h:37
struct gru_payload_t_ gru_payload_t
#define gru_export
Definition: gru_portable.h:19
Definition: gru_payload.h:40
gru_payload_data_save_t save
Definition: gru_payload.h:42
void * data
Definition: gru_payload.h:45
gru_payload_data_init_t init
Definition: gru_payload.h:41
gru_payload_data_read_t read
Definition: gru_payload.h:43
Status type.
Definition: gru_status.h:47