mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-25 12:11:36 +08:00
c api 回调invoker支持异步执行
This commit is contained in:
parent
e663ddd9a6
commit
824eeee6f5
@ -161,7 +161,16 @@ API_EXPORT void API_CALL mk_http_response_invoker_do_file(const mk_http_response
|
||||
const mk_parser request_parser,
|
||||
const char *response_header[],
|
||||
const char *response_file_path);
|
||||
/**
|
||||
* 克隆mk_http_response_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_http_response_invoker_do
|
||||
* 如果是同步执行mk_http_response_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_http_response_invoker API_CALL mk_http_response_invoker_clone(const mk_http_response_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_http_response_invoker_clone_release(const mk_http_response_invoker ctx);
|
||||
|
||||
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
|
||||
//HttpSession::HttpAccessPathInvoker对象的C映射
|
||||
@ -177,6 +186,17 @@ API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_pat
|
||||
const char *access_path,
|
||||
int cookie_life_second);
|
||||
|
||||
/**
|
||||
* 克隆mk_http_access_path_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_http_access_path_invoker_do
|
||||
* 如果是同步执行mk_http_access_path_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_http_access_path_invoker API_CALL mk_http_access_path_invoker_clone(const mk_http_access_path_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_http_access_path_invoker_clone_release(const mk_http_access_path_invoker ctx);
|
||||
|
||||
///////////////////////////////////////////RtspSession::onGetRealm/////////////////////////////////////////////
|
||||
//RtspSession::onGetRealm对象的C映射
|
||||
typedef void* mk_rtsp_get_realm_invoker;
|
||||
@ -187,6 +207,17 @@ typedef void* mk_rtsp_get_realm_invoker;
|
||||
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_invoker ctx,
|
||||
const char *realm);
|
||||
|
||||
/**
|
||||
* 克隆mk_rtsp_get_realm_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_rtsp_get_realm_invoker_do
|
||||
* 如果是同步执行mk_rtsp_get_realm_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_rtsp_get_realm_invoker API_CALL mk_rtsp_get_realm_invoker_clone(const mk_rtsp_get_realm_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_clone_release(const mk_rtsp_get_realm_invoker ctx);
|
||||
|
||||
///////////////////////////////////////////RtspSession::onAuth/////////////////////////////////////////////
|
||||
//RtspSession::onAuth对象的C映射
|
||||
typedef void* mk_rtsp_auth_invoker;
|
||||
@ -200,6 +231,16 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
|
||||
int encrypted,
|
||||
const char *pwd_or_md5);
|
||||
|
||||
/**
|
||||
* 克隆mk_rtsp_auth_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_rtsp_auth_invoker_do
|
||||
* 如果是同步执行mk_rtsp_auth_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_rtsp_auth_invoker API_CALL mk_rtsp_auth_invoker_clone(const mk_rtsp_auth_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtsp_auth_invoker_clone_release(const mk_rtsp_auth_invoker ctx);
|
||||
|
||||
///////////////////////////////////////////Broadcast::PublishAuthInvoker/////////////////////////////////////////////
|
||||
//Broadcast::PublishAuthInvoker对象的C映射
|
||||
@ -218,6 +259,17 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoke
|
||||
int enable_hls,
|
||||
int enable_mp4);
|
||||
|
||||
/**
|
||||
* 克隆mk_publish_auth_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_publish_auth_invoker_do
|
||||
* 如果是同步执行mk_publish_auth_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_publish_auth_invoker API_CALL mk_publish_auth_invoker_clone(const mk_publish_auth_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_publish_auth_invoker_clone_release(const mk_publish_auth_invoker ctx);
|
||||
|
||||
///////////////////////////////////////////Broadcast::AuthInvoker/////////////////////////////////////////////
|
||||
//Broadcast::AuthInvoker对象的C映射
|
||||
typedef void* mk_auth_invoker;
|
||||
@ -228,6 +280,16 @@ typedef void* mk_auth_invoker;
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const char *err_msg);
|
||||
|
||||
/**
|
||||
* 克隆mk_auth_invoker对象,通过克隆对象为堆对象,可以实现跨线程异步执行mk_auth_invoker_do
|
||||
* 如果是同步执行mk_auth_invoker_do,那么没必要克隆对象
|
||||
*/
|
||||
API_EXPORT mk_auth_invoker API_CALL mk_auth_invoker_clone(const mk_auth_invoker ctx);
|
||||
|
||||
/**
|
||||
* 销毁堆上的克隆对象
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_auth_invoker_clone_relase(const mk_auth_invoker ctx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -285,17 +285,42 @@ API_EXPORT void API_CALL mk_http_response_invoker_do_file(const mk_http_response
|
||||
(*invoker).responseFile(((Parser*)(request_parser))->getValues(),header,response_file_path);
|
||||
}
|
||||
|
||||
API_EXPORT mk_http_response_invoker API_CALL mk_http_response_invoker_clone(const mk_http_response_invoker ctx){
|
||||
assert(ctx);
|
||||
HttpSession::HttpResponseInvoker *invoker = (HttpSession::HttpResponseInvoker *)ctx;
|
||||
return new HttpSession::HttpResponseInvoker (*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_http_response_invoker_clone_release(const mk_http_response_invoker ctx){
|
||||
assert(ctx);
|
||||
HttpSession::HttpResponseInvoker *invoker = (HttpSession::HttpResponseInvoker *)ctx;
|
||||
delete invoker;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
|
||||
API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_path_invoker ctx,
|
||||
const char *err_msg,
|
||||
const char *access_path,
|
||||
int cookie_life_second){
|
||||
assert(ctx);
|
||||
HttpSession::HttpAccessPathInvoker *invoer = (HttpSession::HttpAccessPathInvoker *)ctx;
|
||||
(*invoer)(err_msg ? err_msg : "",
|
||||
HttpSession::HttpAccessPathInvoker *invoker = (HttpSession::HttpAccessPathInvoker *)ctx;
|
||||
(*invoker)(err_msg ? err_msg : "",
|
||||
access_path? access_path : "",
|
||||
cookie_life_second);
|
||||
}
|
||||
|
||||
API_EXPORT mk_http_access_path_invoker API_CALL mk_http_access_path_invoker_clone(const mk_http_access_path_invoker ctx){
|
||||
assert(ctx);
|
||||
HttpSession::HttpAccessPathInvoker *invoker = (HttpSession::HttpAccessPathInvoker *)ctx;
|
||||
return new HttpSession::HttpAccessPathInvoker(*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_http_access_path_invoker_clone_release(const mk_http_access_path_invoker ctx){
|
||||
assert(ctx);
|
||||
HttpSession::HttpAccessPathInvoker *invoker = (HttpSession::HttpAccessPathInvoker *)ctx;
|
||||
delete invoker;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////RtspSession::onGetRealm/////////////////////////////////////////////
|
||||
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_invoker ctx,
|
||||
const char *realm){
|
||||
@ -304,6 +329,18 @@ API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_in
|
||||
(*invoker)(realm ? realm : "");
|
||||
}
|
||||
|
||||
API_EXPORT mk_rtsp_get_realm_invoker API_CALL mk_rtsp_get_realm_invoker_clone(const mk_rtsp_get_realm_invoker ctx){
|
||||
assert(ctx);
|
||||
RtspSession::onGetRealm *invoker = (RtspSession::onGetRealm *)ctx;
|
||||
return new RtspSession::onGetRealm (*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_clone_release(const mk_rtsp_get_realm_invoker ctx){
|
||||
assert(ctx);
|
||||
RtspSession::onGetRealm *invoker = (RtspSession::onGetRealm *)ctx;
|
||||
delete invoker;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////RtspSession::onAuth/////////////////////////////////////////////
|
||||
API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
|
||||
int encrypted,
|
||||
@ -313,6 +350,18 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
|
||||
(*invoker)(encrypted, pwd_or_md5 ? pwd_or_md5 : "");
|
||||
}
|
||||
|
||||
API_EXPORT mk_rtsp_auth_invoker API_CALL mk_rtsp_auth_invoker_clone(const mk_rtsp_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
RtspSession::onAuth *invoker = (RtspSession::onAuth *)ctx;
|
||||
return new RtspSession::onAuth(*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtsp_auth_invoker_clone_release(const mk_rtsp_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
RtspSession::onAuth *invoker = (RtspSession::onAuth *)ctx;
|
||||
delete invoker;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////Broadcast::PublishAuthInvoker/////////////////////////////////////////////
|
||||
API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoker ctx,
|
||||
const char *err_msg,
|
||||
@ -324,6 +373,18 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoke
|
||||
(*invoker)(err_msg ? err_msg : "", enable_rtxp, enable_hls, enable_mp4);
|
||||
}
|
||||
|
||||
API_EXPORT mk_publish_auth_invoker API_CALL mk_publish_auth_invoker_clone(const mk_publish_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
Broadcast::PublishAuthInvoker *invoker = (Broadcast::PublishAuthInvoker *)ctx;
|
||||
return new Broadcast::PublishAuthInvoker(*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_publish_auth_invoker_clone_release(const mk_publish_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
Broadcast::PublishAuthInvoker *invoker = (Broadcast::PublishAuthInvoker *)ctx;
|
||||
delete invoker;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////Broadcast::AuthInvoker/////////////////////////////////////////////
|
||||
API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const char *err_msg){
|
||||
assert(ctx);
|
||||
@ -331,3 +392,14 @@ API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const cha
|
||||
(*invoker)(err_msg ? err_msg : "");
|
||||
}
|
||||
|
||||
API_EXPORT mk_auth_invoker API_CALL mk_auth_invoker_clone(const mk_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
Broadcast::AuthInvoker *invoker = (Broadcast::AuthInvoker *)ctx;
|
||||
return new Broadcast::AuthInvoker(*invoker);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_auth_invoker_clone_relase(const mk_auth_invoker ctx){
|
||||
assert(ctx);
|
||||
Broadcast::AuthInvoker *invoker = (Broadcast::AuthInvoker *)ctx;
|
||||
delete invoker;
|
||||
}
|
Loading…
Reference in New Issue
Block a user