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

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

?? httpengine.h

?? symbian http/post引擎 xml引擎 支持IAP設(shè)置
?? H
字號:
/*
* ============================================================================
*  Name     : CHttpEngine from HttpEngine.h
*  Part of  : 
*  Created  : 08/1/2008 by Forum Nokia
*  Version  : 1.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

#ifndef __HTTPENGINE_H
#define __HTTPENGINE_H

// INCLUDE FILES
#include <http\mhttptransactioncallback.h>	//MHTTPTransactionCallback
#include <http\rhttpsession.h>				//RHTTPSession
#include <http\RHTTPTransaction.h>			//RHTTPTransaction
#include <http\rhttpheaders.h>				//RHTTPHeaders
#include <cdblen.h>							//KCommsDbSvrMaxFieldLength
#include <Es_sock.h>
#include <charconv.h>

#include "HttpConstants.h"

// FORWARD DECLARATIONS
class CHttpConnectionOpener;

class CHttpDataSupplier;

// CLASS DECLARATION

/**
* A mixin class for notifying about GPRS connection.
*/
class MConnectionObserver
	{
public:

	/**
	* Called when opening a GPRS connection has finished
	*/
	virtual void ConnectionCreated(const TInt& aError) = 0;
	};
	
	
// CLASS DECLARATION

/**
* A mixin class for notifying about HTTP transactions.
*/
class MTransactionObserver
	{
public:

	/**
	* Called when a GPRS connection is being opened.
	*/
	virtual void OpeningConnectionL() = 0;
	
	/**
	* Called when an HTTP transaction has successfully finished.
	* @param aResponse contains the response received from the server.
	*/
	virtual void SuccessL(const CResponse& aResponse) = 0;
	
	/**
	* Called when an HTTP transaction failed.
	* @param aError the error code.
	*/
	virtual void FailedL(const TInt& aError) = 0;
	
	/**
	* Called when an HTTP transaction is initiated.
	* @param aLoadingTasks ETrue if downloading tasks, EFalse if completing a task.
	*/
	virtual void ConnectingToServerL(const TBool& aLoadingTasks) = 0;
	
	/**
	* Called when user cancelled the HTTP transaction.
	*/
	virtual void CancelledL() = 0;
	
	/**
	* Called when user tries to initialise an HTTP transaction, but 
	* settings are faulty.
	* @param aErrorMsg error message.
	*/
	virtual void ErrorL(const TDesC& aErrorMsg) = 0;
	
	};


// CLASS DECLARATION

/**
* A class holding IAP data.
*/
class TIap
	{
public:
	TUint32 iId;
	TBuf<KCommsDbSvrMaxFieldLength> iName;
	};
	

// CLASS DECLARATION

/**
* An engine class.
* Used for posting requres to the server.
*/
class CHttpEngine :	public CBase,
							public MHTTPTransactionCallback,
							public MConnectionObserver
	{
public: // Constructors and destructor

	/**
	* Two-phased constructor.
	*/
	static CHttpEngine* NewL(MTransactionObserver& aObserver);

	/**
	* Destructor
	*/
	~CHttpEngine();
	
public: // New functions
	
	/**
	* Sets the connections settings.
	* @param aServerName name of the server.
	* @param aPhp if ETrue the server end is implemented with PHP, otherwise with JSP.
	* @param aUsername username.
	* @param aPassword password.
	*/
	void SetConnectionSettingsL(const TDesC& aServerName, 
								const TBool& aPhp,
								const TDesC& aUsername, 
								const TDesC& aPassword,
								const TUint32& aId);
								
	/**
	* With this function you can select which IAP is used for HTTP connection.
	* @param aId id of the IAP to be used.
	*/
	void SetIap(const TUint32& aId);
	
	/**
	* Will post an XML  to the server. As a result, we will get all tasks 
	* of the user.
	*/
	void PostRequestL(const TBool& aLoadingTask,const TDesC8& aBody);
	
	/**
	* Will post an HTML form to the server that is used for completing a wanted task.
	* @param aTaskId the id of the task that is to be completed.
	*/
	void MarkTaskDoneL(const TInt& aTaskId);
	
	/**
	* This method is used for cancelling an HTTP transaction or GPRS connection establishment.
	*/
	void CancelTransaction();
	
	/**
	* Returns whether IAP has been set or not.
	* @return ETrue if IAP is set, EFalse if not.
	*/
	TBool IapSet() const;
	
	/**
	* Returns all found IAPs.
	* @return reference to an array of IAPs.
	*/
	RArray<TIap>& Iaps();

	/**
	* Checks if a postponed fetch request had been made during a transaction. If so,
 	* starts the fetching process.
	*/
	void CheckRefreshL();
	
	/**
	* This function sets the automatic task loading on or off. If this functionality 
	* is set on, tasks are loaded automatically when an update SMS message is received.
	* @param aOn ETrue if tasks are loaded automatically, EFalse if not.
	*/
	void SetAutomaticUpdateL(const TBool& aOn);
	
	void ConvGbk2Uni(TDesC8& original, TDes& res,TUint characterSetIdentifier=KCharacterSetIdentifierGbk); 
	
	void ConvUni2Gbk(TDesC& original, TDes8& res,TUint characterSetIdentifier=KCharacterSetIdentifierGbk);
		
private: // Functions from base classes

	/**
	* From MHTTPTransactionCallback
	*/
	void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent);

	/**
	* From MHTTPTransactionCallback
	*/
	TInt MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent& aEvent);
	
	/**
	* FROM MConnectionObserver
	*/
	void ConnectionCreated(const TInt& aError);
		
