亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? shppresponsestream.cpp

?? 本源碼為移動(dòng)公司話費(fèi)查詢(xún)中間件TUXEDO使用的實(shí)例
?? CPP
字號(hào):
/*******************************************
* file name:   SHPPResponseStream.h
* date:        2002.7.25
* 用途:       定義自助話打印協(xié)議SHPP寫(xiě)應(yīng)答包格式
* 作者:       林游海
*******************************************/

#include "SHPPResponseStream.h"

CSHPPResponseStream::CSHPPResponseStream(CSHPPSocket* pSocket)
{
	m_pchStartPut = new char[PACKETBUFFER];
	memset(m_pchStartPut,'0',knPacketSize);

	m_pPrintField = new struct PrintFieldStruct[FIELDCOUNT];
	memset(m_pPrintField,0,(sizeof(struct PrintFieldStruct)*FIELDCOUNT));
	m_nFieldCount = 0;
	m_nFieldVal = 0;
	m_nRowSize = 0;
	memset(m_chPrintString,' ',2*PRINTMAXLEN);

	m_chPrintString[2*PRINTMAXLEN] = 0;

	m_pchCurrentPut = m_pchStartPut+knPacketSize;
	memset(m_pchCurrentPut,' ',2*PRINTMAXLEN);

	m_unBytesWritten = 0;    // 內(nèi)存塊已寫(xiě)了長(zhǎng)度

	m_pSocket = pSocket;

	m_bWriteHead = false;
	m_nSeq = 0;
}

CSHPPResponseStream::~CSHPPResponseStream()
{
	delete [] m_pPrintField;
	delete [] m_pchStartPut;
}

void CSHPPResponseStream::PutServerType(UInt16 nServerType)
{
	SetField(m_pchStartPut + knType,nServerType,knTypeOffset);
}

void CSHPPResponseStream::PutResult(UInt16 nResult)
{
	SetField(m_pchStartPut + knResult,nResult,knResultOffset);
}

//增加一個(gè)參數(shù)
KN_Error CSHPPResponseStream::PutParameter(char* pPara,int nLen,Bool16 bRow)
{
	KN_Error knError = KN_OK;

	//包體太大,分包傳
//	if((m_pchCurrentPut - m_pchStartPut + nLen + s_unEOLLen +1) > PACKETBUFFER)
	if((m_unBytesWritten + nLen + s_unEOLLen +1) > (PACKETBUFFER - knPacketSize))
	{
		WriteSHPPHead(0);
		knError = this->Flush();
		if(knError != KN_OK)
			return knError;
	}

	//包結(jié)果,發(fā)送包
	if(pPara == NULL)
	{
//		memcpy(m_pchCurrentPut,s_pchEOL,s_unEOLLen);
//		m_pchCurrentPut += 2;
//		m_unBytesWritten += 2;
//		WriteSHPPHead();
//		return this->Flush();
		return KN_OK;
	}

	memcpy(m_pchCurrentPut,pPara,nLen);
	m_pchCurrentPut += nLen;
	m_unBytesWritten += nLen;

	if(bRow)
	{
		memcpy(m_pchCurrentPut,s_pchEOL,s_unEOLLen);
		m_pchCurrentPut += 2;
		m_unBytesWritten += 2;
	}
	else 
	{
		m_pchCurrentPut[0] = '\t';
		m_pchCurrentPut += 1;
		m_unBytesWritten += 1;
	}

	return KN_OK;
}

KN_Error CSHPPResponseStream::PutParameter(char* pPara,Bool16 bRow)
{
	return PutParameter(pPara,strlen(pPara),bRow);
}

KN_Error CSHPPResponseStream::Flush()
{
	try{
		int nSend;
		WriteSHPPHead();

		nSend = m_pSocket->Write(this->m_pchStartPut,m_unBytesWritten + knPacketSize,sfTimeout);


		if(m_pchStartPut[knM] == '1')
		{
//			m_pSocket->SetReadBuf();
			m_pSocket->Cleanup();
			m_nSeq = 0;
		}
	}
#ifdef _DEBUG
	catch(CErrorMessage *e){

		char text[200];
		e->GetErrorMessage(text);

		m_pSocket->Cleanup();
		delete e;
		return KN_SocketError;
	}
#else
	catch(KN_Error error){
		m_pchStartPut[86] = 0;
		printf("flush error = %s\n",m_pchStartPut);
		m_pSocket->Cleanup();
		this->Reset();
		return error;
	}
#endif
	Reset();
	return KN_OK;
}

