Refactor of file main.c
[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 
31         // tty)
32         int httpdPort;
33         char *ldpaths;          // list of plugins directories
34         char *rootdir;          // base dir for files
35         char *roothttp;         // directory for http files
36         char *rootbase;         // Angular HTML5 base URL
37         char *rootapi;          // Base URL for REST APIs
38         char *sessiondir;       // where to store mixer session files
39         char *token;            // initial authentication token [default
40         // NULL no session]
41         int background;         // run in backround mode
42         int readyfd;            // a #fd to signal when ready to serve
43         int cacheTimeout;
44         int apiTimeout;
45         int cntxTimeout;        // Client Session Context timeout
46         int nbSessionMax;       // max count of sessions
47         int mode;               // mode of listening
48         int aliascount;
49         int tracereq;
50         struct afb_config_list *aliases;
51         struct afb_config_list *dbus_clients;
52         struct afb_config_list *dbus_servers;
53         struct afb_config_list *ws_clients;
54         struct afb_config_list *ws_servers;
55         struct afb_config_list *so_bindings;
56 };
57
58 extern struct afb_config *afb_config_parse_arguments(int argc, char **argv);