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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsdpclient.cpp

?? 《SymbianOSC手機應用開發》源碼
?? CPP
字號:
// gsdpclient.cpp
//
// Copyright (c) 2002 Symbian Ltd.  All rights reserved.

#include "gsdpclient.h"
#include "gsdpserver.h"

void Panic(TInt aPanic)
	{
	_LIT(KPanicCategory,"GSDP Client");
	User::Panic(KPanicCategory, aPanic);
	}

/*
	class RGsdpSession
*/

// open/close

EXPORT_C void RGsdpSession::ConnectL(MGsdpPacketHandler& aHandler)
	{
	// connect to server
	TInt err=KErrNone;
	for (TInt tries=0; tries<2; tries++)
		{
		err=CreateSession(KGsdpServerName, TVersion(0,0,0));
		if (!err) break; // connected to existing server - ok
		if (err!=KErrNotFound && err!=KErrServerTerminated)
			break; // problems other than server not here - propagate error
		err=CGsdpScheduler::LaunchFromClient();
		if (!err) continue; // if server launched ok, try again to connect
		if (err==KErrAlreadyExists)
			continue; // if someone else got there first, try again to connect
		break; // server not launched: don't cycle round again
		}
	User::LeaveIfError(err);
	// create active object receive handler and add it to scheduler
	CleanupClosePushL(*this);  // Close if next operation leaves
	iHandler=new (ELeave) CGsdpReceiveHandler(aHandler, *this);
	CleanupStack::Pop(this);
	CActiveScheduler::Add(iHandler);
	}

EXPORT_C void RGsdpSession::Close()
	{
	// destroy receiver-handler
	delete iHandler;
	iHandler=0;
	// destroy server session
	RSessionBase::Close();
	}

// game protocol

EXPORT_C void RGsdpSession::SetGameProtocol(TUint32 aProtocol)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) aProtocol;
	SendReceive(EGsdpReqSetGameProtocol, p);
	}

EXPORT_C TUint32 RGsdpSession::GetGameProtocol() const
	{
	return SendReceive(EGsdpReqGetGameProtocol, 0);
	}

// set and get GDP protocol

EXPORT_C TInt RGsdpSession::SetGdpProtocol(TUid aProtocol)
	{
	TInt p[KMaxMessageArguments];
	p[0]= aProtocol.iUid;
	return SendReceive(EGsdpReqSetGdpProtocol, p);
	}

EXPORT_C TUid RGsdpSession::GetGdpProtocol() const
	{
	return TUid::Uid(SendReceive(EGsdpReqGetGdpProtocol, 0));
	}

EXPORT_C TBool RGsdpSession::GdpIsNetworked() const
	{
	return SendReceive(EGsdpReqGdpIsNetworked, 0);
	}

EXPORT_C TInt RGsdpSession::CountGdpProtocols() const
	{
	return SendReceive(EGsdpReqCountProtocols, 0);
	}

EXPORT_C TInt RGsdpSession::GetGdpProtocolInfo(TInt aProto, TGdpProtocolInfo& aInfo) const
	{
	TPckg<TGdpProtocolInfo> buf(aInfo);
	TInt p[KMaxMessageArguments];
	p[0] = aProto;
	p[1] = reinterpret_cast<TInt>(&buf);
	return SendReceive(EGsdpReqProtocolInfo, p);
	}

// set and get my port

EXPORT_C void RGsdpSession::SetMyPort(TUint32 aPort)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) aPort;
	SendReceive(EGsdpReqSetMyPort, p);
	}

EXPORT_C TUint32 RGsdpSession::GetMyPort() const
	{
	return SendReceive(EGsdpReqGetMyPort, 0);
	}

EXPORT_C TUint32 RGsdpSession::AllocMyNextPort()
	{
	return SendReceive(EGsdpReqAllocMyNextPort, 0);
	}

// set and get other address and port

EXPORT_C void RGsdpSession::SetOtherAddress(const TDesC8& aAddress)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) &aAddress;
	SendReceive(EGsdpReqSetOtherAddress, p);
	}

EXPORT_C void RGsdpSession::GetOtherAddress(TDes8& aAddress) const
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) &aAddress;
	SendReceive(EGsdpReqGetOtherAddress, p);
	}

EXPORT_C void RGsdpSession::SetOtherPort(TUint32 aPort)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) aPort;
	SendReceive(EGsdpReqSetOtherPort, p);
	}

