packet_pop.h

/* 

  *文件名 packet_pop.h

  *描述:从数据包的数据体取出数据

 */


#ifndef _PACKET_POP_H

#define _PACKET_POP_H


class CPacketPop

{

  public:

                //@len src_data指向的数据的长度

CPacketPop(char *src_data,int len);

CPacketPop();

~CPacketPop();

public:

                //初始化对象

Init(char *src_data,int len);


//从数据缓存中取一个char类型数据

                //返回值:成功时返回读取数据的字节总数

//否则返回以下错误代码:

               //1 如果数据缓存为空 返回ERR_NO_DATA

               //如果数据缓存中的未读数据的长度小于要读取的数据长度时,返回ERR_BUFF_LESS_DATA

              int PopChar(char &c);

              //从数据缓存中取一个unsigned char类型数据

               int PopUChar(unsigned char &uc);


//从数据缓存中取一个short类型数据

int PopShort(short &s);

            //从数据缓存中取一个unsigned short类型数据

int PopUShort(unsigned short &us);


//从数据缓存中取一个int类型数据

int PopInt(short &i);

            //从数据缓存中取一个unsigned int类型数据

int PopUInt(unsigned int&ui);


//从数据缓存中取一个64位整数

int PopInt64(long long &i);

}


//从数据缓存中取一个float类型数据

int PopFloat(float &f);

//从数据缓存中取一个double类型数据

int PopDouble(double &d);


/*

  *函数功能:从数据缓存中取出一个字符串,并且在字符串尾部添加结束符‘\0’

  *输入参数:@buff 用于存放取出字符串的缓存

                        @buff_size  @buff指向缓存的字节大小

  *返回值:字符串长度

*/

int PopVS(char *buff,int buff_size);


/*

 *函数功能:从数据缓存中取出数据,并且检查输入缓存大小

 *字符串遵循协议【字符串长度,字符串】

*输入参数:

                      @buff_size  @buff指向缓存的字节大小

 *返回取出数据的长度

*/

int PopBuff(char *buff,int buff_size);


//提取一块字符串,如果字符串大于0返回字符串指针,len为字符串的长度;否则返回NULL。

char *PopBuff(int &str_len);


//获取offset

int GetOffset();


//获取数据长度

int GetLength();


private:

           char *m_data;

           int m_len;

           int m_offset;

}


#endif



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值