void CSHPPResponseStream::SetField(char* pHead,UInt32 nInParam,UInt16 nSize)
{
	char chType[10];
	UInt16 nLen,i;
	nLen = sprintf(chType,"%d",nInParam);

	if(nLen > nSize)
		return ;

	nLen = nSize - nLen;

	for(i = 0;i < nSize;i++)
	{
		if(i < nLen)
			pHead[i] = '0';
		else
			pHead[i] = chType[i - nLen];
	}

}

void CSHPPResponseStream::Reset(UInt32 inNumBytesToLeave)
{ 
	if(m_unBytesWritten == inNumBytesToLeave)
		return ;
	m_pchCurrentPut = m_pchStartPut + knPacketSize + inNumBytesToLeave;
	m_unBytesWritten = inNumBytesToLeave;
	m_bWriteHead = false;
	PutResult(0);
//	memset(m_pchStartPut,'0',knPacketSize);
}

void CSHPPResponseStream::WriteSHPPHead(UInt16 nM)
{
	if(!m_bWriteHead)
	{
		m_pchStartPut[0] = '1';
		m_pchStartPut[1] = '0';

		strcpy(m_pchCurrentPut,s_pchEOL);
		m_pchCurrentPut += s_unEOLLen;
		m_unBytesWritten += s_unEOLLen;//m_pchCurrentPut - m_pchStartPut - knPacketSize;

		SetField(m_pchStartPut + knLength,m_unBytesWritten,knLengthOffset);
		SetField(m_pchStartPut + knSeq,m_nSeq,knSeqOffset);

		m_pchStartPut[knM] = (char)(nM + '0');
//		if(m_pchStartPut[knM] == '1')

		m_nSeq++;
		m_bWriteHead = true;
	}
}

////////////處理打印字段////////////////

int CSHPPResponseStream::AddPrintField(int nMaxSize,char nStyle)
{
	int nPos;
	if(m_nFieldCount > 0)
	{
		nPos = m_pPrintField[m_nFieldCount-1].nPos + nMaxSize;
	}
	else
		nPos = nMaxSize;

	m_nRowSize += nMaxSize;
	m_pPrintField[m_nFieldCount].nPos = nPos;
	m_pPrintField[m_nFieldCount].nStyle = nStyle;

	m_nFieldCount++;
	return 0;
}

void CSHPPResponseStream::ResetField()
{
	m_nFieldCount = 0;
	m_nFieldVal   = 0;
	m_nRowSize    = 0;
}

void CSHPPResponseStream::AddFieldVal(char *pchVal,int nSize)
{
	int nPos;
	char *p;

	assert(nSize >= 0 && m_nRowSize > 0 && pchVal);

	if(nSize > 0)
	{
		p = m_chPrintString;
		if(m_nFieldVal == 0)
			nPos = 0;
		else
			nPos = m_pPrintField[m_nFieldVal-1].nPos;

		p += nPos;

		nPos = m_pPrintField[m_nFieldVal].nPos - nPos ;

		if(nPos < nSize)
		{
			int n;
			if(m_nFieldVal == 0)
				n = m_nRowSize;
			else
				n = m_nRowSize - m_pPrintField[m_nFieldVal-1].nPos;
			if(nSize > n)
				nSize = n;
			memcpy(m_chPrintString,pchVal,nSize);
			this->PutParameter(m_chPrintString,m_nRowSize);
			memset(m_chPrintString,' ',m_nRowSize);
		}
		else{

			nPos -= nSize;
			if(m_pPrintField[m_nFieldCount].nStyle == LPLCENTER)
			{
				p += nPos /2;
			}
			else if(m_pPrintField[m_nFieldVal].nStyle == LPLRIGHT)
			{
				p += nPos;
			}
			memcpy(p,pchVal,nSize);
		}
	}

	m_nFieldVal++;
	if(m_nFieldVal == m_nFieldCount)
	{
		this->PutParameter(m_chPrintString,m_nRowSize);
		memset(m_chPrintString,' ',m_nRowSize);
		m_nFieldVal = 0 ;
	}
}

