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

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

?? taskmanagerengine.cpp

?? c++下s60終端對(duì)終端傳輸協(xié)議
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
* ============================================================================
*  Name     : CTaskManagerEngine from TaskManagerEngine.cpp
*  Part of  : TaskManager
*  Created  : 03/13/2005 by Forum Nokia
*  Version  : 1.2
*  Copyright: Nokia Corporation
* ============================================================================
*/

// INCLUDE FILES
#include <HttpStringConstants.h>// HTTP
#include <msvids.h>				// KMsvGlobalInBoxIndexEntryId
#include <txtrich.h>			// CRichText
#include <mtclreg.h>			// CClientMtmRegistry
#include <mtclbase.h>			// CBaseMtm
#include <commdb.h>				// CCommsDatabase
#include <commdbconnpref.h>		// TCommDbConnPref
#include <es_enum.h>			// TConnectionInfoV2Buf
#include <eikenv.h>
#include "TaskManagerEngine.h"
#include "TaskManager.pan"
#include "Response.h"
#include "TaskManagerConnectionOpener.h"
#include <HttpTaskManager.rsg>

// CONSTANTS
_LIT8(KUserAgent, "TaskManager 1.0");
_LIT8(KAccept, "*/*");
_LIT8(KUsername, "username");
_LIT8(KPassword, "password");
_LIT8(KTaskId, "task_id");
_LIT8(KContentTypeForm, "application/x-www-form-urlencoded\0");
_LIT8(KPhpUrlGetTasksFormat, "https://%S/get_tasks.php");
_LIT8(KPhpUrlSetTaskDoneFormat, "https://%S/set_task_done.php");
_LIT8(KJspUrlGetTasksFormat, "https://%S/TaskManagerWebUI/Controller?action=GetTasksAction");
_LIT8(KJspUrlSetTaskDoneFormat, "https://%S/TaskManagerWebUI/Controller?action=SetTaskDoneAction");
_LIT(KUserNotSet, "Set username and/or password");
_LIT(KIapNotSet, "IAP not selected");
_LIT(KServerNotSet, "Server name not set");
_LIT(KSmsUpdateMessage, "TaskManagerUpdate");

// ================= MEMBER FUNCTIONS =======================

// constructor
CTaskManagerEngine::CTaskManagerEngine(MTransactionObserver& aObserver)
	:	iTransactionObserver(aObserver)
	{
	}
	
// destructor
CTaskManagerEngine::~CTaskManagerEngine()
	{
	delete iConnOpener;
	iHttpSession.Close();
	iConnection.Close();
	iSockServ.Close();
	delete iGetTasksForm;
	delete iMarkTaskDoneForm;
	delete iMsvEntry;
	delete iMsvSession;
	iIAPs.Close();
	ResetData();
	}

// ----------------------------------------------------
// CTaskManagerEngine::NewL()
// Two-phased constructor.
// ----------------------------------------------------
//	
CTaskManagerEngine* CTaskManagerEngine::NewL(MTransactionObserver& aObserver)
	{
	CTaskManagerEngine* self = new (ELeave) CTaskManagerEngine(aObserver);
	CleanupStack::PushL(self);
	self->ConstructL();
	CleanupStack::Pop(self);
	return self;
	}

