首页 > 其他分享 >spdy_zlib

spdy_zlib

时间:2023-05-23 16:32:01浏览次数:37  
标签:spdy Binary binary Buffer zlib buffer data


spdy_zlib: 工具类,用于对数据进行deflate/gzip压缩,本身是对zlib库的定制化包装:
<1> 采用了头文件定义接口,实际实现类则通过继承此接口类在cc文件中定义,对外封闭。
通过gz * get_context() 获得可用的GZ对象(实际是实现类gzContextImpl 的对象)


<2> 3个操作方法:
 bool uncompress( Binary_Buffer &data ):
 将data中的数据进行解压,然后重新放回到data中
 bool uncompress( Binary_Buffer &from, Binary_Buffer &to ):
 将from的数据进行解压,然后放到 to中
 bool compress( Binary_Buffer &data ):
 将data中的数据解压,然后放回到data中。
 注意的是,因为zlib库只接受Bytef指针作为数据的输入和输出,因此这里会调用binary_buffer的
 data() 和 write_pointer() 来获得实际数据的内存地址来进行操作,而这样做会绕过binary_buffer内部的
 自动调整机制(调整len, offset等状态值),因此还需要手动调用 consume() 和filled() 来调整offset和len等状态值。
 binary_buffer的set()函数也在这里使用来将压缩/解压的数据整个覆盖式填充到binary_buffer中
 
 <3> 因为get_context()返回的GZ对象是new的,而本身又没有自动释放功能,因此需要手动的在不再使用的时候free:
 void free_conext( gz *x )

标签:spdy,Binary,binary,Buffer,zlib,buffer,data
From: https://blog.51cto.com/u_9420214/6333348

相关文章

  • spdy_buffer
    spdy_binary_buffer:工具类,作用就是一个可以自动扩容和内存空间回收的buffer(主要用来保存http和spdy传输的内容),单位为字节(类型为unsignedchar,因为字符集的值都是>=0的)<1>几个关键的属性:(1)unsignedchar*buffer:指向保存内容的那部分内存的开......
  • telnet远程管理linux主机及Zlib、openssl、openssh升级1
    一、telent远程管理主机1.安装telent服务服务端:yuminstalltelnet-server-y#安装服务端useradddaipasswddai#创建lhj用户,设置lhj密码,密码有规则要求,大小写数字加符号,输2次即可客户端:yuminstalltelnet-y#安装客户端2.测试telent登录客户端:telnet192.......
  • windows10下编译zlib库
    系列文章目录文章目录系列文章目录前言一、问题原因二、准备具体操作编译zlib工程前言我使用CMake编译zlib源码,出现警告:CMakeDeprecationWarningatCMakeLists.txt:1(cmake_minimum_required):CompatibilitywithCMake<2.8.12willberemovedfromafutureversionofCM......
  • 【转】检查Linux系统下是否安装了gcc、pcre、zlib、openssl环境
    1.查看gcc环境gcc-v如果Linux系统没有安装gcc编译器,会提示“Commandnotfound”。如果系统上安装了gcc编译器,这条命令就会显示出当前安装的gcc编译器是哪个版本。下图展示为已安装的信息。 2. 查看pcre环境rpm-qapcre看到pcre的版本,说明已安装,否则未安装。......
  • 7·1HTTP协议的瓶颈|7·2双工通信的WebScoket|7·3探索式的实践-SPDY|7·4期盼已久的H
    HTTP协议的瓶颈影响Http网络请求的原因带宽延迟HTTP协议的瓶颈一条连接上只可发送一个请求请求只能从客户端开始。客户端不可以接受除响应意外的指令请求/响应头部不经压缩就发送每次互相发送相同的头部造成的浪......
  • 搜索式的实践-SPDY、HTTP2
    搜索式的实践-SPDYHTTP的缺陷单路连接请求抵效HTTP只允许由客户端主动发起请求HTTP头部冗余SPDY的改进多路复用请求优化支持服务器推送技术SPDY压缩了HTTP头强......
  • Windows上使用CMake GUI编译开源代码时,提示:cmake Could NOT find ZLIB (missing:ZLIB_
    有的时候就算在CMakeGUI中配置完ZLIB_LIBRARY和PNG_LIBRARY和PNG_PNG_INCLUDE_DIR等相关路径,还是提示上述错误。原因还是由于编译某源码时遗漏了对第三方开源依赖库的配置......
  • Python安装zlib模块
    去http://www.zlib.net/下载最新版本的zlib源码文件安装zlib:tarxzvfzlib-1.2.13.tar.gzcdzlib-1.2.13./configuremake&&makeinstallzlib安装完后,libz.a在/usr......
  • zlib动态库升级
    阅读目录 1.报错 2.解决方案 3.解决步骤回到顶部 1.报错1/lib64/libz.so.1:version`ZLIB_1.2.9'notfound回到顶部 2.解决方案......
  • 移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(编译篇)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......