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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gsdpserver.h

?? 《SymbianOSC手機(jī)應(yīng)用開發(fā)》源碼
?? H
字號:
// gsdpserver.h
//
// Definitions for the server classes
//
// Copyright (c) 2002 Symbian Ltd.  All rights reserved.
//

#ifndef __GSDPSERVER_H
#define __GSDPSERVER_H

#include <gsdp.h>
#include "gsdpdef.h"
#include <gdp.h>
#include "gsdpqueue.h"
#include <ecom/ImplementationInformation.h>
#include <ecom/ecom.h>
#include <f32file.h>

class CGsdpServer;
class CGsdpScheduler;
class TGsdpPacket;
class CGsdpReceiveQueue;
class CGsdpSession;
class CGsdpGdpAdapter;
class CGsdpDelayedShutdown;
class CGsdpProtocolUpdater;
class CGsdpPortAllocator;


class CGsdpServer : public CServer
	{
public:
	// construct
	CGsdpServer();
	void ConstructL();
	~CGsdpServer();
	// from CServer
	CSharableSession* NewSessionL(const TVersion& aVersion) const;
	// session counting
	void IncrementSessions();
	void DecrementSessions();
	// receive queue support
	CGsdpSession* SessionForPacket(const TGsdpPacket& aPacket);
	// port allocation
	TUint32 MyNextPort();
	// Protocol loading
	TInt CountProtocols();
	void GetProtocolInfoL(TInt aProto, TGdpProtocolInfo& aInfo);
	CGsdpGdpAdapter* GetProtocolL(TUid aUid);
	void UpdateProtocolInfo();
	// utility
	void PanicClient(TInt aPanic) const;
public:
	CGsdpReceiveQueue* iReceiveQueue;
private:
	TInt RunError(TInt aErr);
	void InitProtocolsL();
private:
	TInt iSessionCount;
	CGsdpDelayedShutdown* iShutdown;
	CGsdpProtocolUpdater* iProtoUpdater;
	CGsdpPortAllocator* iPortAllocator;
	RImplInfoPtrArray iProtocolInfo;
	RPointerArray<CGsdpGdpAdapter> iAdapters;
	};

class CGsdpScheduler : public CActiveScheduler
	{
public:
	class TServerStart
		{
	public:
		TServerStart(TRequestStatus& aStatus);
		TPtrC AsCommand() const;
		inline TServerStart() {};
		TInt GetCommand();
		void SignalL();
	private:
		TThreadId iId;
		TRequestStatus* iStatus;
		};
	// launch
	
	static TInt LaunchFromClient();
#ifdef __WINS__
	static TInt ThreadFunction(TAny* aThreadParms);
#endif
	IMPORT_C static TInt ThreadStart(TServerStart& aSignal);
	static void ConstructL(TServerStart& aStart);
	~CGsdpScheduler();
	void Error(TInt aError) const; // from CActiveScheduler
private:
	CGsdpServer* iServer;
	};

inline CGsdpScheduler::TServerStart::TServerStart(TRequestStatus& aStatus)
	:iId(RThread().Id()),iStatus(&aStatus)
	{aStatus=KRequestPending;}
inline TPtrC CGsdpScheduler::TServerStart::AsCommand() const
	{return TPtrC(reinterpret_cast<const TText*>(this),sizeof(TServerStart)/sizeof(TText));}

class CGsdpProtocolUpdater : public CActive
	{
public:
	static CGsdpProtocolUpdater* NewL(CGsdpServer& aServer);
	~CGsdpProtocolUpdater();
	void Start();
private:
	CGsdpProtocolUpdater(CGsdpServer& aServer);
	void ConstructL();
	void RunL();
	void DoCancel();
private:
	CGsdpServer& iServer;
	REComSession iEcomSession;
	};
	

class CGsdpDelayedShutdown : public CActive
	{
public:
	CGsdpDelayedShutdown();
	void ConstructL();
	~CGsdpDelayedShutdown();
	void Start();
private:
	void DoCancel();
	void RunL();
private:
	RTimer iTimer;
	};

class CGsdpReceiveQueue : public CGsdpQueueBase
	{
public:
	enum TReceiveCheck { EAllowZero, EDontAllowZero };
public:
	// construct
	static CGsdpReceiveQueue* NewL(CGsdpServer& aServer);
	// functions
	void Receive(TUint32 aGameProtocol, TUint32 aToPort, const TDesC8& aFromAddress, TUint32 aFromPort, const TDesC8& aData);
	void CheckPackets(CGsdpSession* aSession);
private:
	CGsdpReceiveQueue(CGsdpServer& aServer);
private:
	CGsdpServer& iServer;
	};

class CGsdpTransmitQueue : public CGsdpQueueBase
	{
public:
	static CGsdpTransmitQueue* NewL(CGsdpGdpAdapter& aAdapter);
	void Transmit(TUint32 aGameProtocol, TUint32 aToPort, const TDesC8& aFromAddress, TUint32 aFromPort, const TDesC8& aData);
	void TryToSend();
private:
	CGsdpTransmitQueue(CGsdpGdpAdapter& aAdapter);
private:
	CGsdpGdpAdapter& iAdapter;
	};

