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

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

?? taskmanagerengine.cpp

?? c++下s60終端對終端傳輸協(xié)議
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		// Indicates that transaction succeeded.
		case THTTPEvent::ESucceeded:
			{
			iTransaction.Close();
			iRunning = EFalse;
			
			CResponse* response = CResponse::NewLC();
			
			// After transaction has been closed, leaves are no 
			// longer handled by the calling active object.
			TRAPD(error,
			response->InputDataL(*iReceivedData);
			iTransactionObserver.SuccessL(*response);
			CheckRefreshL();)
			PanicIfError(error);

			CleanupStack::PopAndDestroy(response);
			}
			break;

		// Transaction completed with failure.
		case THTTPEvent::EFailed:
			{			 
			iTransaction.Close();
			iRunning = EFalse;

			// After transaction has been closed, leaves are no 
			// longer handled by the calling active object.
			TRAPD(error,
			iTransactionObserver.FailedL(0);
			CheckRefreshL();)
			PanicIfError(error);
			}
			break;

		default:
			// There are more events in THTTPEvent, but they are not usually 
			// needed. However, event status smaller than zero should be handled 
			// correctly since it's error.
			{
			if (aEvent.iStatus < 0)
				{
				// Just close the transaction on errors
				iTransaction.Close();
				iRunning = EFalse;
				
				// After transaction has been closed, leaves are no 
				// longer handled by the calling active object.
				TRAPD(error,
				iTransactionObserver.FailedL(aEvent.iStatus);
				CheckRefreshL();)
				PanicIfError(error);
				} 
			else 
				{
				// Other events are not errors (e.g. permanent and temporary
				// redirections)
				}
			}
			break;
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::MHFRunError()
// Called when a leave occurs in handling a transaction 
// event.
// ----------------------------------------------------
//	
TInt CTaskManagerEngine::MHFRunError(	TInt aError, 
										RHTTPTransaction /*aTransaction*/, 
										const THTTPEvent& /*aEvent*/)
	{
	// only report about the error.
	TRAPD(error, iTransactionObserver.FailedL(aError);)
	return error;
	}

// ----------------------------------------------------
// CTaskManagerEngine::CancelTransaction()
// Used for cancelling an HTTP transaction or the 
// creation of a GPRS connection.
// ----------------------------------------------------
//		
void CTaskManagerEngine::CancelTransaction()
	{
	// if we are opening up a GPRS connection.
	if (iOpeningConnection)
		{
		iConnOpener->Cancel();
		TRAPD(error, iTransactionObserver.CancelledL())
		PanicIfError(error);
		return;
		}
		
	// HTTP transaction not running
	if(!iRunning) 
		return;

	// Close() also cancels transaction (Cancel() can also be used but 
	// resources allocated by transaction must be still freed with Close())
	iTransaction.Close();

	iRunning = EFalse;
	TRAPD(	error,
			iTransactionObserver.CancelledL());
	PanicIfError(error);
	}

