发明名称 一种在curl库中实现资源缓存的方法
摘要 一种在curl库中实现资源缓存的方法,包括:Curl入口函数处解析curl本次处理的URL;判断URL是Http模式时,且通过URL中的扩展名信息判断不为需要实时更新的资源时,检查URL是否存在于缓存的节点队列中;如果存在并且该节点已经被标记为结束状态则将其被引用加一,直接调用应用程序注册的回调函数将节点中的数据传送给应用程序;如果否,为URL创建一个节点,将其插入缓存队列中;判断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整,如果是,不保存数据;如果否,将本次传递的数据顺序的放入节点中保存数据的缓存中。本发明可准确的判断curl对一个URL资源的操作已经结束,进而将其内容保存到缓存或本地临时文件中,缩短程序运行的时间。
申请公布号 CN101699823B 申请公布日期 2014.04.02
申请号 CN200910109910.2 申请日期 2009.10.30
申请人 深圳创维数字技术股份有限公司 发明人 朱琳
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 深圳市康弘知识产权代理有限公司 44247 代理人 胡朝阳;孙洁敏
主权项 一种在curl库中实现资源缓存的方法,其特征在于,包括:步骤1,Curl入口函数处解析curl本次处理的URL;步骤2,判断URL的类型,当URL是file模式时不做缓存,执行curl的固有工作流程;当URL是Http模式时,则执行步骤3;步骤3,通过URL中的扩展名信息判断是否为需要实时更新的资源,如果是,则不缓存,下面的步骤都按curl的固有工作流程执行;否则执行步骤4;步骤4,检查所述URL是否存在于缓存的节点队列中,是则执行步骤5;否则执行步骤6;步骤5,判断此节点是否被标记结束状态,是则将节点被引用数加一作为以后缓存到达上限时删除资源释放缓存的依据,并执行步骤16,直接调用应用程序注册的回调函数,将节点中的数据传送给应用程序;否则执行步骤8;步骤6,为所述URL创建一个节点,并执行步骤7;步骤7,将节点插入缓存队列中,然后执行步骤8;步骤8,判断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整,是则执行步骤9;否则执行步骤10;步骤9,不保存数据,并转而执行步骤12;步骤10,将本次传递的数据顺序的放入节点中保存数据的缓存中,执行curl流程到步骤11;步骤11,将curl对所述URL对应资源的数据是否下载完全的信息保存到节点中,执行curl流程到步骤12;步骤12,将curl对所述URL处理是否结束的信息保存到节点中,然后执行步骤13;步骤13,判断缓存中存放资源的总值是否超过上限,是则执行步骤14;否则继续执行curl剩余的工作流程;步骤14,删除缓存中最不常用的、已经标记为结束的资源及其节点,直到缓存中资源小于等于设定好的极限值,然后执行curl剩余的工作流程;步骤15,继续执行curl剩余的工作流程;步骤16,直接调用应用程序注册的回调函数,将节点中的数据传送给应用程序。
地址 518057 广东省深圳市南山区高新南一道创维大厦A14层