packet_pop.h
来源:互联网 发布:放开那三国2等级数据 编辑:程序博客网 时间:2024/05/29 15:08
/*
*文件名 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
- packet_pop.h
- packet_pop.cpp
- h
- h
- h
- ,h
- h
- h
- H
- h
- h
- h
- H
- h
- H
- H
- h
- H
- MyBatis之SQL配置详解
- XNA Shader编程教程2-漫反射光照
- 高德Android 定位SDK示例
- sphinx-release 2.1.4
- cocos2dx创建精灵的五种方法
- packet_pop.h
- 谷歌眼镜开发Mirror API之API使用案例
- Google Map V3 简单操作
- Make iOS project without storyboard
- OnCtlColor
- Qt Creator文件添加助手(持续更新中...)
- FFMPEG结构体分析:AVStream
- iOS开发-strong, weak区别
- GoLang之Concurrency再讨论