void CSHPPResponseStream::PrintLine(char* pLine,char nStyle)
{
	int nPos = 0;
	char *pHead;

	if(nStyle == LPLLEFT)
	{
		this->PutParameter(pLine);
		return ;
	}

	if(m_nRowSize == 0)
		nPos = PRINTMAXLEN;
	else
		nPos = m_nRowSize;
	memset(m_chPrintString,' ',m_nRowSize);

	if(nStyle == LPLCENTER)
	{
		pHead = m_chPrintString + (nPos - strlen(pLine))/2;
	}
	else if(nStyle == LPLRIGHT)
	{
		pHead = m_chPrintString + (nPos - strlen(pLine));
	}
	strcpy(pHead,pLine);
	this->PutParameter(m_chPrintString);
	memset(m_chPrintString,' ',nPos);

}

void CSHPPResponseStream::PutSeparator()
{
	static char s_chSeparator[] = 
	{"------------------------------------------------"};
	this->PutParameter(s_chSeparator);

}

///////////////////////////////////////////////////

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡视频| 亚洲成人综合在线| 26uuu欧美| 欧美xingq一区二区| 欧美一区二区三区四区高清| 欧美亚洲禁片免费| 欧美三日本三级三级在线播放| 在线视频中文字幕一区二区| 91视频国产资源| 99精品偷自拍| 欧美亚洲动漫制服丝袜| 欧美在线观看一二区| 欧美三级电影精品| 欧美精品三级在线观看| 国产婷婷色一区二区三区在线| 久久久综合视频| 国产精品网曝门| 国产精品久久久久永久免费观看| 国产精品国产三级国产普通话99| 亚洲人成网站精品片在线观看| 亚洲精品少妇30p| 亚洲成人综合网站| 精品一区二区三区免费观看| 国产经典欧美精品| 91一区二区在线观看| 在线观看日产精品| 337p亚洲精品色噜噜狠狠| 日韩一区二区三区视频在线观看 | 欧美日韩日日骚| 欧美另类变人与禽xxxxx| 欧美videos中文字幕| 中文久久乱码一区二区| 亚洲精品成人a在线观看| 日韩av一区二区三区四区| 国内不卡的二区三区中文字幕| av电影在线观看一区| 欧美日韩一级大片网址| 欧美大片国产精品| 中文字幕第一页久久| 亚洲成人777| 国产精品 日产精品 欧美精品| 91精品办公室少妇高潮对白| 欧美电视剧免费全集观看| 国产精品久久久久久久久动漫 | 国产精品无遮挡| 亚洲丶国产丶欧美一区二区三区| 国产在线视频一区二区三区| 色综合久久中文字幕综合网 | 亚洲成av人影院| 国产成人综合网| 欧美精品乱码久久久久久 | 韩国女主播一区| 一本色道久久加勒比精品 | 亚洲欧洲av在线| 日韩精品色哟哟| www.亚洲精品| 日韩三级.com| 洋洋成人永久网站入口| 精品一二三四在线| 一本久久a久久精品亚洲| 久久综合色播五月| 亚洲国产一区视频| 成人av在线播放网址| 欧美大胆一级视频| 亚洲午夜在线电影| caoporen国产精品视频| 欧美va亚洲va在线观看蝴蝶网| 亚洲精品视频一区二区| 成人性视频免费网站| 91精品福利在线一区二区三区| 亚洲欧美韩国综合色| 国产成人免费av在线| 日韩色视频在线观看| 午夜久久久影院| 99久久精品国产观看| 久久亚洲一区二区三区明星换脸| 亚洲一区二区三区爽爽爽爽爽| 成人av网站大全| wwwwww.欧美系列| 美女脱光内衣内裤视频久久影院| 色婷婷一区二区| 国产精品短视频| 国产成人av一区二区| 337p日本欧洲亚洲大胆精品| 日韩国产一二三区| 精品视频一区二区不卡| 亚洲一区二区综合| 色偷偷久久一区二区三区| 中文字幕一区二| 不卡的av在线| 国产精品网站一区| 成人午夜电影久久影院| 久久久国产精华| 国内精品伊人久久久久av一坑| 日韩精品一区二| 久久se这里有精品| 精品久久久久久久久久久久久久久久久 | 午夜精品在线视频一区| 欧美亚洲愉拍一区二区| 一区二区成人在线观看| 日本韩国一区二区三区视频| 国产精品久久精品日日| 成人黄色小视频在线观看| 欧美国产日产图区| 国产成人免费视频一区| 国产精品欧美精品| av一二三不卡影片| 国产精品国模大尺度视频| www.欧美.com| 综合久久久久久久| 色综合久久88色综合天天免费| 1区2区3区国产精品| 成人高清免费观看| 亚洲欧美另类综合偷拍| 欧美在线免费播放| 日韩精品午夜视频| 精品国产制服丝袜高跟| 国产91对白在线观看九色| 国产精品理伦片| 色素色在线综合| 亚洲电影一级黄| 日韩三级免费观看| 国产剧情一区二区三区| 成人免费在线播放视频| 欧洲色大大久久| 免费高清不卡av| 久久综合狠狠综合| 99麻豆久久久国产精品免费| 亚洲伊人伊色伊影伊综合网| 91麻豆精品国产自产在线| 久久99热国产| 国产精品理伦片| 欧美体内she精高潮| 免费成人小视频| 国产女人18水真多18精品一级做 | 亚洲欧洲av一区二区三区久久| 在线一区二区三区| 日本欧美大码aⅴ在线播放| 国产欧美视频一区二区| 在线观看亚洲一区| 久久精品av麻豆的观看方式| 自拍偷拍国产精品| 欧美福利一区二区| 国产乱国产乱300精品| 亚洲宅男天堂在线观看无病毒| 精品国产三级a在线观看| 波多野结衣中文一区| 偷拍一区二区三区| 国产欧美久久久精品影院| 欧美亚洲尤物久久| 国产精一区二区三区| 一区二区三区中文字幕在线观看| 日韩欧美国产综合一区| 99精品国产99久久久久久白柏| 日本亚洲欧美天堂免费| 国产精品久久久久精k8| 欧美一区二区三区在线电影| 99久久精品国产一区| 秋霞电影网一区二区| 亚洲天堂精品视频| 欧美sm美女调教| 91福利精品第一导航| 国产高清一区日本| 日韩精品电影在线| 亚洲色图另类专区| 久久久久久久久久久电影| 欧美欧美欧美欧美首页| a美女胸又www黄视频久久| 精品在线一区二区三区| 亚洲国产精品综合小说图片区| 中文字幕国产一区| 欧美tk丨vk视频| 欧美久久婷婷综合色| 91污在线观看| 国产精品中文字幕一区二区三区| 三级一区在线视频先锋 | 91丝袜美腿高跟国产极品老师 | 亚洲精品国产精华液| 国产日韩精品一区二区三区| 欧美一区二区三区男人的天堂| 欧洲激情一区二区| www.av精品| 国产jizzjizz一区二区| 看电视剧不卡顿的网站| 亚洲一区二区三区四区的| 亚洲素人一区二区| 中文字幕巨乱亚洲| 国产亚洲午夜高清国产拍精品| 欧美日韩国产高清一区二区三区 | 9i看片成人免费高清| 国产成人av影院| 国产盗摄一区二区| 久久99国产精品尤物| 蜜桃传媒麻豆第一区在线观看| 亚洲高清不卡在线观看| 亚洲成人av电影在线| 亚洲成人一区在线| 亚洲动漫第一页| 亚洲在线中文字幕| 亚洲一级二级三级|