ks_status_t blade_module_wss_create(blade_module_wss_t **bm_wssP, blade_handle_t *bh);
ks_status_t blade_module_wss_destroy(blade_module_wss_t **bm_wssP);
-ks_status_t blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh);
-ks_status_t blade_module_wss_on_unload(blade_module_t *bm);
-ks_status_t blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config);
-ks_status_t blade_module_wss_on_shutdown(blade_module_t *bm);
+// @todo remove exporting this, it's only temporary until DSO loading is in place so wss module can be loaded
+KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh);
+KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm);
+KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config);
+KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm);
ks_status_t blade_module_wss_listen(blade_module_wss_t *bm, ks_sockaddr_t *addr);
void *blade_module_wss_listeners_thread(ks_thread_t *thread, void *data);
ks_status_t blade_module_wss_create(blade_module_wss_t **bm_wssP, blade_handle_t *bh)
{
blade_module_wss_t *bm_wss = NULL;
+ ks_pool_t *pool = NULL;
ks_assert(bm_wssP);
ks_assert(bh);
- bm_wss = ks_pool_alloc(bm_wss->pool, sizeof(blade_module_wss_t));
+ pool = blade_handle_pool_get(bh);
+
+ bm_wss = ks_pool_alloc(pool, sizeof(blade_module_wss_t));
bm_wss->handle = bh;
- bm_wss->pool = blade_handle_pool_get(bh);
+ bm_wss->pool = pool;
bm_wss->tpool = blade_handle_tpool_get(bh);
blade_module_create(&bm_wss->module, bh, bm_wss, &g_module_wss_callbacks);
bm_wss->module_callbacks = &g_module_wss_callbacks;
bm_wss->transport_callbacks = &g_transport_wss_callbacks;
-
+
list_init(&bm_wss->connected);
ks_q_create(&bm_wss->disconnected, bm_wss->pool, 0);
ks_assert(bm_wss->disconnected);
return KS_STATUS_SUCCESS;
}
-ks_status_t blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh)
+KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh)
{
blade_module_wss_t *bm_wss = NULL;
return KS_STATUS_SUCCESS;
}
-ks_status_t blade_module_wss_on_unload(blade_module_t *bm)
+KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm)
{
blade_module_wss_t *bm_wss = NULL;
return KS_STATUS_SUCCESS;
}
-ks_status_t blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config)
+KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config)
{
blade_module_wss_t *bm_wss = NULL;
return KS_STATUS_SUCCESS;
}
-ks_status_t blade_module_wss_on_shutdown(blade_module_t *bm)
+KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm)
{
blade_module_wss_t *bm_wss = NULL;
blade_transport_wss_t *bt_wss = NULL;
KS_DECLARE(ks_status_t) blade_module_create(blade_module_t **bmP, blade_handle_t *bh, void *module_data, blade_module_callbacks_t *module_callbacks);
KS_DECLARE(ks_status_t) blade_module_destroy(blade_module_t **bmP);
KS_DECLARE(void *) blade_module_data_get(blade_module_t *bm);
+
+// @todo very temporary, this is just here to get the wss module loaded until DSO is in place
+KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh);
+KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm);
+KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config);
+KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm);
KS_END_EXTERN_C
#endif
blade_handle_t *bh = NULL;
config_t config;
config_setting_t *config_blade = NULL;
+ blade_module_t *mod_wss = NULL;
ks_global_set_default_logger(KS_LOG_LEVEL_DEBUG);
return EXIT_FAILURE;
}
- // @todo get to wss module callbacks, call onload to kick off registration
+ if (blade_module_wss_on_load(&mod_wss, bh) != KS_STATUS_SUCCESS) {
+ ks_log(KS_LOG_ERROR, "Blade WSS module load failed\n");
+ return EXIT_FAILURE;
+ }
+ if (blade_module_wss_on_startup(mod_wss, config_blade) != KS_STATUS_SUCCESS) {
+ ks_log(KS_LOG_ERROR, "Blade WSS module startup failed\n");
+ return EXIT_FAILURE;
+ }
loop(bh);