近一年来,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的方法相关推荐

  1. jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法

    jquery订阅发布插件代码草稿! jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法 --- jquery订阅发布插件代码草稿 & ...

  2. php 兼容火狐,HTML_总结CSS中火狐浏览器与IE浏览器的兼容代码,如何让你写的代码更兼容火狐 - phpStudy...

    总结CSS中火狐浏览器与IE浏览器的兼容代码 如何让你写的代码更兼容火狐和IE两大主流浏览器?本文将总结总结CSS中火狐浏览器与IE浏览器的兼容代码,兼容你兼容主要是语法规范问题,你写CSS写规范了, ...

  3. Visual Studio 2013 或VS2015 无法调试Revit插件代码的解决办法

    有些开发者在用VS2013 或VS2015调试插件代码时,发现无法跟踪调试. 但是在VS2010,VS2012下没有问题. 一个可能的原因是Revit加载的其它插件的一个兼容性的问题. VS2013由 ...

  4. Zed-Unity插件代码注释——ZEDCamera.CS

    @[toc Zed-Unity插件代码注释--ZEDCamera.cs 引言 Zed-Unity插件提供了在Unity中访问ZED相机SDK的工具,除了提供了SDK的接口外,插件里面还有一些很典型的d ...

  5. Zed-Unity插件代码注释——ZEDCommon.cs

    文章目录 Zed-Unity插件代码注释--ZEDCommon.cs Update 引言 基础环境 ZEDCommon.cs脚本介绍 代码(注释后) Zed-Unity插件代码注释--ZEDCommo ...

  6. Cordova应用的JavaScript代码和自定义插件代码的调试

    我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...

  7. idea重要插件代码颜色_颜色在您的网站上的重要性和品牌形象

    idea重要插件代码颜色 Choosing the right colors for a website or a logo can be a perplexing and time-consumin ...

  8. 插件代码_我们开源了一款 SonarQube iOS 代码扫描插件

    背景: 我们在公司(好未来)内部开发了一套基于 SonarQube 的静态代码扫描服务,得益于 SonarQube 开源版本本身的功能,我们可以直接复用支持主流的编程语言,但 SonarQube 的开 ...

  9. js 实现php md5加密,js实现md5加密插件代码分享

    本文主要和大家分享js实现md5加密插件代码,希望能帮助到大家.//使用方法: //引入文件 //var MD5=MD5.createMD5String(yourSrting):( function( ...

最新文章

  1. 机器学习基础专题:线性判别器
  2. python点的作用-python中三引号的作用(逗号的两点总结)
  3. 2020-12-14 Matlab 模糊控制 车辆泊车 案例分享
  4. 十八、彻底掌握金融量化交易库Tushare
  5. 2018-2019-20172329 《Java软件结构与数据结构》第九周学习总结
  6. js中的局部变量和全局变量
  7. 你应该知道的25道Javascript面试题
  8. 2021年00后生活方式洞察报告
  9. 第三次握手为什么没有序列号_TCP三次握手机制-深入浅出(实例演示)
  10. [转]asp.net中打印ReportViewer报表
  11. scratch3.0接苹果小游戏
  12. ORACLE和SQL SERVER数据交换的二进制问题
  13. 计算机程序运行消耗的内存,电脑内存多大合适?运行内存占用率高的秘密
  14. 模仿天猫商城的J2EE商城网站项目后端5——bean包
  15. 《机器学习与数据科学(基于R的统计学习方法)》——1.2 机器学习的实际案例...
  16. Open For Bussiness (HelloWorld)
  17. win10锁屏c语言,win10系统锁屏状态下运行任意程序设置的操作方法
  18. vscode添加标签自动补全
  19. 【LeetCode】825. Friends Of Appropriate Ages 解题报告(Python)
  20. 鱼C论坛小甲鱼Python课后题

热门文章

  1. 一分钟了解负载均衡的一切
  2. PyTorch 笔记(05)— Tensor 基本运算(torch.abs、torch.add、torch.clamp、torch.div、torch.mul、torch.pow等)
  3. Ubuntu apt-get install、apt-get -f install、apt-get --purge remove、apt-get update、apt-get upgrade、
  4. eclipse或者myeclipse的代码提示功能
  5. VMware 12.0 在安装的时候出现 microsoft runtime dll
  6. 从设计到实现,一步步教你实现Android-Universal-ImageLoader-辅助类
  7. Java学习笔记(二)不定时更新
  8. 软件行业项目经理主要的职责是什么?(转)
  9. class function或class procedure是什么意思
  10. 【Socket研究】~。~ Scoket开发蛋疼笔记 Silverlight