Update copyright dates
[src/app-framework-binder.git] / src / afb-hsrv.h
1 /*
2  Copyright (C) 2015-2020 "IoT.bzh"
3
4  author: José Bollo <jose.bollo@iot.bzh>
5
6  Licensed under the Apache License, Version 2.0 (the "License");
7  you may not use this file except in compliance with the License.
8  You may obtain a copy of the License at
9
10      http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  See the License for the specific language governing permissions and
16  limitations under the License.
17 */
18
19 #pragma once
20
21 struct afb_hsrv;
22 struct afb_hreq;
23 struct locale_root;
24
25 extern struct afb_hsrv *afb_hsrv_create();
26 extern void afb_hsrv_put(struct afb_hsrv *hsrv);
27
28 extern void afb_hsrv_stop(struct afb_hsrv *hsrv);
29 extern int afb_hsrv_start(struct afb_hsrv *hsrv, unsigned int connection_timeout);
30 extern int afb_hsrv_set_cache_timeout(struct afb_hsrv *hsrv, int duration);
31 extern int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, int dirfd, const char *alias, int priority, int relax);
32 extern int afb_hsrv_add_alias_root(struct afb_hsrv *hsrv, const char *prefix, struct locale_root *root, int priority, int relax);
33 extern int afb_hsrv_add_handler(struct afb_hsrv *hsrv, const char *prefix, int (*handler) (struct afb_hreq *, void *), void *data, int priority);
34 extern int afb_hsrv_add_interface(struct afb_hsrv *hsrv, const char *uri);
35 extern int afb_hsrv_add_interface_tcp(struct afb_hsrv *hsrv, const char *itf, uint16_t port);
36
37 extern void afb_hsrv_run(struct afb_hsrv *hsrv);