class CGsdpPortAllocator : public CBase
	{
public:
	// construct/destruct
	void ConstructL();
	~CGsdpPortAllocator();
	// utility
	TUint32 NextPortId();
private:
	TUint32 iNextPortId;
	RFs iFs;
	};


class CGsdpSession : public CSharableSession
	{
public:
	// construct/destruct
	CGsdpSession();
	void ConstructL(CGsdpServer& aServer);
	~CGsdpSession();
	// service dispatcher - from CSession
	void ServiceL(const RMessage& aMessage);
	// client service functions
	void GetProtocolInfoL(TInt aProto, const TAny* aDes);
	void SetGameProtocol(TUint32 aProtocol);
	TUint32 GetGameProtocol();
	void SetGdpProtocolL(TUid aProtocol);
	TUid GetGdpProtocol();
	TBool GdpIsNetworked();
	void SetMyPort(TUint32 aPort);
	TUint32 GetMyPort();
	TUint32 AllocMyNextPort();
	void SetOtherAddress(const TAny* aAddress);
	void GetOtherAddress(const TAny* aAddress);
	void SetOtherPort(TUint32 aPort);
	TUint32 GetOtherPort();
	TInt Send(const TAny* aData);
	void ReceiveAll();
	void Receive(const TAny* aBuffer);
	void CancelReceive();
	// receive queue support
	TBool CanReceivePacket(const TGsdpPacket& aPacket) const;
	void ReceivePacket(TGsdpPacket& aPacket);
private:
	CGsdpServer* Server() const;
	// game protocol
	TUint32 iGameProtocol;
	// addresses
	TUint32 iMyPort;
	TBuf8<KMaxGsdpAddress> iOtherAddress;
	TUint32 iOtherPort;
	// protocol adapter
	CGsdpGdpAdapter* iGdpProtocol;
	// receive support
	TBool iReceiveActive;
	RMessage iReceiveMessage;
	const TAny* iReceiveBuffer;
	};