private: // New functions

	/**
	* Creates a HTML form which can be post to the server for completing a task.
	* @param aTaskId id of the task that is to be completed.
	*/
	void CreateMarkTaskDoneFormL(const TInt& aTaskId);
	
	/**
	* Resets the previously received data (that is set by WriteDataL()).
	*/
	void ResetData();
	
	/**
	* Set a field-value pair for the given HTTP header.
	* @param aHeaders header where field-value pair is written.
	* @param aHdrField field that is written to the header.
	* @param aHdrValue value that is assigned for the field.
	*/
	void SetHeaderL(RHTTPHeaders aHeaders, 
			 		TInt aHdrField, 
			 		const TDesC8& aHdrValue);
	
	/**
	* Set a field-value pair for the given HTTP header.
	* @param aHeaders header where field-value pair is written.
	* @param aHdrField field that is written to the header.
	* @param aHdrValue value that is assigned for the field.
	*/
	void SetHeaderExL(RHTTPHeaders aHeaders,
					const TDesC8 &aHeaderField, 
					const TDesC8 &aHeaderValue);

	/**
	* Loads all IAPs of a device into an array.
	*/		 		
	void LoadIapsL();
	
	/**
	* Opens up a (GPRS) connection if one does not yet exist.
	*/
	void ConnectL();
	
	/**
	* Checks that server name and an IAP is set. Reports about "errors" with 
	* MTransactionObserver::ErrorL();
	* @return ETrue if errors existed, EFalse if not.
	*/
	TBool CheckAndReportErrorsL();
	
	/**
	* Posts data to the server.
	*/
	void DoPostL();

private:

	/**
	* Symbian OS default constructor
	*/
	CHttpEngine(MTransactionObserver& aObserver);
	void ConstructL();
	
private: // Data members

	RConnection						iConnection;
	RSocketServ						iSockServ;
	RHTTPSession					iHttpSession;
	RHTTPTransaction				iTransaction;
   
	MTransactionObserver&			iTransactionObserver;
	CHttpConnectionOpener*			iConnOpener;
	HBufC8*							iReceivedData;
	TBuf8<KMaxUsernameLength>		iUsername;
	TBuf8<KMaxPasswordLength>		iPassword;
	TBuf8<KMaxServerNameLength>		iServer;
	TBool							iRunning;
	TBool							iLoadingTask;
	TBool							iDoRefresh;//受到短信,更新任務(wù)標(biāo)志
	TBool							iOpeningConnection;
	TBool							iPhp;
	RArray<TIap>					iIAPs;
	TUint32							iIap;
	TBool							iAutomaticUpdate;
	TBuf8<KMaxServerNameLength+40>	iUrl;
	CHttpDataSupplier*				iDataSupplier;
	};

#endif

