欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

如何让插件代码同时兼容ats 5.x和ats 6.x的方法

发布时间:2023/11/27 63 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何让插件代码同时兼容ats 5.x和ats 6.x的方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

近一年来,ats的代码进行了较大的修改, 很多接口的声明都有较大变动. 比如

tsapi TS_DEPRECATED TSReturnCode TSHttpIsInternalRequest(TSHttpTxn txnp);
tsapi TSReturnCode TSHttpTxnIsInternal(TSHttpTxn txnp);

TSPluginRegister(TS_SDK_VERSION_3_0, &info)
tsapi TSReturnCode TSPluginRegister(TSPluginRegistrationInfo *plugin_info);

如何让老插件在ats新版本中使用, 如何才能根据所在的ats的版本来调用相对应的ATS的API是一个亟待解决的问题.

下面是我摸索的结果, 示例如下:

基本思路是在插件代码中判断当前ats的版本号, 根据不同的版本调用对应的API. ats 5.x及以前的版本基本上没有多大变化, ats 6.x及以后的版本变化较大.

使用这个宏TS_VERSION_MAOR来判断,这个宏定义在编译时生成在apidefs.h,它包含在ts/ts.h中,所以请在插件这包含 #include "ts/ts.h" 使用下面的条件表达式进行判断 #if TS_VERSION_MAJOR < 6 xxxxxxxxxxxxxxxxxxxxxxxxxxx #else xxxxxxxxxxxxxxxxxxxxxxxxxxxx #endif 下面是代码截图示例:


总结

以上是生活随笔为你收集整理的如何让插件代码同时兼容ats 5.x和ats 6.x的方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。