EXPORT_C TUint32 RGsdpSession::GetOtherPort() const
	{
	return SendReceive(EGsdpReqGetOtherPort, 0);
	}

// main protocol functions

EXPORT_C void RGsdpSession::Listen()
	{
	// kick off receive handler active object to start listening and start a receive
	if (!iHandler->IsActive())
		{
		iHandler->Receive();
		}
	}

EXPORT_C void RGsdpSession::StopListening()
	{
	// tell receive handler to cancel receive and stop listening
	iHandler->Cancel();
	}

EXPORT_C void RGsdpSession::Send(const TDesC8& aData)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) &aData;
	SendReceive(EGsdpReqSend, p);
	}

// initiate receive-all for "pull" protocols

EXPORT_C void RGsdpSession::ReceiveAll() const
	{
	SendReceive(EGsdpReqReceiveAll, 0);
	}

// private functions in conjunction with CGsdpReceiveHandler

void RGsdpSession::Receive(TDes8& aBuffer, TRequestStatus& aStatus)
	{
	TInt p[KMaxMessageArguments];
	p[0]=(TInt) &aBuffer;
	SendReceive(EGsdpReqReceive, p, aStatus);
	}

void RGsdpSession::CancelReceive()
	{
	SendReceive(EGsdpReqCancelReceive, 0);
	}

/*
	CGsdpReceiveHandler
*/

// construct/destruct

CGsdpReceiveHandler::CGsdpReceiveHandler(MGsdpPacketHandler& aHandler, RGsdpSession& aSession)
	: CActive(0), iSession(aSession), iHandler(aHandler)
	{
	}

CGsdpReceiveHandler::~CGsdpReceiveHandler()
	{
	Cancel();
	}

// operation

void CGsdpReceiveHandler::Receive()
	{
	iSession.Receive(iBuffer, iStatus);
	SetActive();
	}

// from CActive

void CGsdpReceiveHandler::RunL()
	{
	iHandler.GsdpHandleL(iBuffer);
	// initiate next receive
	Receive();
	}

void CGsdpReceiveHandler::DoCancel()
	{
	iSession.CancelReceive();
	}

/*
	DLL harness
*/

