Add hooking for events
[src/app-framework-binder.git] / src / afb-config.h
1 /*
2  * Copyright (C) 2015, 2016, 2017 "IoT.bzh"
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 #pragma once
18
19 /*
20  * other definitions --------------------------------------------------- 
21  */
22
23 struct afb_config_list {
24         struct afb_config_list *next;
25         char *value;
26 };
27
28 // main config structure
29 struct afb_config {
30         char *console;          // console device name (can be a file or a tty)
31         char *rootdir;          // base dir for files
32         char *roothttp;         // directory for http files
33         char *rootbase;         // Angular HTML5 base URL
34         char *rootapi;          // Base URL for REST APIs
35         char *workdir;          // where to run the program
36         char *uploaddir;        // where to store transient files
37         char *token;            // initial authentication token [default NULL no session]
38
39         struct afb_config_list *aliases;
40         struct afb_config_list *dbus_clients;
41         struct afb_config_list *dbus_servers;
42         struct afb_config_list *ws_clients;
43         struct afb_config_list *ws_servers;
44         struct afb_config_list *so_bindings;
45         struct afb_config_list *ldpaths;
46         struct afb_config_list *calls;
47
48         char **exec;
49
50         int httpdPort;
51         int background;         // run in backround mode
52         int cacheTimeout;
53         int apiTimeout;
54         int cntxTimeout;        // Client Session Context timeout
55         int nbSessionMax;       // max count of sessions
56         int mode;               // mode of listening
57         int tracereq;
58         int traceditf;
59         int tracesvc;
60         int traceevt;
61         int noHttpd;
62 };
63
64 extern struct afb_config *afb_config_parse_arguments(int argc, char **argv);
65 extern void afb_config_dump(struct afb_config *config);