// ----------------------------------------------------
// CTaskManagerEngine::ConstructL()
// Symbian OS default constructor can leave.
// ----------------------------------------------------
//	
void CTaskManagerEngine::ConstructL()
	{
	User::LeaveIfError(iSockServ.Connect());
	User::LeaveIfError(iConnection.Open(iSockServ));
	iConnOpener = CTaskManagerConnectionOpener::NewL(iConnection,*this);
	
	iMsvSession = CMsvSession::OpenAsyncL(*this);
	
	// open RHTTPSession with default protocol ("HTTP/TCP")
	iHttpSession.OpenL();
	
	// show a dialog when when server certificate needs to be accepted.
	RStringPool stringPool = iHttpSession.StringPool(); 
	RHTTPConnectionInfo connInfo = iHttpSession.ConnectionInfo(); 
	connInfo.SetPropertyL(stringPool.StringF(HTTP::ESecureDialog, RHTTPSession::GetTable()), THTTPHdrVal(stringPool.StringF(HTTP::EDialogPrompt, RHTTPSession::GetTable()))); 
	
	LoadIapsL();
	
	// no IAPs defined in the device.
	if (iIAPs.Count() == 0)
		{
		CEikonEnv::Static()->LeaveWithInfoMsg(R_TASKMANAGER_NO_IAPS_DEFINED);
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::SetConnectionSettingsL()
// Sets all connections settings. If username and 
// password are set, a "HTML form" is created. This 
// form is used for fetching the tasks from the server.
// ----------------------------------------------------
//		
void CTaskManagerEngine::SetConnectionSettingsL(const TDesC& aServerName, 
												const TBool& aPhp,
												const TDesC& aUsername, 
												const TDesC& aPassword)
	{
	iUsername.Copy(aUsername);
	iPassword.Copy(aPassword);
	iPhp = aPhp;
	iServer.Copy(aServerName);
	delete iGetTasksForm;
	iGetTasksForm = NULL;
	
	// if username and password are set, create an "HTML form".
	if (0 < iUsername.Length() && 0 < aPassword.Length())
		{
		iGetTasksForm = CHTTPFormEncoder::NewL();
		iGetTasksForm->AddFieldL(KUsername, iUsername);
		iGetTasksForm->AddFieldL(KPassword, iPassword);
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::SetIap()
// Sets the IAP to be used in the HTTP connections.
// ----------------------------------------------------
//	
void CTaskManagerEngine::SetIap(const TUint32& aId)
	{
	iIap = aId;
	}
	
// ----------------------------------------------------
// CTaskManagerEngine::IapSet()
// Returns ETrue if the IAP is set, EFalse if not.
// ----------------------------------------------------
//	
TBool CTaskManagerEngine::IapSet() const
	{
	if (iIap == 0)
		{
		return EFalse;
		}
	else
		{
		return ETrue;
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::SetHeaderL()
// Sets a field-value pair to an HTTP header.
// ----------------------------------------------------
//
void CTaskManagerEngine::SetHeaderL(RHTTPHeaders aHeaders, 
							 		TInt aHdrField, 
							 		const TDesC8& aHdrValue)
	{
	RStringF valStr = iHttpSession.StringPool().OpenFStringL(aHdrValue);
	CleanupClosePushL(valStr);
	THTTPHdrVal val(valStr);
	aHeaders.SetFieldL(iHttpSession.StringPool().StringF(aHdrField,	RHTTPSession::GetTable()), val);
	CleanupStack::PopAndDestroy(&valStr);
	}

// ----------------------------------------------------
// CTaskManagerEngine::CheckAndReportErrorsL()
// Checks that all necessary connections settings are 
// set and reports from missing data.
// ----------------------------------------------------
//	
TBool CTaskManagerEngine::CheckAndReportErrorsL()
	{
	if (!IapSet())
		{
		iTransactionObserver.ErrorL(KIapNotSet);
		return ETrue;
		}
		
	if (iServer.Length() == 0)
		{
		iTransactionObserver.ErrorL(KServerNotSet);
		return ETrue;
		}

	return EFalse;
	}

// ----------------------------------------------------
// CTaskManagerEngine::FetchTasksL()
// Starts fetching tasks from the server.
// ----------------------------------------------------
//		
void CTaskManagerEngine::FetchTasksL()
	{
	// tasks form has not been created, username and/or password is not set.
	if (iGetTasksForm == NULL)
		{
		iTransactionObserver.ErrorL(KUserNotSet);
		return;
		}
		
	// if connection settings are invalid, just return
	if (CheckAndReportErrorsL())
		{
		return;
		}		
		
	// reset all previously received data.
	ResetData();
	
	if (iPhp)
		{
		iUrl.Format(KPhpUrlGetTasksFormat, &iServer);
		}
	else
		{
		iUrl.Format(KJspUrlGetTasksFormat, &iServer);	
		}
	
	
	iHttpForm = iGetTasksForm;

	// open up a (GPRS) connection and post the form.
	ConnectL();
	}

// ----------------------------------------------------
// CTaskManagerEngine::CreateMarkTaskDoneFormL()
// Creates an HTML form that can be used for completing 
// tasks in the server.
// ----------------------------------------------------
//	
void CTaskManagerEngine::CreateMarkTaskDoneFormL(const TInt& aTaskId)
	{
	delete iMarkTaskDoneForm;
	iMarkTaskDoneForm = NULL;

	// username and/or password not set
	if (1 > iUsername.Length() || 1 > iPassword.Length())
		{
		iTransactionObserver.ErrorL(KUserNotSet);
		return;
		}
		
	// reset all previously received data.
	ResetData();	
		
	// create the form
	iMarkTaskDoneForm = CHTTPFormEncoder::NewL();
	iMarkTaskDoneForm->AddFieldL(KUsername, iUsername);
	iMarkTaskDoneForm->AddFieldL(KPassword, iPassword);
	TBuf8<6> id;
	_LIT8(KIdFormat, "%d");
	id.Format(KIdFormat, aTaskId);
	iMarkTaskDoneForm->AddFieldL(KTaskId, id);	
	}

// ----------------------------------------------------
// CTaskManagerEngine::MarkTaskDoneL()
// Will post an HTML form to the server, which will mark 
// a task as completed in the server database.
// ----------------------------------------------------
//	
void CTaskManagerEngine::MarkTaskDoneL(const TInt& aTaskId)
	{
	CreateMarkTaskDoneFormL(aTaskId);
	if (iMarkTaskDoneForm == NULL)
		{
		return;
		}
		
	// if connection settings are invalid, just return
	if (CheckAndReportErrorsL())
		{
		return;
		}		
	
	if (iPhp)
		{
		iUrl.Format(KPhpUrlSetTaskDoneFormat, &iServer);
		}
	else
		{
		iUrl.Format(KJspUrlSetTaskDoneFormat, &iServer);
		}
	
	
	iHttpForm = iMarkTaskDoneForm;

	// open up a (GPRS) connection and post the form.
	ConnectL();
	}

// ----------------------------------------------------
// CTaskManagerEngine::DoPostL()
// Posts the defined HTML form to the server.
// ----------------------------------------------------
//		
void CTaskManagerEngine::DoPostL()
	{
	TUriParser8 uri;
	User::LeaveIfError(uri.Parse(iUrl));
			
	// Get request method string for HTTP POST
	RStringF method = iHttpSession.StringPool().StringF(HTTP::EPOST, RHTTPSession::GetTable());
	
	// Open transaction with previous method and parsed uri. This class will 
	// receive transaction events in MHFRunL and MHFRunError.
	iTransaction = iHttpSession.OpenTransactionL(uri, *this, method);
	
	// Set headers for request; user agent, accepted content type and body's 
	// content type.
	RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
	SetHeaderL(hdr, HTTP::EUserAgent, KUserAgent);
	SetHeaderL(hdr, HTTP::EAccept, KAccept);
	SetHeaderL(hdr, HTTP::EContentType, KContentTypeForm);

   	iTransaction.Request().SetBody(*iHttpForm); 	

	// Submit the transaction. After this the framework will give transaction
	// events via MHFRunL and MHFRunError.
	iTransaction.SubmitL();

	iRunning = ETrue;
	if (iHttpForm == iGetTasksForm)
		{
		iTransactionObserver.ConnectingToServerL(ETrue);
		}
	else
		{
		iTransactionObserver.ConnectingToServerL(EFalse);
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::MHFRunL()
// Called when the client's registration conditions are 
// satisfied for events that occur on a transaction.
// ----------------------------------------------------
//	
void CTaskManagerEngine::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent)
	{
	switch (aEvent.iStatus) 
		{
		case THTTPEvent::EGotResponseHeaders:
			{
			// HTTP response headers have been received. Use
			// aTransaction.Response() to get the response. However, it's not
			// necessary to do anything with the response when this event occurs.
			}
			break;

		case THTTPEvent::EGotResponseBodyData:
			{
			MHTTPDataSupplier* body = aTransaction.Response().Body();
			TPtrC8 dataChunk;
			body->GetNextDataPart(dataChunk);
			body->ReleaseData();
			WriteDataL(dataChunk);
			}
			break;

		// Indicates that header & body of response is completely received.
		case THTTPEvent::EResponseComplete:
			{

			}
			break;
		

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区不卡| 精品美女一区二区| 国精产品一区一区三区mba桃花| 国产亲近乱来精品视频| 日韩区在线观看| 色久综合一二码| 成人午夜视频在线观看| 日韩国产一区二| 亚洲视频每日更新| 欧美激情艳妇裸体舞| 日韩美女视频在线| 欧洲精品在线观看| av电影一区二区| 高清不卡一区二区| 国产在线乱码一区二区三区| 亚洲国产精品一区二区www | 在线观看中文字幕不卡| 国产福利一区二区三区视频在线| 亚洲成人av一区二区三区| 亚洲视频电影在线| 国产精品国产三级国产a| 2024国产精品视频| 欧美sm极限捆绑bd| 日韩写真欧美这视频| 欧美性大战xxxxx久久久| 色狠狠av一区二区三区| 97精品超碰一区二区三区| 国产99精品国产| 国产精品羞羞答答xxdd| 久久国产成人午夜av影院| 日本中文字幕一区| 免费久久99精品国产| 婷婷激情综合网| 丝袜亚洲另类欧美| 首页国产丝袜综合| 日韩电影一区二区三区四区| 日韩不卡一区二区三区| 青青草成人在线观看| 日本三级亚洲精品| 麻豆91在线播放免费| 免费成人小视频| 久久99在线观看| 国内久久精品视频| 国产精品亚洲一区二区三区在线| 精品一区二区久久久| 国产一区二区免费视频| 国产成人在线色| 成人av影院在线| 91亚洲精品久久久蜜桃| 欧美影视一区在线| 欧美一级黄色录像| 久久久www成人免费毛片麻豆| www久久精品| 国产精品三级av| 亚洲情趣在线观看| 亚洲高清免费在线| 极品瑜伽女神91| 成人免费视频一区| 欧美视频第二页| 欧美一级专区免费大片| 久久久久久久综合| 亚洲欧美日韩中文播放| 亚洲一区中文日韩| 蜜臀久久久99精品久久久久久| 国内一区二区视频| eeuss鲁片一区二区三区在线观看| 99国产精品国产精品久久| 欧美色综合影院| 久久综合九色综合欧美98 | 日韩av中文字幕一区二区| 秋霞午夜av一区二区三区| 国产精品99久久久久久宅男| heyzo一本久久综合| 欧美老女人第四色| 国产亚洲婷婷免费| 亚洲综合网站在线观看| 蜜桃视频在线观看一区二区| 成人综合在线网站| 欧美色网一区二区| 久久久国产一区二区三区四区小说 | 欧美精品一区二区久久婷婷| 亚洲国产精品成人久久综合一区| 一区二区三区欧美亚洲| 秋霞影院一区二区| 91偷拍与自偷拍精品| 3751色影院一区二区三区| 国产欧美一二三区| 视频一区国产视频| 成人免费视频网站在线观看| 91精品国产一区二区三区蜜臀| 国产欧美一区二区三区沐欲| 天堂蜜桃91精品| 99久久综合精品| 欧美r级在线观看| 亚洲一区二区不卡免费| 成人三级伦理片| 日韩欧美亚洲另类制服综合在线| 最新中文字幕一区二区三区| 麻豆成人av在线| 欧美日韩精品三区| 中文字幕一区视频| 国产乱码一区二区三区| 欧美日韩aaa| 亚洲激情av在线| 国产成人免费视频网站高清观看视频| 777色狠狠一区二区三区| 亚洲少妇最新在线视频| 国产福利精品一区二区| 欧美一区二区在线免费播放| 亚洲免费在线视频| 国产成都精品91一区二区三| 精品少妇一区二区三区视频免付费| 亚洲视频一二区| 成人sese在线| 国产免费观看久久| 国产伦精品一区二区三区免费迷| 91精品国产乱码| 奇米色一区二区| 欧美人伦禁忌dvd放荡欲情| 亚洲女人****多毛耸耸8| av毛片久久久久**hd| 国产精品护士白丝一区av| 国产九九视频一区二区三区| 欧美成人官网二区| 久久成人免费网站| 制服.丝袜.亚洲.另类.中文| 天堂午夜影视日韩欧美一区二区| 欧美午夜精品电影| 亚洲午夜电影在线| 欧美日韩三级一区二区| 亚洲免费在线观看| 91国在线观看| 亚洲成av人片一区二区三区| 欧美日韩国产中文| 午夜欧美2019年伦理| 制服丝袜亚洲网站| 日韩av成人高清| 日韩精品一区二区三区在线 | 色综合久久综合网97色综合| 国产精品美女一区二区| 丁香婷婷深情五月亚洲| 欧美国产欧美综合| 99久久99久久综合| 有码一区二区三区| 欧美另类高清zo欧美| 蜜桃精品视频在线观看| 久久一日本道色综合| 国产成人av电影在线播放| 国产精品九色蝌蚪自拍| 91免费版在线| 亚洲va天堂va国产va久| 91精品国产综合久久精品麻豆| 美日韩黄色大片| 久久久精品日韩欧美| 91看片淫黄大片一级| 亚洲一区二区三区国产| 日韩欧美激情四射| 福利电影一区二区| 亚洲天堂a在线| 在线播放91灌醉迷j高跟美女 | 亚洲制服欧美中文字幕中文字幕| 欧美日韩一级视频| 蜜桃视频免费观看一区| 欧美国产日韩精品免费观看| 色综合咪咪久久| 蜜臀久久99精品久久久久宅男| 久久你懂得1024| 99精品国产热久久91蜜凸| 日韩不卡免费视频| 国产精品电影院| 91精品国产欧美一区二区| 丁香六月久久综合狠狠色| 亚洲图片欧美综合| 国产欧美一区二区精品秋霞影院| 在线一区二区三区| 精品一区二区综合| 亚洲人快播电影网| www亚洲一区| 欧美性色综合网| 国产毛片精品一区| 亚洲国产视频一区| 久久久精品国产免大香伊| 欧美手机在线视频| 国产黄色成人av| 亚洲国产综合在线| 国产欧美一区二区精品仙草咪| 欧美性色综合网| 成人高清视频免费观看| 日本免费在线视频不卡一不卡二| 国产精品久久久久久一区二区三区 | 成人短视频下载| 毛片基地黄久久久久久天堂| 最新成人av在线| 精品久久久久久久人人人人传媒| 91麻豆精品视频| 国产精品影视网| 青青草原综合久久大伊人精品| 亚洲视频一二区| 国产午夜久久久久| 日韩一级在线观看|