读缓存水位分析:
1、 bufferevent用于数据接收和发送缓存。
2、 bufferevent内建了两个struct bufferevent对象,分别用于发送和接收缓存。
3、 水位值用于实现对缓存区的管理。
4、 从网络模型分析bufferevent会自动从socket读取数据缓存在bufferevent的接收缓存中。
5、 当bufferevent存储的数据到达低水位值时读回调函数触发。
6、 低水位是0时,只要bufferevent从网络收数据就会触发读回调,也即数据可以立即被用户读走。
7、 读回调函数常规操作是从bufferevent中读取数据(用户读取数据)。
8、 但是当bufferevent读取的速度大于用户从bufferevent读取速度是,bufferevent中的数据量会达到高水位值。
9、 当bufferevent缓存数据量达到高水位值时,bufferevent会停止从网络接收数据。
10、当用户从bufferevent中读取了数据使水位值低于高水位值时,bufferevent又可以从网络中接收新的数据。
写缓存水位分析:
1、 用户先将数据写入到bufferevent发送缓存。
2、 当bufferevent发送缓存存储的数据量达到低水位时,回调函数将被触发。
3、 当低水位为0时,bufferevent缓存为空,写进数据时写回调被触发。
4、 回调函数的常规操作是将bufferevent发送缓存数据写到网络中。
5、 当用户写入发送缓存数据快于回调函数将数据写到网络中时,水位值将达到高水位值。
6、 高水位值没有使用。