0 前言

     在rpc或分布式节点间的通讯框架里面,我们经常会有“业务数据与二进制流数据之间进行编码或解码转换”的场景要求,在jdk的nio框架里面有既有的ByteBuffer类满足此需求,那么在c++里面,同样我们简单看看,一个具有类似功能的类DataBuffer。  

1 实现机制

     其实现机制:通过指针偏移指向同一块内存,分别表示内存的起始与结束偏移位置,分别表示读与写的偏移位置。如下图:  

2 操作步骤

   2.1 读取数据时,仅需偏移_pdata即可

       源码如下:

    bool readBytes(void *dst, int len) {

        if (_pdata + len > _pfree) {

            return false;

        }

        memcpy(dst, _pdata, len);

        _pdata += len;

        assert(_pfree>=_pdata);

        return true;

    }
View Code

相关文章:

  • 2021-11-08
  • 2021-08-10
  • 2021-09-26
  • 2022-12-23
  • 2021-12-19
  • 2022-03-08
  • 2022-12-23
  • 2022-01-23
猜你喜欢
  • 2022-12-23
  • 2022-03-07
  • 2021-06-03
  • 2021-08-22
  • 2021-04-19
  • 2021-06-16
相关资源
相似解决方案