mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +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 mk_parser request_parser,
|
||||||
const char *response_header[],
|
const char *response_header[],
|
||||||
const char *response_file_path);
|
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/////////////////////////////////////////////
|
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
|
||||||
//HttpSession::HttpAccessPathInvoker对象的C映射
|
//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,
|
const char *access_path,
|
||||||
int cookie_life_second);
|
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/////////////////////////////////////////////
|
||||||
//RtspSession::onGetRealm对象的C映射
|
//RtspSession::onGetRealm对象的C映射
|
||||||
typedef void* mk_rtsp_get_realm_invoker;
|
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,
|
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_invoker ctx,
|
||||||
const char *realm);
|
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/////////////////////////////////////////////
|
||||||
//RtspSession::onAuth对象的C映射
|
//RtspSession::onAuth对象的C映射
|
||||||
typedef void* mk_rtsp_auth_invoker;
|
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,
|
int encrypted,
|
||||||
const char *pwd_or_md5);
|
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/////////////////////////////////////////////
|
||||||
//Broadcast::PublishAuthInvoker对象的C映射
|
//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_hls,
|
||||||
int enable_mp4);
|
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/////////////////////////////////////////////
|
||||||
//Broadcast::AuthInvoker对象的C映射
|
//Broadcast::AuthInvoker对象的C映射
|
||||||
typedef void* mk_auth_invoker;
|
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);
|
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
|
#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);
|
(*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/////////////////////////////////////////////
|
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
|
||||||
API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_path_invoker ctx,
|
API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_path_invoker ctx,
|
||||||
const char *err_msg,
|
const char *err_msg,
|
||||||
const char *access_path,
|
const char *access_path,
|
||||||
int cookie_life_second){
|
int cookie_life_second){
|
||||||
assert(ctx);
|
assert(ctx);
|
||||||
HttpSession::HttpAccessPathInvoker *invoer = (HttpSession::HttpAccessPathInvoker *)ctx;
|
HttpSession::HttpAccessPathInvoker *invoker = (HttpSession::HttpAccessPathInvoker *)ctx;
|
||||||
(*invoer)(err_msg ? err_msg : "",
|
(*invoker)(err_msg ? err_msg : "",
|
||||||
access_path? access_path : "",
|
access_path? access_path : "",
|
||||||
cookie_life_second);
|
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/////////////////////////////////////////////
|
///////////////////////////////////////////RtspSession::onGetRealm/////////////////////////////////////////////
|
||||||
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_invoker ctx,
|
API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_invoker ctx,
|
||||||
const char *realm){
|
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 : "");
|
(*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/////////////////////////////////////////////
|
///////////////////////////////////////////RtspSession::onAuth/////////////////////////////////////////////
|
||||||
API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
|
API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
|
||||||
int encrypted,
|
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 : "");
|
(*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/////////////////////////////////////////////
|
///////////////////////////////////////////Broadcast::PublishAuthInvoker/////////////////////////////////////////////
|
||||||
API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoker ctx,
|
API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoker ctx,
|
||||||
const char *err_msg,
|
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);
|
(*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/////////////////////////////////////////////
|
///////////////////////////////////////////Broadcast::AuthInvoker/////////////////////////////////////////////
|
||||||
API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const char *err_msg){
|
API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const char *err_msg){
|
||||||
assert(ctx);
|
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 : "");
|
(*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