// ----------------------------------------------------
// CTaskManagerEngine::WriteDataL()
// Will write to given data into a member buffer. Used 
// for saving the data received by the HTTP transaction.
// ----------------------------------------------------
//
void CTaskManagerEngine::WriteDataL(const TDesC8& aData)
	{
	// some data already received
	if (iReceivedData)
		{
		iReceivedData = iReceivedData->ReAllocL(iReceivedData->Length() + aData.Length());
		HBufC* newData = HBufC::NewLC(aData.Length());
		newData->Des().Copy(aData);
		iReceivedData->Des() += newData->Des();
		CleanupStack::PopAndDestroy(newData);
		}
	// no data yet received.
	else
		{
		iReceivedData = HBufC::NewL(aData.Length());
		iReceivedData->Des().Copy(aData);
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::ResetData()
// Resets the received data.
// ----------------------------------------------------
//	
void CTaskManagerEngine::ResetData()
	{
	delete iReceivedData;
	iReceivedData = NULL;
	}
	
// ----------------------------------------------------
// CTaskManagerEngine::CheckRefreshL()
// An SMS update message, indicating an updated task
// list on the server, may have been received during
// an HTTP transaction. This function checks if such a
// postponed request has been made and, assuming an
// HTTP transaction isn't running, executes the
// request.
// ----------------------------------------------------
//
void CTaskManagerEngine::CheckRefreshL()
	{
	// if HTTP transaction is running, don't fetch tasks.
	if (iRunning)
		{
		return;
		}
		
	if (iDoRefresh)
		{
		iDoRefresh = EFalse;
		FetchTasksL();
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::SetAutomaticUpdateL()
// Automatic task download can be set on or off through
// this function. If on, the client will try to fetch
// a new task list as soon as it receives an SMS
// message.
// ----------------------------------------------------
//	
void CTaskManagerEngine::SetAutomaticUpdateL(const TBool& aOn)
	{
	iAutomaticUpdate = aOn;
	if (iAutomaticUpdate)
		{
		CheckRefreshL();
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::HandleSessionEventL()
// Indicates an event in the message server has occurred. 
// Used here for listening incoming SMS messages.
// ----------------------------------------------------
//	
void CTaskManagerEngine::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* /*aArg3*/)
	{
	switch (aEvent)
		{
		case EMsvServerReady:
			if (!iMsvEntry)
				{
				iMsvEntry = CMsvEntry::NewL(*iMsvSession, KMsvGlobalInBoxIndexEntryId, TMsvSelectionOrdering());
				}
			break;
			
		case EMsvEntriesCreated:
			if (*(static_cast<TMsvId*>(aArg2)) == KMsvGlobalInBoxIndexEntryId)
				{
				CMsvEntrySelection* entries = static_cast<CMsvEntrySelection*>(aArg1);

				iMsvEntry->SetEntryL(entries->At(0));
				TMsvEntry msvEntry(iMsvEntry->Entry());
				msvEntry.SetVisible(EFalse);

				CClientMtmRegistry* mtmReg = CClientMtmRegistry::NewL(*iMsvSession);
				CleanupStack::PushL(mtmReg);
				CBaseMtm* smsMtm = mtmReg->NewMtmL(msvEntry.iMtm);
				smsMtm->SwitchCurrentEntryL(entries->At(0));
				smsMtm->LoadMessageL();
				TBool CorrectSms = EFalse;
				
				// received SMS message is a 'Task manager update' SMS.
				if (smsMtm->Body().Read(0,KSmsUpdateMessage().Length()).Compare(KSmsUpdateMessage)==0)
					{
					msvEntry.SetUnread(EFalse);
					CorrectSms = ETrue;
					}
				// not a 'Task manager update' SMS, show it to user.
				else
					{
					msvEntry.SetVisible(ETrue);
					}
					
				iMsvEntry->ChangeL(msvEntry);

				CleanupStack::PopAndDestroy(smsMtm);

				// if received SMS message was a 'Task Manager update' SMS.
				if (CorrectSms)
					{
					// delete the received SMS message for it is not intended for the user to read.
					iMsvEntry->DeleteL(entries->At(0));
					
					// if an HTTP transaction is running or program is in the background or busy. 
					// Don't fetch tasks yet.
					if (iRunning || !iAutomaticUpdate)
						{
						iDoRefresh = ETrue;
						}
					// HTTP transaction is not running, fetch tasks.
					else
						{
						FetchTasksL();
						}
					}
				}
			break;
			
			default:
			break;
		}
	}

// ----------------------------------------------------
// CTaskManagerEngine::LoadIapsL()
// Loads all IAPs of the device.
// ----------------------------------------------------
//	
void CTaskManagerEngine::LoadIapsL()
	{
	// open commdb
	CCommsDatabase* commDb = CCommsDatabase::NewL(EDatabaseTypeIAP);
	CleanupStack::PushL(commDb);

	// open IAP table
	CCommsDbTableView* commView = commDb->OpenIAPTableViewMatchingBearerSetLC(ECommDbBearerCSD|ECommDbBearerGPRS,ECommDbConnectionDirectionOutgoing);
	
	// search all IAPs
	if (commView->GotoFirstRecord() == KErrNone)
		{
		do
			{
			TIap iap;
			commView->ReadTextL(TPtrC(COMMDB_NAME), iap.iName);
			commView->ReadUintL(TPtrC(COMMDB_ID), iap.iId);
			User::LeaveIfError(iIAPs.Append(iap));
			}
		while (commView->GotoNextRecord() == KErrNone);
		}
	CleanupStack::PopAndDestroy(/*commView*/);
	CleanupStack::PopAndDestroy(/*commDb*/);
	}

// ----------------------------------------------------
// CTaskManagerEngine::Iaps()
// Returns all IAPs of the device.
// ----------------------------------------------------
//		
RArray<TIap>& CTaskManagerEngine::Iaps() 
	{
	return iIAPs;
	}
	
// ----------------------------------------------------
// CTaskManagerEngine::ConnectL()
// Will open up a (GPRS) connection.
// ----------------------------------------------------
//		
void CTaskManagerEngine::ConnectL()
	{
	// this functionality is not applicable for the emulator
	#ifndef __WINS__ 
	
	TBool connected = EFalse;
	
	// Lets first check are we already connected.
	TUint connectionCount;
	User::LeaveIfError(iConnection.EnumerateConnections(connectionCount));
	TPckgBuf<TConnectionInfoV2> connectionInfo; 
	for (TUint i = 1; i <= connectionCount; i++)
		{
		User::LeaveIfError(iConnection.GetConnectionInfo(i, connectionInfo));
		if (connectionInfo().iIapId == iIap)
			{
			connected = ETrue;
			break;
			}
		}
	
	// Not yet connected, start connection
	if (!connected)
		{
		//Define preferences for connection
		TCommDbConnPref prefs;
		prefs.SetIapId(iIap);
		prefs.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);

		//Start Connection
		iOpeningConnection = ETrue;
		iTransactionObserver.OpeningConnectionL();
		iConnOpener->OpenConnection(prefs);
		return;
		}

	//Set properties for the HTTP session
	RStringPool strP = iHttpSession.StringPool();
	RHTTPConnectionInfo connInfo = iHttpSession.ConnectionInfo();
	connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketServ, RHTTPSession::GetTable() ), THTTPHdrVal (iSockServ.Handle()) );
	TInt connPtr = REINTERPRET_CAST(TInt, &iConnection);
	connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketConnection, RHTTPSession::GetTable() ), THTTPHdrVal (connPtr) );
	
	#endif // __WINS__
	DoPostL();
	}

