Squid Web Cache Wiki

Squid Web Cache 文档

🔗 Client Streams

🔗 简介

clientStream 是一个单向松耦合的管道。每个节点包含四个方法 - read、callback、detach 和 status,以及流的内部管理变量(一个 dlink 节点和指向列表头部的指针)、节点的上下文数据以及读取请求参数 - readbuf、readlen 和 readoff(在主体中)。clientStream 是调度的基本单元,clientStreamRead 和 clientStreamCallback 调用允许根据需要进行延迟调度活动。关于流操作的理论

不同节点的 Read 参数之间没有强制的对应关系,只要提供的回调是正确的即可。

🔗 实现说明

ClientStreams 已实现客户端回复逻辑,以客户端套接字(列表尾部为 clientSocketRecipient)或自定义处理程序(用于 in-squid 请求)开始,管道头部为 clientGetMoreData,它使用 clientSendMoreData 将数据向下发送到管道。客户端 POST 主体目前不使用管道,它们使用之前的代码来发送数据。这将在时间允许时完成。

🔗 节点包含什么

每个节点必须包含

🔗 方法详情

第一个参数始终是客户端流的“this”引用,它是一个 clientStreamNode *。

🔗 Read

参数

副作用:触发对满足 httpClientRequest 元信息以及(如果适用)offset、length 和 buffer 参数的数据的读取。

🔗 Callback

参数

副作用:将数据返回到流中的下一个节点。数据可以立即返回,也可以延迟到后续调度周期。

🔗 Detach

参数

副作用

🔗 Status

参数

副作用:允许节点查询上游节点

🔗 Abort

参数

副作用:分离流的尾部。目前不清理尾部节点数据 - 这必须单独完成。因此,Abort 只能由尾部节点调用。

导航:网站搜索网站页面分类🔼 向上