class CGsdpGdpAdapter : public CBase, public MGdpPacketHandler
	{
public:
	// construct/destruct
	static CGsdpGdpAdapter* NewL(CGsdpServer& aServer);
	~CGsdpGdpAdapter();
	void SetProtocolL(CGdpSession* aGdpSession);
	// interrogate
	TBool IsNetworked();
	TUid ProtocolUid() const;
	// protocol adapters
	void SendL(TUint32 aGameProtocol,
			   TUint32 aFromPort,
			   const TDesC8& aToAddress, TUint32 aToPort,
			   const TDesC8& aData);
	void ReceiveAll();
	// from MGdpPacketHandler
	void GdpHandleL(const TDesC8& aFromAddress, const TDesC8& aData);
	void SendComplete(TInt aErr);

	// interface for Q
	TBool CanSendPacket(TGsdpPacket& aPacket);
	void SendPacket(TGsdpPacket& aPacket);
private:
	CGsdpGdpAdapter(CGsdpServer& aServer);
	void ConstructL();
private:
	// pointers elsewhere
	CGsdpServer& iServer;
	CGdpSession* iGdpSession;  // Owns this
	CGsdpTransmitQueue* iTransmitQueue;
	// buffers
	TBuf8<KMaxGsdpGdpData> iSendBuffer; // complete TGsdpPacket
	// Send state
	TBool iSendActive;
	TInt  iLastError;
	};

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区日韩二区| 日韩视频免费直播| 日韩理论片一区二区| av成人动漫在线观看| 国产精品国产自产拍高清av王其 | 亚洲一线二线三线视频| 一本一道久久a久久精品综合蜜臀| 亚洲精品高清在线观看| 欧美日韩电影在线播放| 免费一级欧美片在线观看| 久久综合资源网| www.日韩在线| 一区二区三区在线播| 日韩欧美国产精品一区| 国产91对白在线观看九色| 亚洲日本青草视频在线怡红院| 欧美日韩三级视频| 精品一区二区三区免费播放| 国产色产综合色产在线视频| 欧美亚洲综合久久| 老司机午夜精品| 国产精品久久久久毛片软件| 欧美日韩精品欧美日韩精品一 | 亚洲图片你懂的| 51久久夜色精品国产麻豆| 国内精品伊人久久久久av影院| 国产精品家庭影院| 3751色影院一区二区三区| 懂色一区二区三区免费观看| 偷偷要91色婷婷| 亚洲国产成人一区二区三区| 欧美色视频在线| 国产激情视频一区二区三区欧美| 亚洲美女视频在线| 欧美xxx久久| 91久久免费观看| 国产在线国偷精品免费看| 亚洲男人天堂一区| 精品国产在天天线2019| 欧美怡红院视频| 成人一道本在线| 久久精品国产99国产精品| 亚洲精品免费在线| 2欧美一区二区三区在线观看视频| 色婷婷亚洲婷婷| 成人中文字幕合集| 麻豆一区二区三| 一二三区精品视频| 国产精品福利一区| 日韩你懂的在线播放| 欧美色偷偷大香| 99精品久久99久久久久| 国产一区二区剧情av在线| 亚洲第一成人在线| 一区二区三区精密机械公司| 国产精品欧美一区喷水| 精品国产一区二区三区久久久蜜月| 欧美网站一区二区| 一本大道久久a久久精品综合| 国产成人av福利| 国模冰冰炮一区二区| 日韩专区中文字幕一区二区| 亚洲欧美成aⅴ人在线观看 | 日韩三级电影网址| 欧美喷水一区二区| 在线观看亚洲精品视频| 成人av在线资源| 国产精品系列在线播放| 国产又黄又大久久| 狠狠久久亚洲欧美| 久久激五月天综合精品| 日本在线不卡视频| 日韩和的一区二区| 日一区二区三区| 三级亚洲高清视频| 奇米精品一区二区三区四区| 日韩精品电影在线| 日本va欧美va瓶| 蜜臀av亚洲一区中文字幕| 偷拍亚洲欧洲综合| 天堂成人国产精品一区| 婷婷久久综合九色综合伊人色| 夜夜嗨av一区二区三区网页| 夜夜嗨av一区二区三区四季av| 一区二区久久久久久| 亚洲国产日韩一级| 日本人妖一区二区| 日本少妇一区二区| 国产综合久久久久影院| 激情文学综合插| 国产91精品免费| aaa欧美日韩| 欧美午夜不卡在线观看免费| 777久久久精品| 久久综合五月天婷婷伊人| 国产三级欧美三级日产三级99| 国产精品区一区二区三区| 一片黄亚洲嫩模| 午夜精品福利一区二区三区av| 日韩av网站在线观看| 毛片不卡一区二区| 丰满少妇在线播放bd日韩电影| 91在线视频播放地址| 欧美色爱综合网| 日韩美女视频一区二区在线观看| 国产亚洲欧美日韩俺去了| 亚洲免费观看高清| 日本欧美一区二区| 国产精品综合在线视频| 91久久精品网| 久久午夜电影网| 亚洲美腿欧美偷拍| 9i在线看片成人免费| 欧美日韩国产首页在线观看| 久久一夜天堂av一区二区三区| 中文字幕日韩精品一区| 日本一区中文字幕| 不卡电影免费在线播放一区| 制服.丝袜.亚洲.另类.中文 | 欧美日本不卡视频| xfplay精品久久| 亚洲一区精品在线| 国产99一区视频免费| 欧美美女视频在线观看| 久久免费偷拍视频| 亚洲观看高清完整版在线观看 | 国产精品高潮呻吟久久| 日韩高清不卡一区二区| 成年人网站91| 精品久久久久av影院| 亚洲综合激情另类小说区| 国产乱码字幕精品高清av| 欧美色图第一页| 自拍视频在线观看一区二区| 麻豆国产一区二区| 欧美四级电影网| 亚洲欧洲日韩一区二区三区| 国产盗摄精品一区二区三区在线| 3d动漫精品啪啪1区2区免费| 一区二区三区中文字幕在线观看| 国产一区免费电影| 日韩亚洲欧美综合| 亚洲国产乱码最新视频 | 久久精品欧美一区二区三区麻豆| 午夜精品久久一牛影视| 色八戒一区二区三区| 国产精品剧情在线亚洲| 国产精品91一区二区| 日韩欧美高清dvd碟片| 无码av中文一区二区三区桃花岛| 色视频成人在线观看免| 欧美激情一区在线| 国产成都精品91一区二区三| 26uuuu精品一区二区| 久久精品国产在热久久| 欧美二区在线观看| 一区二区在线观看免费| 91丨porny丨国产| 国产精品久久久久影院亚瑟| 丰满少妇久久久久久久| 中文字幕免费不卡在线| 成人性视频免费网站| 国产调教视频一区| 国产精品一区二区在线观看网站| 日韩美女主播在线视频一区二区三区| 视频一区在线播放| 欧美精品在线视频| 青青草97国产精品免费观看无弹窗版| 欧洲精品在线观看| 亚洲成人午夜电影| 69堂成人精品免费视频| 免费观看久久久4p| 日韩午夜在线播放| 韩国av一区二区三区| 久久在线观看免费| 国产酒店精品激情| 国产精品高潮呻吟久久| 色综合天天综合在线视频| 亚洲综合男人的天堂| 欧美视频在线观看一区二区| 婷婷丁香激情综合| 日韩视频在线观看一区二区| 国产一区二区三区四区五区美女| 欧美国产日韩精品免费观看| 99re免费视频精品全部| 亚洲综合视频网| 欧美成人福利视频| www.综合网.com| 一区二区日韩av| 欧美不卡在线视频| 国产91精品露脸国语对白| 伊人色综合久久天天人手人婷| 欧美人体做爰大胆视频| 国产做a爰片久久毛片| 最好看的中文字幕久久| 欧美性生活大片视频| 蜜桃久久久久久久| 国产精品久久久久久久久久免费看 | 中日韩av电影| 欧美日韩成人综合天天影院 |