GRU - Generic Reusable Utilities
Loading...
Searching...
No Matches
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
40extern "C" {
41#endif
42
43typedef struct gru_config_t_ {
44 char *dir;
45 char *filename;
46 FILE *file;
47
50
58gru_export gru_config_t *gru_config_new(const char *dir, const char *filename, gru_status_t *status);
59
64
73
75
76gru_export void gru_config_set(char *dest, uint32_t size, const char *fmt, ...);
77
78gru_export void gru_config_read_string(const char *name, FILE *source, char *dest);
79gru_export void gru_config_read_short(const char *name, FILE *source, int16_t *dest);
80gru_export void gru_config_read_ushort(const char *name, FILE *source, uint16_t *dest);
81gru_export void gru_config_read_int(const char *name, FILE *source, int32_t *dest);
82gru_export void gru_config_read_uint(const char *name, FILE *source, uint32_t *dest);
83gru_export void gru_config_read_long(const char *name, FILE *source, int64_t *dest);
84gru_export void gru_config_read_ulong(const char *name, FILE *source, uint64_t *dest);
85
86gru_export void gru_config_write_short(const char *name, FILE *dest, int16_t value);
87gru_export void gru_config_write_ushort(const char *name, FILE *dest, uint16_t value);
88gru_export void gru_config_write_int(const char *name, FILE *dest, int32_t value);
89gru_export void gru_config_write_uint(const char *name, FILE *dest, uint32_t value);
90gru_export void gru_config_write_long(const char *name, FILE *dest, int64_t value);
91gru_export void gru_config_write_ulong(const char *name, FILE *dest, uint64_t value);
92
93gru_export void gru_config_write_string(const char *name, FILE *dest, const char *value);
94
95#ifdef __cplusplus
96}
97#endif
98
99#endif /* GRU_CONFIG_H */
gru_export void gru_config_write_int(const char *name, FILE *dest, int32_t value)
Definition: gru_config.c:153
gru_export bool gru_config_init_for_dump(gru_config_t *config, gru_payload_t *payload, gru_status_t *status)
Don't really initialize the config, just dump the payload.
Definition: gru_config.c:51
gru_export void gru_config_read_ulong(const char *name, FILE *source, uint64_t *dest)
Definition: gru_config.c:141
gru_export void gru_config_write_uint(const char *name, FILE *dest, uint32_t value)
Definition: gru_config.c:157
gru_export void gru_config_destroy(gru_config_t **config)
Definition: gru_config.c:65
gru_export void gru_config_read_int(const char *name, FILE *source, int32_t *dest)
Definition: gru_config.c:129
gru_export gru_config_t * gru_config_new(const char *dir, const char *filename, gru_status_t *status)
Creates a new configuration object.
Definition: gru_config.c:18
gru_export void gru_config_write_string(const char *name, FILE *dest, const char *value)
Definition: gru_config.c:169
gru_export void gru_config_read_uint(const char *name, FILE *source, uint32_t *dest)
Definition: gru_config.c:133
gru_export void gru_config_read_string(const char *name, FILE *source, char *dest)
Definition: gru_config.c:117
gru_export void gru_config_read_short(const char *name, FILE *source, int16_t *dest)
Definition: gru_config.c:121
gru_export void gru_config_write_long(const char *name, FILE *dest, int64_t value)
Definition: gru_config.c:161
gru_export void gru_config_read_long(const char *name, FILE *source, int64_t *dest)
Definition: gru_config.c:137
gru_export void gru_config_write_ushort(const char *name, FILE *dest, uint16_t value)
Definition: gru_config.c:149
struct gru_config_t_ gru_config_t
gru_export void gru_config_read_ushort(const char *name, FILE *source, uint16_t *dest)
Definition: gru_config.c:125
gru_export void gru_config_write_ulong(const char *name, FILE *dest, uint64_t value)
Definition: gru_config.c:165
gru_export void gru_config_write_short(const char *name, FILE *dest, int16_t value)
Definition: gru_config.c:145
gru_export bool gru_config_init_from_payload(gru_config_t *config, gru_payload_t *payload, gru_status_t *status)
Initializes a new configuration object.
Definition: gru_config.c:36
gru_export void gru_config_set(char *dest, uint32_t size, const char *fmt,...)
Definition: gru_config.c:73
#define gru_export
Definition: gru_portable.h:19
Definition: gru_config.h:43
char * filename
Definition: gru_config.h:45
gru_payload_t * payload
Definition: gru_config.h:48
char * dir
Definition: gru_config.h:44
FILE * file
Definition: gru_config.h:46
Definition: gru_payload.h:40
Status type.
Definition: gru_status.h:47