shppresponsestream.h
来自「本源码为移动公司话费查询中间件TUXEDO使用的实例」· C头文件 代码 · 共 91 行
H
91 行
/*******************************************
* file name: SHPPResponseStream.h
* date: 2002.7.25
* 用途: 定义自助话打印协议SHPP写应答包格式
* 作者: 林游海
*******************************************/
#if !defined(_SHPPRESPONSESTREAM_H_LINYOUHAI)
#define _SHPPRESPONSESTREAM_H_LINYOUHAI
#include "SHPPProtocol.h"
#include "SHPPSocket.h"
#define FIELDCOUNT 10
#define LPLLEFT 0 //左对齐
#define LPLCENTER 1 //居中
#define LPLRIGHT 2 //右对齐
struct PrintFieldStruct
{
// int nMaxSize; //字段的最大值
int nPos; //打印的第一个字节的位置
char nStyle; //对齐方式0为左对齐1为居中2为右对齐
};
class CSHPPResponseStream :public CSHPPProtocol
{
public:
CSHPPResponseStream(CSHPPSocket* pSocket);
~CSHPPResponseStream();
//写包头协议
//写版本号---------2-----
//写包体的长度-----8-----
//写服务类型-------4-----
void PutServerType(UInt16 nServerType);
//写保留字---------8-----
//写包序-----------4-----
//写M标志位--------1-----
//写result结果状态-4-----
void PutResult(UInt16 nResult);
//增加一个参数
KN_Error PutParameter(char* pPara,int nLen,Bool16 bRow = true);
KN_Error PutParameter(char* pPara,Bool16 bRow = true);
void PutSeparator();
KN_Error Flush();
UInt32 GetPacketLen(){return m_unBytesWritten;}
//重新写inNumBytesToLeave偏移量后的字节
void Reset(UInt32 inNumBytesToLeave = 0);
void WriteSHPPHead(UInt16 nM = 1);
/////////////处理打印字段////////
int AddPrintField(int nMaxSize,char nStyle = 0);
void ResetField();
void AddFieldVal(char* pchVal,int nSize);
void PrintLine(char* pLine,char nStyle);
int GetRowSize(){return m_nRowSize;}
/////////////////////////////////
protected:
void SetField(char* pHead,UInt32 nInParam,UInt16 nSize);
char* m_pchStartPut; // 内存块
char* m_pchCurrentPut; // 指向内存块的当前位置
UInt32 m_unBytesWritten; // 内存块已写了长度
//打印字段
struct PrintFieldStruct* m_pPrintField;
int m_nFieldCount; //打印字段的总个数
int m_nFieldVal; //当前已赋值的字段个数
int m_nRowSize; //每个行的大小;
char m_chPrintString[2*PRINTMAXLEN +1 ];
enum
{
sfTimeout = 15000, //传输超时
};
CSHPPSocket* m_pSocket;
Bool16 m_bWriteHead;
UInt16 m_nSeq;
};
#endif //_SHPPRESPONSESTREAM_H_LINYOUHAI
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?