Enforce numeric application IDs
[src/app-framework-main.git] / src / wgtpkg-unit.h
index f152736..a9c2709 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright 2016, 2017 IoT.bzh
+ Copyright (C) 2016-2019 IoT.bzh
 
  author: José Bollo <jose.bollo@iot.bzh>
 
@@ -20,6 +20,7 @@
 struct json_object;
 struct wgt_info;
 
+
 enum unitscope {
        unitscope_unknown = 0,
        unitscope_system,
@@ -43,9 +44,23 @@ struct unitdesc {
        size_t wanted_by_length;
 };
 
-extern int unit_generator_on(const char *filename);
-extern void unit_generator_off();
-extern int unit_generator_process(struct json_object *jdesc, int (*process)(void *closure, const struct unitdesc descs[], unsigned count), void *closure);
-extern int unit_install(struct wgt_info *ifo, const char *installdir, const char *icondir, int port);
-extern int unit_uninstall(struct wgt_info *ifo);
+struct unitconf {
+       const char *installdir;
+       const char *icondir;
+       int (*new_afid)();
+       int base_http_ports;
+};
+
+struct generatedesc {
+       const struct unitconf *conf;
+       struct json_object *desc;
+       const struct unitdesc *units;
+       int nunits;
+};
+
+extern int unit_generator_open_template(const char *filename);
+extern void unit_generator_close_template();
+extern int unit_generator_process(struct json_object *jdesc, const struct unitconf *conf, int (*process)(void *closure, const struct generatedesc *desc), void *closure);
+extern int unit_install(struct wgt_info *ifo, const struct unitconf *conf);
+extern int unit_uninstall(struct wgt_info *ifo, const struct unitconf *conf);