+struct hs_instance {
+ HS_ClientManager *client_manager; // the connection session manager
+ HS_AppInfo *app_info; // application info
+
+ hs_instance() : client_manager(HS_ClientManager::instance()), app_info(HS_AppInfo::instance()) {}
+ int init(afb_api_t api);
+};
+
+/**
+ * init function
+ *
+ * #### Parameters
+ * - api : the api serving the request
+ *
+ * #### Return
+ * 0 : init success
+ * 1 : init fail
+ *
+ */
+int hs_instance::init(afb_api_t api)
+{
+ if(client_manager == nullptr) {
+ AFB_ERROR("client_manager is nullptr.");
+ return -1;
+ }
+ client_manager->init();
+
+ if(app_info == nullptr) {
+ AFB_ERROR("app_info is nullptr.");
+ return -1;
+ }
+ app_info->init(api);
+
+ return 0;
+}
+
+static struct hs_instance *g_hs_instance;