EXPORT_C TInt E32Dll(TDllReason)
	{
	return 0;
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色2019综合网| 久久99精品国产麻豆婷婷| 久久久99免费| 精品美女一区二区| 日韩情涩欧美日韩视频| 日韩一区二区免费在线电影| 日韩亚洲欧美综合| 日韩欧美中文一区| 久久综合久久综合亚洲| 久久亚洲综合色一区二区三区| 久久免费国产精品| 中文字幕av一区二区三区免费看 | 亚洲免费三区一区二区| 亚洲天天做日日做天天谢日日欢| 国产日韩影视精品| 亚洲欧美日本韩国| 亚洲成人动漫在线免费观看| 日韩专区一卡二卡| 国产精品一区二区不卡| 91在线码无精品| 欧美综合在线视频| 精品国产免费一区二区三区香蕉| 久久久久99精品一区| 国产精品国产a| 五月综合激情日本mⅴ| 久久99精品国产.久久久久| 国产成人精品综合在线观看 | 91蜜桃视频在线| 3atv在线一区二区三区| 久久只精品国产| 一区二区在线看| 久久国产精品免费| 色悠悠久久综合| xnxx国产精品| 亚洲成年人影院| 国产精品乡下勾搭老头1| 欧美亚洲另类激情小说| 久久久久九九视频| 亚洲已满18点击进入久久| 国产一区二区三区在线观看精品 | 欧美私人免费视频| 久久精品视频网| 日韩激情视频在线观看| 波多野结衣中文一区| 欧美一区二区在线免费观看| 国产精品嫩草久久久久| 久久精品免费观看| 一本色道**综合亚洲精品蜜桃冫| 精品国产乱码久久久久久蜜臀 | 国产精品理伦片| 蜜臀av一区二区| 欧美在线免费视屏| 欧美激情一区二区三区不卡| 免费视频一区二区| 欧美日韩一区二区三区在线看 | 欧美一区二区久久| 一区二区三区欧美日| 国产乱人伦偷精品视频不卡 | 国产午夜精品久久久久久免费视| 亚洲成人av免费| 91国偷自产一区二区使用方法| 精品国产凹凸成av人导航| 首页国产欧美日韩丝袜| 欧美又粗又大又爽| 亚洲视频一区在线| 不卡一区在线观看| 国产欧美一区二区精品仙草咪| 日本特黄久久久高潮| 欧美日韩国产影片| 亚洲精品成a人| 一本大道久久a久久综合婷婷| 国产欧美日韩激情| 国产精品一区二区91| 精品国产乱码久久久久久久| 九色|91porny| 亚洲精品一线二线三线| 国产一区二区三区观看| 精品欧美乱码久久久久久1区2区| 日本视频一区二区| 精品国产91久久久久久久妲己| 免费精品视频在线| 日韩精品一区二区三区swag| 久久精品国产在热久久| 久久久亚洲综合| 不卡在线观看av| 亚洲精品国产成人久久av盗摄| 日本高清不卡aⅴ免费网站| 亚洲精品国产一区二区精华液 | 国产精品免费观看视频| 成人激情动漫在线观看| 樱花影视一区二区| 555夜色666亚洲国产免| 久久成人综合网| 久久免费美女视频| 97久久精品人人做人人爽50路| 亚洲毛片av在线| 51久久夜色精品国产麻豆| 激情深爱一区二区| 中文字幕日韩av资源站| 欧美中文字幕一区| 精品一区二区三区免费视频| 国产精品免费网站在线观看| 欧美在线免费观看视频| 狠狠色丁香婷婷综合久久片| 国产欧美一区视频| 欧美日韩aaa| 国产精品夜夜爽| 亚洲精品大片www| 精品毛片乱码1区2区3区| 成年人国产精品| 日韩二区在线观看| 中文字幕亚洲在| 日韩一区二区三区电影| 97se狠狠狠综合亚洲狠狠| 日韩有码一区二区三区| 久久亚洲欧美国产精品乐播| 色偷偷一区二区三区| 国产久卡久卡久卡久卡视频精品| 一区二区三区日韩精品| 国产日产欧产精品推荐色 | 成人黄色777网| 国内一区二区视频| 亚洲色图制服诱惑| 久久久久88色偷偷免费| 制服丝袜av成人在线看| 99精品1区2区| 国产伦精品一区二区三区在线观看| 成人免费在线视频| 日韩女优av电影| 欧美三级中文字| jlzzjlzz欧美大全| 国产又黄又大久久| 日韩电影在线免费看| 亚洲国产精品综合小说图片区| 国产偷国产偷精品高清尤物| 日韩欧美国产一区二区在线播放 | 中文字幕在线观看不卡视频| 日韩欧美一区二区视频| 欧美猛男gaygay网站| 色综合久久99| 成av人片一区二区| 成人免费视频一区| 国产综合久久久久久久久久久久| 美女一区二区视频| 老司机精品视频在线| 五月婷婷久久丁香| 亚洲电影在线播放| 夜夜爽夜夜爽精品视频| 自拍偷拍国产亚洲| 国产精品看片你懂得| 国产精品久久久久久久久免费丝袜 | 中文字幕一区二区三区在线不卡| 久久综合999| 国产亚洲短视频| 国产亚洲综合性久久久影院| 日韩一区二区电影在线| 91 com成人网| 日韩免费视频一区二区| 日韩小视频在线观看专区| 51精品秘密在线观看| 日韩视频在线永久播放| 精品久久国产老人久久综合| 精品少妇一区二区| 欧美精品一区二区三区在线播放| 久久综合久久综合亚洲| 中文字幕av免费专区久久| 中文字幕在线不卡| 一区二区三区在线免费视频| 亚洲综合激情另类小说区| 水蜜桃久久夜色精品一区的特点| 青青草97国产精品免费观看| 国内成+人亚洲+欧美+综合在线 | 国产精品美女久久久久久久久久久 | 国产99久久精品| 91麻豆高清视频| 欧美久久高跟鞋激| 久久精品夜色噜噜亚洲aⅴ| 国产无遮挡一区二区三区毛片日本| 中文字幕制服丝袜一区二区三区 | 91精品国产综合久久精品app | 91免费国产在线观看| 欧美日韩高清一区二区| 欧美zozozo| 亚洲色图在线视频| 卡一卡二国产精品| 91网页版在线| 精品伦理精品一区| 亚洲人成电影网站色mp4| 美女一区二区三区在线观看| 风间由美一区二区三区在线观看| 99久久国产综合精品女不卡| 欧美一区二区高清| 亚洲欧美在线另类| 蜜臀va亚洲va欧美va天堂| 91在线云播放| 2023国产精品自拍| 亚洲成av人片一区二区| 成人sese在线| 日韩一区二区免费电影| 一区二区三区免费在线观看|