GRU - Generic Reusable Utilities
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
gru_config.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_CONFIG_H
18 #define GRU_CONFIG_H
19 
20 #include <stdarg.h>
21 #include <stdbool.h>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25 #if !defined(_WIN32) && !defined(_WIN64)
26 #include <pthread.h>
27 #endif
28 #include <assert.h>
29 #include <inttypes.h>
30 
31 #include "common/gru_alloc.h"
32 #include "common/gru_base.h"
33 #include "io/gru_ioutils.h"
34 #include "io/gru_path.h"
35 #include "string/gru_util.h"
36 
37 #include "gru_payload.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 typedef struct gru_config_t_ {
44  char *dir;
45  char *filename;
46  FILE *file;
47 
49 } gru_config_t;
50 
55  const char *dir, const char *filename, gru_payload_t *payload, gru_status_t *status);
56 
58 
59 gru_export void gru_config_set(char *dest, uint32_t size, const char *fmt, ...);
60 
62  const char *name, FILE *source, void *dest, const char *mask);
63 
64 gru_export void gru_config_read_string(const char *name, FILE *source, char *dest);
65 gru_export void gru_config_read_short(const char *name, FILE *source, int16_t *dest);
66 gru_export void gru_config_read_ushort(const char *name, FILE *source, uint16_t *dest);
67 gru_export void gru_config_read_int(const char *name, FILE *source, int32_t *dest);
68 gru_export void gru_config_read_uint(const char *name, FILE *source, uint32_t *dest);
69 gru_export void gru_config_read_long(const char *name, FILE *source, int64_t *dest);
70 gru_export void gru_config_read_ulong(const char *name, FILE *source, uint64_t *dest);
71 
72 gru_export void gru_config_write_short(const char *name, FILE *dest, int16_t value);
73 gru_export void gru_config_write_ushort(const char *name, FILE *dest, uint16_t value);
74 gru_export void gru_config_write_int(const char *name, FILE *dest, int32_t value);
75 gru_export void gru_config_write_uint(const char *name, FILE *dest, uint32_t value);
76 gru_export void gru_config_write_long(const char *name, FILE *dest, int64_t value);
77 gru_export void gru_config_write_ulong(const char *name, FILE *dest, uint64_t value);
78 
79 gru_export void gru_config_write_string(const char *name, FILE *dest, const char *value);
80 
81 #ifdef __cplusplus
82 }
83 #endif
84 
85 #endif /* GRU_CONFIG_H */
char * filename
Definition: gru_config.h:45
gru_config_t * gru_config_init(const char *dir, const char *filename, gru_payload_t *payload, gru_status_t *status)
Initializes a new configuration object.
Definition: gru_config.c:18
void gru_config_write_short(const char *name, FILE *dest, int16_t value)
Definition: gru_config.c:139
void gru_config_write_ushort(const char *name, FILE *dest, uint16_t value)
Definition: gru_config.c:143
void gru_config_read_long(const char *name, FILE *source, int64_t *dest)
Definition: gru_config.c:131
void gru_config_read_ushort(const char *name, FILE *source, uint16_t *dest)
Definition: gru_config.c:119
FILE * file
Definition: gru_config.h:46
void gru_config_read_string(const char *name, FILE *source, char *dest)
Definition: gru_config.c:111
void gru_config_read_uint(const char *name, FILE *source, uint32_t *dest)
Definition: gru_config.c:127
#define gru_export
Definition: gru_portable.h:19
void gru_config_write_uint(const char *name, FILE *dest, uint32_t value)
Definition: gru_config.c:151
char * dir
Definition: gru_config.h:44
Definition: gru_config.h:43
void gru_config_read(const char *name, FILE *source, void *dest, const char *mask)
Definition: gru_config.c:84
void gru_config_read_short(const char *name, FILE *source, int16_t *dest)
Definition: gru_config.c:115
Definition: gru_payload.h:40
void gru_config_write_long(const char *name, FILE *dest, int64_t value)
Definition: gru_config.c:155
void gru_config_set(char *dest, uint32_t size, const char *fmt,...)
Definition: gru_config.c:66
struct gru_config_t_ gru_config_t
void gru_config_write_ulong(const char *name, FILE *dest, uint64_t value)
Definition: gru_config.c:159
void gru_config_read_int(const char *name, FILE *source, int32_t *dest)
Definition: gru_config.c:123
Status type.
Definition: gru_status.h:47
void gru_config_write_int(const char *name, FILE *dest, int32_t value)
Definition: gru_config.c:147
void gru_config_read_ulong(const char *name, FILE *source, uint64_t *dest)
Definition: gru_config.c:135
void gru_config_write_string(const char *name, FILE *dest, const char *value)
Definition: gru_config.c:163
gru_payload_t * payload
Definition: gru_config.h:48
void gru_config_destroy(gru_config_t **config)
Definition: gru_config.c:57