// ----------------------------------------------------
// CTaskManagerEngine::ConnectionCreated()
// Called when opening a GPRS connection has finished.
// ----------------------------------------------------
//	
void CTaskManagerEngine::ConnectionCreated(const TInt& aError)
	{
	iOpeningConnection = EFalse;
	if (aError != KErrNone)
		{
		TRAPD(error, iTransactionObserver.FailedL(aError))
		PanicIfError(error);
		}
	else
		{
		TRAPD(error,
			//Set properties for the HTTP session
			RStringPool strP = iHttpSession.StringPool();
			RHTTPConnectionInfo connInfo = iHttpSession.ConnectionInfo();
			connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketServ, RHTTPSession::GetTable() ), THTTPHdrVal (iSockServ.Handle()) );
			TInt connPtr = REINTERPRET_CAST(TInt, &iConnection);
			connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketConnection, RHTTPSession::GetTable() ), THTTPHdrVal (connPtr) );
			DoPostL();
			)
		PanicIfError(error);
		}
	}
		
// End of file

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲另类在线制服丝袜| 欧美高清www午色夜在线视频| 日韩天堂在线观看| 日韩电影在线一区二区三区| 欧美日韩夫妻久久| 美日韩一区二区| 久久久久9999亚洲精品| 波多野结衣亚洲| 亚洲线精品一区二区三区| 制服丝袜亚洲网站| 韩国欧美一区二区| 国产精品国产自产拍高清av| 日本丶国产丶欧美色综合| 日韩主播视频在线| 国产午夜亚洲精品午夜鲁丝片 | 精品国产伦一区二区三区观看体验| 精品无人码麻豆乱码1区2区| 中文字幕免费不卡| 欧美撒尿777hd撒尿| 国精产品一区一区三区mba桃花| 中文字幕一区二区三| 欧美日韩一区国产| 国产成人免费高清| 性做久久久久久久久| 久久久久九九视频| 欧美三区免费完整视频在线观看| 久久精品国产成人一区二区三区| 国产精品的网站| 日韩一区二区三区免费看| 99在线精品视频| 免费在线观看精品| 亚洲欧美国产高清| 国产亚洲福利社区一区| 欧美日韩在线一区二区| 成人免费不卡视频| 免费成人你懂的| 亚洲影院理伦片| 精品乱人伦小说| 欧美日韩亚洲综合| 成人av午夜影院| 精品一二三四区| 偷拍一区二区三区| 亚洲欧美日韩国产另类专区 | 欧美一区二区视频在线观看2022| 国产很黄免费观看久久| 日韩国产一二三区| 依依成人精品视频| 国产精品成人免费精品自在线观看| 91精品国产品国语在线不卡| av网站一区二区三区| 国产一区视频在线看| 日韩综合在线视频| 亚洲在线视频网站| 亚洲日本va午夜在线影院| 国产婷婷色一区二区三区四区| 欧美一级二级三级乱码| 欧美三级电影在线看| 97精品超碰一区二区三区| 国产精品影视在线观看| 久久精品免费观看| 免费人成精品欧美精品| 亚洲成av人**亚洲成av**| 一区二区三区产品免费精品久久75| 国产精品久久久久久久久免费樱桃| 2021中文字幕一区亚洲| 日韩欧美在线影院| 日韩一区二区免费视频| 欧美一区二区三区的| 欧美精品aⅴ在线视频| 欧美日韩国产片| 欧美日韩国产另类一区| 欧美日韩精品二区第二页| 欧美综合在线视频| 欧美午夜一区二区三区免费大片| 91行情网站电视在线观看高清版| 99久精品国产| 91视频国产观看| 欧美这里有精品| 欧美伊人精品成人久久综合97| 91久久精品网| 欧美日韩你懂的| 欧美一区二区三区啪啪| 精品国产一区a| 国产欧美一区视频| 国产精品无遮挡| 亚洲欧洲无码一区二区三区| 亚洲欧美国产77777| 亚洲精品一二三区| 亚洲午夜视频在线| 日日噜噜夜夜狠狠视频欧美人| 日本亚洲最大的色成网站www| 免费成人性网站| 国产一区二区h| 99热99精品| 欧美人动与zoxxxx乱| 日韩精品一区二| 日本一区免费视频| 亚洲乱码中文字幕| 日韩精品国产精品| 国精产品一区一区三区mba桃花| 成人丝袜18视频在线观看| 日本精品裸体写真集在线观看 | 91精品办公室少妇高潮对白| 欧美久久久久免费| 久久人人爽爽爽人久久久| 亚洲日穴在线视频| 喷白浆一区二区| 不卡的av电影在线观看| 欧美日韩日本视频| 久久久久久9999| 亚洲一区自拍偷拍| 国产一区二区中文字幕| 色先锋久久av资源部| 欧美一卡2卡三卡4卡5免费| 国产喷白浆一区二区三区| 亚洲一区二区精品久久av| 国产一区在线看| 欧美午夜精品一区二区三区| 精品国产青草久久久久福利| 综合亚洲深深色噜噜狠狠网站| 日本一区中文字幕| 色综合一区二区| 欧美精品一区二区精品网| 亚洲色大成网站www久久九九| 免费看欧美美女黄的网站| 一本久道久久综合中文字幕 | 国产天堂亚洲国产碰碰| 亚洲成人精品影院| 成人黄色电影在线| 欧美成人官网二区| 亚洲韩国精品一区| 成人av在线播放网址| 日韩欧美一二三| 调教+趴+乳夹+国产+精品| 波多野结衣中文字幕一区| 欧美成人vr18sexvr| 性做久久久久久免费观看欧美| 白白色 亚洲乱淫| 久久久久久久久免费| 日韩国产在线观看| 欧美亚洲动漫精品| 亚洲蜜臀av乱码久久精品| 国产成人av一区二区| 欧美一区二视频| 天天色综合成人网| 在线观看视频一区二区欧美日韩| 中文字幕第一区综合| 国产伦精品一区二区三区视频青涩 | 91麻豆成人久久精品二区三区| 久久免费精品国产久精品久久久久| 午夜精品久久久久久久| 91麻豆精品在线观看| 国产精品免费视频观看| 国产福利91精品| 久久精品亚洲麻豆av一区二区 | 亚洲一区二区视频在线观看| 91视频www| 综合久久一区二区三区| www.久久精品| 亚洲欧洲av在线| 成人app下载| 国产精品你懂的| 99综合影院在线| 中文字幕综合网| 91猫先生在线| 亚洲一区二区三区四区的| 欧美最猛黑人xxxxx猛交| 亚洲国产精品自拍| 在线91免费看| 捆绑紧缚一区二区三区视频 | 日韩一区二区免费在线观看| 秋霞午夜av一区二区三区 | 国产亚洲综合色| 国产精品1区二区.| 欧美极品另类videosde| 成人av电影在线播放| 亚洲免费观看在线视频| 精品视频一区二区不卡| 日韩成人精品在线观看| 日韩一级免费观看| 国产精品资源在线观看| 中文字幕av不卡| 色婷婷狠狠综合| 视频精品一区二区| 欧美大尺度电影在线| 国产成人免费视频网站 | 蜜桃av一区二区三区| 久久久精品免费观看| 93久久精品日日躁夜夜躁欧美| 亚洲一区二区四区蜜桃| 日韩欧美色电影| 成人va在线观看| 午夜国产精品一区| 久久久九九九九| 在线免费精品视频| 免费看日韩精品| 中文字幕一区二区三区蜜月| 欧美精品一卡两卡| 国产乱色国产精品免费视频| 国产精品对白交换视频|