// End of file




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆中文一区二区| 国产精品久久久久天堂| 日韩av高清在线观看| 91精品国产乱| 久久aⅴ国产欧美74aaa| 久久精品一二三| 成人高清视频在线观看| 亚洲九九爱视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩国产一级片| 日本v片在线高清不卡在线观看| 欧美艳星brazzers| 蜜桃av一区二区在线观看| 久久久另类综合| aa级大片欧美| 琪琪久久久久日韩精品| 欧美国产欧美综合| 欧美三级视频在线观看| 国产一区二区三区黄视频| 亚洲免费高清视频在线| 日韩一区二区在线免费观看| 国产精品影视天天线| 亚洲精品第一国产综合野| 日韩一本二本av| 99视频在线观看一区三区| 天天做天天摸天天爽国产一区| 久久免费的精品国产v∧| 欧美午夜精品久久久| 狠狠色综合播放一区二区| 亚洲三级免费观看| 欧美一区二区美女| 91视频在线观看| 国产一区二区三区蝌蚪| 亚洲成人福利片| 国产精品入口麻豆九色| 91精品国产综合久久婷婷香蕉 | 欧美一区二区在线播放| 福利视频网站一区二区三区| 性做久久久久久免费观看| 国产精品少妇自拍| 欧美成人一区二区| 在线免费观看成人短视频| 国产麻豆精品视频| 日本不卡视频在线观看| 亚洲精品乱码久久久久久日本蜜臀| 精品成a人在线观看| 欧美日韩中文另类| 国产欧美一区二区精品性色 | 欧美丝袜第三区| 激情久久久久久久久久久久久久久久| 亚洲精品日日夜夜| 国产欧美视频一区二区| 欧美一级专区免费大片| 欧美三电影在线| 91免费看`日韩一区二区| 另类中文字幕网| 日韩国产精品久久久| 亚洲自拍欧美精品| 亚洲免费av高清| 中文字幕一区日韩精品欧美| 久久一夜天堂av一区二区三区| 正在播放亚洲一区| 欧美日韩精品电影| 欧美午夜精品免费| 欧美三级午夜理伦三级中视频| 色素色在线综合| 91免费视频观看| 一本久久a久久精品亚洲| 91片黄在线观看| 99re成人在线| 91视频精品在这里| 91免费小视频| 日本精品一区二区三区四区的功能| 91在线丨porny丨国产| 成人h精品动漫一区二区三区| 91亚洲大成网污www| 精品国产一区二区三区久久影院 | 不卡欧美aaaaa| 国产成人精品免费在线| 国产精品亚洲第一| 国产精品一二三区在线| 国产成人欧美日韩在线电影| 国产成人av自拍| 成人美女视频在线看| www.亚洲色图.com| 91视频你懂的| 欧美日韩一级视频| 欧美成人精品二区三区99精品| 日韩精品一区二区三区在线| 2021国产精品久久精品| 国产精品另类一区| 玉米视频成人免费看| 日韩国产精品91| 国产二区国产一区在线观看| 91无套直看片红桃| 欧美日韩视频在线观看一区二区三区| 欧美一区2区视频在线观看| 26uuu精品一区二区三区四区在线| 国产色婷婷亚洲99精品小说| 国产精品国产三级国产aⅴ无密码| 亚洲综合免费观看高清在线观看| 日韩专区一卡二卡| 国产一区视频网站| av不卡一区二区三区| 欧美精品一二三四| 久久九九久久九九| 樱桃国产成人精品视频| 免费观看91视频大全| 成人激情黄色小说| 欧美综合在线视频| 精品久久人人做人人爽| 亚洲欧美区自拍先锋| 免费在线视频一区| av不卡一区二区三区| 日韩一区二区在线看片| 亚洲视频狠狠干| 奇米精品一区二区三区在线观看| 不卡的av电影在线观看| 91精选在线观看| 亚洲女性喷水在线观看一区| 蜜臀av一区二区在线观看| 成人免费看视频| 日韩午夜精品视频| 亚洲激情图片一区| 国产a区久久久| 91精品国产综合久久精品麻豆| 中文幕一区二区三区久久蜜桃| 丝袜美腿亚洲综合| 91丨porny丨国产| 国产亚洲一区字幕| 奇米色一区二区三区四区| www.亚洲色图| 国产午夜精品久久| 久久精品99国产精品| 欧美视频在线观看一区| 国产精品污网站| 毛片一区二区三区| 欧美高清你懂得| 亚洲老司机在线| 不卡一区在线观看| 久久久久成人黄色影片| 日本最新不卡在线| 欧美日韩高清影院| 亚洲乱码国产乱码精品精小说 | 99re这里都是精品| 久久久久久久久久久久久夜| 奇米影视7777精品一区二区| 欧美三级电影网| 亚洲亚洲精品在线观看| 99久精品国产| 国产精品国产成人国产三级| 国产精品伊人色| 久久九九久久九九| 国产精品一级片在线观看| 欧美mv日韩mv国产| 老司机一区二区| 日韩一区二区不卡| 日韩福利电影在线| 91精品国产黑色紧身裤美女| 午夜精品久久久久久久蜜桃app| 一本大道av一区二区在线播放| 国产精品久久久久久福利一牛影视| 韩国欧美国产一区| 久久久久久久av麻豆果冻| 久久99蜜桃精品| 久久久久国色av免费看影院| 精品一区二区三区影院在线午夜 | 91浏览器入口在线观看| 亚洲欧洲精品一区二区三区| av一二三不卡影片| 中文字幕一区在线观看| 91香蕉视频在线| 亚洲国产日产av| 6080国产精品一区二区| 美女视频一区在线观看| www国产精品av| 成人黄色网址在线观看| 一区视频在线播放| 日本精品免费观看高清观看| 亚洲123区在线观看| 欧美一区二区成人| 成人亚洲一区二区一| 亚洲日本一区二区| 欧美日韩亚洲国产综合| 青青草国产成人99久久| 久久综合色婷婷| 9l国产精品久久久久麻豆| 一区二区三区中文在线观看| 欧美精品在线观看一区二区| 激情综合亚洲精品| 国产精品传媒视频| 在线播放中文字幕一区| 韩国在线一区二区| 亚洲日本在线a| 777a∨成人精品桃花网| 国产成人在线色| 亚洲综合久久av| 精品国产一区二区三区忘忧草| 99久久99久久免费精品蜜臀| 日韩激情视频网站|