//Modify URI components
void CExampleInetProtUtil::ModifyUriComponentsL()
	{	
	TUriParser8 parser1;
	CUri8* aUri = CUri8::NewL(parser1);
	
	_LIT(KText3, "\n\n\nAdding Uri components one by one....");
	iConsole->Printf ( KText3 );

	// Adding components to the Uri
	
	//Setting and displaying SCHEME
	_LIT8(KScheme, "http");
	_LIT(KScheme1, "\nSCHEME : http");
	iConsole->Printf ( KScheme1 );
	aUri->SetComponentL(KScheme, EUriScheme);
	
	//Setting and displaying HOST
	_LIT8(KHost, "www.symbian.com");
	_LIT(KHost1, "\nHOST : www.symbian.com");
	iConsole->Printf ( KHost1 );
	aUri->SetComponentL(KHost, EUriHost);
	
	//Setting and displaying PORT
	_LIT8(KPort, "80");
	_LIT(KPort1, "\nPORT : 80");
	iConsole->Printf ( KPort1 );
	aUri->SetComponentL(KPort, EUriPort);
	
	//Setting and displaying PATH
	_LIT8(KPath, "/developer/techlib/turic8class.html");
	_LIT(KPath1, "\nPATH : /developer/techlib/turic8class.html");
	iConsole->Printf ( KPath1 );
	aUri->SetComponentL(KPath, EUriPath);
	
	//Display the constucted Uri
	_LIT(KText4, "\nThe fully constructed Uri....");
	iConsole->Printf ( KText4 );
	const TDesC8& desUriDisplay = aUri->Uri().UriDes();
	TBuf16<100> desFullUri;
	desFullUri.Copy (desUriDisplay);
	
	iConsole->Printf( KLeaveALine );
	iConsole->Printf ( desFullUri );
	
	// Removal of component from the Uri
	iConsole->Getch ();
	_LIT(KText5, "\n\nUri with the Port number removed....\n");
	iConsole->Printf ( KText5 );
	aUri->RemoveComponentL(EUriPort);

	//Display the modified Uri
	const TDesC8& desRemovedComponentDisplay =aUri->Uri().UriDes();
	TBuf16<100> desRemovedComponent;
	desRemovedComponent.Copy (desRemovedComponentDisplay);
	iConsole->Printf ( desRemovedComponent );
	
	delete aUri;
	
	iConsole->Getch ();
	}
Beispiel #2
0
// From MTest:
void CTestCase::ExecuteL (TTestResult& aResult)
    {
    TInt error = ExecuteImplL();
    aResult.iResult = error;
    // add the possible failure or error to the result
    
    if (error == KErrCppUnitAssertionFailed)
        {
        CAssertFailure* assertFailure = AssertFailureFromTlsL ();
        CleanupStack::PushL(assertFailure);
        TBuf16 <0x80> convertBuf;
        TBuf16 <256> temporaryBuf;
        convertBuf.Copy(assertFailure->What());
        temporaryBuf.Append(convertBuf);
        temporaryBuf.AppendFormat(_L(" at Line %i of "), assertFailure->LineNumber()); 
        convertBuf.Copy(assertFailure->FileName());
        if (convertBuf.Length() + temporaryBuf.Length() >= 0x80)
            {
            TBuf <0x80> printBuf;
            printBuf = convertBuf.Right(0x80 - temporaryBuf.Length() - 1 -3 );
            convertBuf = _L("...");
            convertBuf.Append(printBuf);
            }
        temporaryBuf.Append(convertBuf);
        aResult.iResultDes = temporaryBuf;
        CleanupStack::PopAndDestroy(assertFailure); 
        }
    }
//Encode and Decode the Uri
void CExampleInetProtUtil::EscapeEncodeDecodeL()
	{
	//Take an eg file to encode it and then decode it....
	_LIT(KFullUriName,"K:\\ws\\direct\\direct.mmp");
	TBuf<40> desFullUriName(KFullUriName);
	
	//UTF-8 defines a mapping from sequences of octets to sequences of chars
	HBufC8* convert = EscapeUtils::ConvertFromUnicodeToUtf8L(desFullUriName);

	//Encode the eg Uri and display it
	_LIT(KTextEncode, "\n\n\nThe Encoded Uri is....\n");
	iConsole->Printf ( KTextEncode );
	HBufC16* encode = EscapeUtils::EscapeEncodeL(desFullUriName,EscapeUtils::EEscapeNormal);
	TPtr uriEncoded = encode->Des();
	TBuf16<100> desEncodedUri;
	desEncodedUri.Copy (uriEncoded);
	iConsole->Printf ( _L("%S"), &desEncodedUri );

	//Decode the eg Uri and display it
	_LIT(KTextDecode, "\nThe Decoded Uri is....\n");
	iConsole->Printf ( KTextDecode );
	
	HBufC16* decode = EscapeUtils::EscapeDecodeL(desFullUriName);
	TPtr uriDecoded = decode->Des();
	TBuf16<100> desDecodedUri;
	desDecodedUri.Copy (uriDecoded);
	iConsole->Printf ( _L("%S"), &desDecodedUri );

	delete decode;
	delete encode;
	delete convert;

	iConsole->Getch();
	iConsole->Printf ( KLeaveALine );
	}
//Create an URI
void CExampleInetProtUtil::CreateUriL()
	{
	//Set the physical path of the file
	
	_LIT(KText1, "\n\n\nThe Physical location of the file is....");
	iConsole->Printf ( KText1 );
	
	_LIT(KFullUriName, "K:\\ws\\direct\\direct.mmp");

	//display it 
	TBuf<40> desFullUriName(KFullUriName);
	iConsole->Printf ( KLeaveALine );
	iConsole->Printf ( KFullUriName );
	
	//create the Uri for the path
	CUri8* uri8 = CUri8::CreateFileUriL(desFullUriName); 
	
	const TDesC8& desUriDisplay = uri8->Uri().UriDes();
	TBuf16<100> desCreateUri;
	desCreateUri.Copy (desUriDisplay);
	
	//display it 
	_LIT(KText2, "And its Uri is....");
	iConsole->Printf ( KLeaveALine );
	iConsole->Printf ( KText2 );
	
	iConsole->Printf ( KLeaveALine );
	iConsole->Printf ( desCreateUri );
	
	delete uri8;
	
	iConsole->Getch ();
	}
Beispiel #5
0
 void roadmap_internet_open_browser (char *url) {
 	  RApaLsSession apaLsSession;
 	  const TUid KOSSBrowserUidValue = {0x10008D39}; // 0x1020724D for S60 3rd Ed
 	  TUid id(KOSSBrowserUidValue);
 	  TApaTaskList taskList(CEikonEnv::Static()->WsSession());
 	  TApaTask task = taskList.FindApp(id);
 	  if(task.Exists())
 		  {
 		  task.BringToForeground();
 		  task.SendMessage(TUid::Uid(0), TPtrC8((TUint8 *)url,strlen(url))); // UID not used
 		  }
 	  else
 		  {
 		  if(!apaLsSession.Handle())
 			  {
 			  User::LeaveIfError(apaLsSession.Connect());
 			  }
 		  TThreadId thread;
 		  
 		  TBuf16<128> buf;
 		  buf.Copy(TPtrC8((TUint8 *)url,strlen(url)));
 		   		  
 		  User::LeaveIfError(apaLsSession.StartDocument(buf, KOSSBrowserUidValue, thread));
 		  apaLsSession.Close();   
 		  }
 }
void ParseUriTestsDeprecated()
	{	
	test.Next(_L("Parsing 16 bit URIs (deprecated)"));
	gFullUri16.Copy(KUri0);
	TUriParser16 parser16;
	parser16.Parse(gFullUri16);
	gUriComponent16.Copy(KScheme0);
	TInt result = parser16.Extract(EUriScheme).Compare(gUriComponent16);
	test(!result);
	gUriComponent16.Copy(KUserInfo0);
	result = parser16.Extract(EUriUserinfo).Compare(gUriComponent16);
	test(!result);
	gUriComponent16.Copy(KHost0);
	result = parser16.Extract(EUriHost).Compare(gUriComponent16);
	test(!result);
	gUriComponent16.Copy(KPort0);
	result = parser16.Extract(EUriPort).Compare(gUriComponent16);
	test(!result);
	gUriComponent16.Copy(KParams0);
	result = parser16.Extract(EUriPath).Compare(gUriComponent16);
	test(!result);
	gUriComponent16.Copy(KHeaders0);
	result = parser16.Extract(EUriQuery).Compare(gUriComponent16);
	test(!result);
	}
void GenarateUriTestsL()
	{
	test.Next(_L("@SYMTestCaseID IWS-APPPROTOCOLS-INETURILIST-TESTUTILS-0002 Generating 8 bit URIs"));
	CUri8* uri8 = CUri8::NewLC();
	uri8->SetComponentL(KScheme0, EUriScheme);
	uri8->SetComponentL(KHost0, EUriHost);
	uri8->SetComponentL(KUserInfo0, EUriUserinfo);
	uri8->SetComponentL(KPort0, EUriPort);
	uri8->SetComponentL(KParams0, EUriPath);
	uri8->SetComponentL(KHeaders0, EUriQuery);
	const TDesC8& des8 = uri8->Uri().UriDes();
	TInt result = des8.Compare(KUri0);
	test(!result);
	CleanupStack::PopAndDestroy(uri8);
	
	test.Next(_L("Generating 16 bit URIs"));
	CUri16* uri16 = CUri16::NewLC();
	gUriComponent16.Copy(KScheme0);
	uri16->SetComponentL(gUriComponent16, EUriScheme);
	gUriComponent16.Copy(KHost0);
	uri16->SetComponentL(gUriComponent16, EUriHost);
	gUriComponent16.Copy(KUserInfo0);
	uri16->SetComponentL(gUriComponent16, EUriUserinfo);
	gUriComponent16.Copy(KPort0);
	uri16->SetComponentL(gUriComponent16, EUriPort);
	gUriComponent16.Copy(KParams0);
	uri16->SetComponentL(gUriComponent16, EUriPath);
	gUriComponent16.Copy(KHeaders0);
	uri16->SetComponentL(gUriComponent16, EUriQuery);
	const TDesC16& des16 = uri16->Uri().UriDes();
	gFullUri16.Copy(KUri0);
	result = des16.Compare(gFullUri16);
	test(!result);
	CleanupStack::PopAndDestroy(uri16);
	}
void EquivalenceTest(const TDesC8& aLhs, const TDesC8& aRhs, TInt aExpected)
	{
	TUriParser8 lhs8;
	lhs8.Parse(aLhs);
	TUriParser8 rhs8;
	rhs8.Parse(aRhs);
	TInt result = lhs8.Equivalent(rhs8);
	test(result == aExpected);
	
	TUriParser16 lhs16;
	gFullUri16.Copy(aLhs);
	lhs16.Parse(gFullUri16);
	TUriParser16 rhs16;
	gFullUriRhs16.Copy(aRhs);
	rhs16.Parse(gFullUriRhs16);
	
	result = lhs16.Equivalent(rhs16);
	test(result == aExpected);
	}
Beispiel #9
0
void CTextWindow::Draw()
//This function is virtual and so cannot have an 'L' at the end of it's name
	{
	iGc->Clear();
	ResetPrintLine();
	switch(iDrawMode)
		{
	case EDrawModeWordJust:
		User::LeaveIfError(Client()->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iTmpFont, TFontSpec(KTestFontTypefaceName,200)));
		iGc->UseFont(iTmpFont);
		DrawWordJustified(_L("Hello World"));
		DrawWordJustified(_L("One Two Three Four Five Six Seven"));
		DrawWordJustified(_L("AA    B        CC D"));
		DrawWordJustified(_L("ONEWORD"));
		iGc->DiscardFont();
		Client()->iScreen->ReleaseFont(iTmpFont);
		iTmpFont=NULL;
		break;
	case EDrawModeCharJust:
		User::LeaveIfError(Client()->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iTmpFont, TFontSpec(KTestFontTypefaceName,200)));
		iGc->UseFont(iTmpFont);
		DrawCharJustified(_L("Hello World"));
		DrawCharJustified(_L("One Two Three Four Five Six Seven"));
		DrawCharJustified(_L("AA    B        CC D"));
		DrawCharJustified(_L("ONEWORD"));
		iGc->DiscardFont();
		Client()->iScreen->ReleaseFont(iTmpFont);
		iTmpFont=NULL;
		break;
	case EDrawModeFonts:
		{
		TTypefaceSupport typefaceSupport;
		Client()->iScreen->TypefaceSupport(typefaceSupport,iTypeFaceIndex);
		TBuf<0x40> title;
		TBuf16<KMaxTypefaceNameLength> tmpBuf;
		tmpBuf.Copy(typefaceSupport.iTypeface.iName);
		title.Append(tmpBuf);
		title.AppendFormat(TRefByValue<const TDesC>(_L(", Heights (Min=%d, Max=%d, Num=%d)")),typefaceSupport.iMinHeightInTwips,typefaceSupport.iMaxHeightInTwips,typefaceSupport.iNumHeights);
		PrintLine(iFont,title);
		PrintDivider();
		for (TInt tfHeight=0;tfHeight<typefaceSupport.iNumHeights;tfHeight++)
			{
			TFontSpec fspec(typefaceSupport.iTypeface.iName,Client()->iScreen->FontHeightInTwips(iTypeFaceIndex,tfHeight));
			PrintStylesL(_L("Normal, "), fspec, TFontStyle());
			PrintStylesL(_L("Bold, "), fspec, TFontStyle(EPostureUpright,EStrokeWeightBold,EPrintPosNormal));
			PrintStylesL(_L("Italic, "), fspec, TFontStyle(EPostureItalic,EStrokeWeightNormal,EPrintPosNormal));
			PrintStylesL(_L("Bold/italic, "), fspec, TFontStyle(EPostureItalic,EStrokeWeightBold,EPrintPosNormal));
			if (iYpos>Size().iHeight)
				break;
			}
		}
		break;
		}
	}
//Validate URI components
void CExampleInetProtUtil::ValidateUriComponentsL()
	{
	TUriParser8 parser1;
	CUri8* aUri = CUri8::NewL(parser1);
	
	_LIT(KTextf, "\n\n\nValidating the Uri....\n");
	iConsole->Printf ( KTextf );
	
	// Adding components to the Uri
	
	//Adding Scheme
	_LIT8(KScheme, "http");
	aUri->SetComponentL(KScheme,EUriScheme);
	
	//Adding Host
	_LIT8(KHost, "waterlang.org");
	aUri->SetComponentL(KHost,EUriHost);
	
	//Adding Port
	_LIT8(KPort, "90");
	aUri->SetComponentL(KPort,EUriPort);
	
	//Adding Path
	_LIT8(KPath, "/turic8class.html");
	aUri->SetComponentL(KPath,EUriPath);
	
	//Adding Query
	_LIT8(KQuery, "bar=2&x=3");
	aUri->SetComponentL(KQuery,EUriQuery);
	
	//Adding Fragment
	_LIT8(KFragment, "fragment");
	aUri->SetComponentL(KFragment,EUriFragment);
	
	//Display the constructed Uri
	const TDesC8& desUriDisplays =aUri->Uri().UriDes();
	TBuf16<100> desValidate;
	desValidate.Copy (desUriDisplays);
	iConsole->Printf ( desValidate );
	
	// Validate() is not supported for HTTP, but only SIP and SIPS. 
	//The Parse() function itself validates the components and returns the 
	//appropriate result.
	TInt res = parser1.Parse(desUriDisplays);
	if (res==KErrNone)
	{
		_LIT(KText8, "\nThis Uri is VALID");
		iConsole->Printf ( KText8 );
	}
	
	delete aUri;
	
	iConsole->Getch();
	}
void ValidateTest(const TDesC8& aUri, TInt aErrorToAssert)
	{
	TUriParser8 parser8;
	TUriParser16 parser16;
	parser8.Parse(aUri);
	TInt result = parser8.Validate();
	test(result == aErrorToAssert);
	gFullUri16.Copy(aUri);
	parser16.Parse(gFullUri16);
	result = parser16.Validate();
	test(result == aErrorToAssert);
	}
//Extract URI components
void CExampleInetProtUtil::RetrieveFileNameL()
	{
	_LIT(KTextRet, "\n\n\nRetrieving filename from....\n");
	iConsole->Printf ( KTextRet );
	
	//Create a Uri 
	_LIT(KUriRetName, "K:\\ws\\direct\\direct.mmp");
	TBuf<40> desUriRetName(KUriRetName);
	CUri8* uriRetName = CUri8::CreateFileUriL(desUriRetName);  
	
	//Display the Uri
	const TDesC8& uriDisp = uriRetName->Uri().UriDes();
	TBuf16<100> desRetrieve;
	desRetrieve.Copy (uriDisp);
	iConsole->Printf ( desRetrieve );
	
	//Parse the Uri
	TUriParser8* uriComp = new(ELeave) TUriParser8();
	uriComp->Parse(uriDisp);
	
	//Get or Extract the Filename from the Uri
	_LIT(KTextGetFilename, "\nGetting the filename....\n");
	iConsole->Printf ( KTextGetFilename );
	
	HBufC* fileName = uriComp->GetFileNameL();
	TPtr uriFileNameDisplay = fileName->Des();
	TBuf16<100> desFileName;
	desFileName.Copy (uriFileNameDisplay);
	iConsole->Printf ( desFileName );

	delete fileName;
	delete uriComp;
	delete uriRetName;
	
	iConsole->Getch();
	}
//Extract URI components
void CExampleInetProtUtil::ExtractUriComponentsL()
	{
	_LIT(KTextExtract, "\n\n\nExtracting from....\n");
	iConsole->Printf ( KTextExtract );
	
	//Create a Uri 
	_LIT(KUriName, "K:\\ws\\direct\\direct.mmp");
	TBuf<40> desUriName(KUriName);
	CUri8* uriName = CUri8::CreateFileUriL(desUriName);  
	
	//Display the Uri
	const TDesC8& uriDisplay = uriName->Uri().UriDes();
	TBuf16<100> desExtract;
	desExtract.Copy (uriDisplay);
	iConsole->Printf ( desExtract );
	
	//Parse the Uri
	TUriParser8* uriComponent = new(ELeave) TUriParser8();
	uriComponent->Parse(uriDisplay);
	
	//Extract the Scheme component from this Uri
	const TDesC8& host = uriComponent->Extract(EUriScheme);
	TBuf16<100> desEx;
	desEx.Copy (host);
		
	//Display the Component extracted
	_LIT(KTextEx, "\nThe extracted Scheme component is....\n");
	iConsole->Printf ( KTextEx );
	iConsole->Printf ( desEx );
	
	//delete fileName;
	delete uriComponent;
	delete uriName;
	
	iConsole->Getch();
	}
Beispiel #14
0
void CDebugLogPrint::WriteToLog8L(const TDesC8 &aDes, const TDesC8 &aDes2)
	{
	TBuf16<256> buf;
	TInt pos=aDes.LocateReverse(' ');
	if (pos<0)
		pos=0;
	buf.Copy(aDes.Mid(pos));
	buf.Append(' ');
	TInt bufLen=buf.Length();
	TPtr16 ptr(&buf[bufLen],buf.MaxLength()-bufLen);
	ptr.Copy(aDes2);
	buf.SetLength(bufLen+aDes2.Length());
	_LIT(KDebugFormatString, "%S");
	RDebug::Print(KDebugFormatString, &buf);	
	}
// -----------------------------------------------------------------------------
// CSdDisk::ReleaseFiles
// This method deletes files created for filling the drive C
// 
// -----------------------------------------------------------------------------
void CSdDisk::ReleaseDisk(RFs& aFs)
    {
	// RDebug::Print(_L("Shareddatatest ## ReleaseDisk"));
	TInt i = 0;
	TInt err = KErrNone;
		
	do
	    {
		TBuf16<35> str;
		str.Copy(KFileName);
		str.AppendNum(i,EDecimal);
		
		err = aFs.Delete (str) ;
		
		i++;
	    }
	while ( err == KErrNone );
}
/** Load and initialise an audio file.
 */
TVerdict CTestMmfAclntCaps0014::DoTestStepL( void )
	{
	INFO_PRINTF1( _L("TestPlayerUtils : Caps"));
	iVerdict = EFail;

	iServerMonitor = CServerMonitor::NewL(this);
	
	// TSI_MMF_SDEVSOUND, MM-MMF-SDEVSOUND-I-0010-HP runs before this 
	// this step does, I-0010-HP creates and uses 
	// rectest1.wav and rectest2.wav 
	// So we need to delete these to avoid errors In this test.
	RFs fsSession;
	fsSession.Connect();
	TRAPD(err,fsSession.Delete(_L("c:\\rectest1.wav")));
	TRAP(err,fsSession.Delete(_L("c:\\rectest2.wav")));
	fsSession.Close();
	
	// Start Server to play back from another process
	RTestServ server;
	User::LeaveIfError(server.Connect(_L("CapTestServer")));
	CleanupClosePushL(server);
	RTestSession session1;
	User::LeaveIfError(session1.Open(server,_L("CapTestStep0014")));
	TRequestStatus* status = &iServerMonitor->ActiveStatus();
	// Start Server playback. The RunL of the CServerMonitor class will be called by the server when
	// playback has started
	session1.StartProcessing(*status);
	// Begin activescheduler loop. This will only exit when the whole test is complete 
	CActiveScheduler::Start();
	
	// The test is complete. Now shut down the server and get any errors /messages from the server
	TBuf8<256> message;
	TVerdict verdict = session1.EndProcessingAndReturnResult(message);
	if (verdict != EPass)
		iVerdict = verdict;
	TBuf16<256> copymess;
	copymess.Copy(message);
	INFO_PRINTF2(_L("end processing and return result: %S"),&copymess);

	CleanupStack::PopAndDestroy(&server);
	return iVerdict;
	}
void ParseUriTests16BitL()
	{	
	test.Next(_L("Parsing 16 bit URIs"));
	gFullUri16.Copy(KUri0);
	CUri8* uri = UriUtils::CreateUriL(gFullUri16);
	CleanupStack::PushL(uri);
	
	gUriComponent16.Copy(KScheme0);
	HBufC* text = uri->Uri().DisplayFormL(EUriScheme);
	TInt result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentScheme;
	delete text;
	User::LeaveIfError(result);

	gUriComponent16.Copy(KUserInfo0);
	text = uri->Uri().DisplayFormL(EUriUserinfo);
	result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentUserInfo;
	delete text;
	User::LeaveIfError(result);
	
	gUriComponent16.Copy(KHost0);
	text = uri->Uri().DisplayFormL(EUriHost);
	result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentHost;
	delete text;
	User::LeaveIfError(result);
	
	gUriComponent16.Copy(KPort0);
	text = uri->Uri().DisplayFormL(EUriPort);
	result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentPort;
	delete text;
	User::LeaveIfError(result);

	gUriComponent16.Copy(KParams0);
	text = uri->Uri().DisplayFormL(EUriPath);
	result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentPath;
	delete text;
	User::LeaveIfError(result);

	gUriComponent16.Copy(KHeaders0);
	text = uri->Uri().DisplayFormL(EUriQuery);
	result = text->Compare(gUriComponent16) == 0? KErrNone : KUriUtilsErrDifferentQuery;
	delete text;
	User::LeaveIfError(result);
	CleanupStack::PopAndDestroy(uri);
	}
// Wraps LookupName() to provide a Python method interface.
// Arguments:
//  - address of the device to look up. Note that the address 
//    is expected without colons!! e.g. "000D9319C868"
//  - True/False - if True, performs a remote name request even if the device
//    name is known in the cache from a previous request.
//
// Returns the name (a Python unicode string).
static PyObject* LightBlue_LookupName(PyObject* self, PyObject* args)
{   
    const char *addr;
    bool ignoreCache;
    if (!PyArg_ParseTuple(args, "sb", &addr, &ignoreCache))
        return NULL;

    THostName deviceName;
    TBTDevAddr wantedAddr;
    
    TBuf16<128> buf;
    buf.Copy(_L8(addr));
    wantedAddr.SetReadable(buf);
    
    TInt err = LookupName(wantedAddr, &deviceName, ignoreCache);
  
    if (err) 
        return SPyErr_SetFromSymbianOSErr(err);    
        
    return Py_BuildValue("u#", deviceName.Ptr(), deviceName.Length());
}
TVerdict CTestStepSDevSoundPlayDataCap::DoTestStepL( void )
{
    INFO_PRINTF1( _L("CTestStepSDevSoundPlayDataCap : DevSoundMP"));
    iVerdict = EFail;

    iServerMonitor = CServerMonitor::NewL(this);

    // Start Server to play back from another process
    RTestServ server;
    User::LeaveIfError(server.Connect(_L("SDSCapTestServer")));
    CleanupClosePushL(server);

    RTestSession session1;
    User::LeaveIfError(session1.Open(server,_L("SecDevSndTS0008")));
    TRequestStatus* status = &iServerMonitor->ActiveStatus();
    // Start Server playback. The RunL of the CServerMonitor class will be called by the server when
    // playback has started
    session1.StartProcessing(*status);
    // Begin activescheduler loop. This will only exit when the whole test is complete
    CActiveScheduler::Start();

    User::After(2000000);
    iVerdict = DoPlayData();

    // The test is complete. Now shut down the server and get any errors /messages from the server
    TBuf8<256> message;
    TVerdict verdict = session1.EndProcessingAndReturnResult(message);
    if (verdict != EPass)
        iVerdict = verdict;
    TBuf16<256> copymess;
    copymess.Copy(message);
    INFO_PRINTF2(_L("end processing and return result: %S"),&copymess);

    CleanupStack::PopAndDestroy(&server);
    return iVerdict;
}
void CCmdConnect::HandleWspEvent(TRequestStatus aStatus)
{
	TBool fail = EFalse;
	
	if (aStatus == THTTPSessionEvent::EConnect)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EConnect"));
		} 
	else if (aStatus == THTTPSessionEvent::EConnectedOK)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EConnectedOK"));
		}
	else if (aStatus == THTTPSessionEvent::EConnectedWithReducedCapabilities)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EConnectedWithReducedCapabilities"));
		}
	else if (aStatus == THTTPSessionEvent::EDisconnected)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EDisconnected"));
		fail = ETrue;
		}
	else if (aStatus == THTTPSessionEvent::EAuthenticatedOK)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EAuthenticatedOK"));
		} 
	else if (aStatus == THTTPSessionEvent::EAuthenticationFailure)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EAuthenticationFailure"));
		}
	else if (aStatus == THTTPSessionEvent::EConnectionTimedOut)
		{
		Log(_L("CFrmwrkSession::HandleWspEvent, event EConnectionTimedOut"));
		fail = ETrue;
		}
	else
		{
	    Log(_L("CFrmwrkSession::HandleWspEvent, Unrecognised event [%d]"), aStatus.Int());
		fail = ETrue;
		}

	if (fail)
		{
		CObjCatalogue *sessions = Machine()->Domains();

		for (TInt i = 0; i < sessions->Count(); ++i)
			{
			CAnyObject *obj = (CAnyObject *)sessions->At(i);
			if (obj->Tag() == THA_KHTTP_Connect)
				{
				CFrmwrkSession *frmwk = (CFrmwrkSession *) obj->Ptr();

				if (frmwk->UseWSPProtocol() && (frmwk->iState == CFrmwrkSession::EWSPDisconnected))
				{
					TBuf16<256> myNameBuf;
	
					myNameBuf.Copy(frmwk->Name());
		
					Log(_L("CCmdConnect::HandleWspEvent() : Delete %S\r\n"), &myNameBuf);
					Delete(myNameBuf);
					Machine()->Domains()->Delete(myNameBuf);
		
					}
				}
			}
		}
		
	WaitForNextEvent (THTTPSessionEvent::EDisconnected);
}
Beispiel #21
0
void CListener::RunL()
	{
	if(iListenerState == EWaitingForConnection)
		{
		// We are here when incoming connection detected and Accepted on Listener.
		if(iStatus != KErrNone)
			{
			// Something went wrong when accepting a remote connection
			// Not much we can do at this point.
			LOGLINE2(_L("Accept returns error! %d"), iStatus.Int());
			LOGLINE1(_L("Leaving....!"))
			DoCancel();
			User::Leave(KErrCommsLineFail);
			}
			
		// iBlankSocket is now ready to communicate with the incoming connection.
		LOGLINE1(_L("Remote connection detected!"));
			
		// Wait for data from remote port
		IssueRead();
		}
	else if(iListenerState == EWaitingForData)
		{
		
		// Check status of Recv operation
		if(iStatus != KErrNone)
			{
			if(iStatus == KErrEof)
				{
				LOGLINE1(_L("Remote party may have closed the connection"));
				}
			// Terminate the active socket
			LOGLINE1(_L("Closing active socket"));
			iBlankSocket.Close();
			
			// Set listening socket to accept new connection
			AcceptL();
			return;
			}

		// Print received data!!!!
		TBuf16<KReqstSocketPreReadSize> Buffer;
		Buffer.Copy(iBufferPreRead);

		// Get msg length from pre-read
		TUint msgLen = CReqstParser::ExtractMsgLenL(iBufferPreRead);
		__ASSERT_ALWAYS(msgLen > KReqstSocketPreReadSize, User::Panic(KPanicMsgFormat, KIncorrectPreReadSize)); 
		
		
		// Now read the rest of msg by creating an Rbuf just large enough according to the msg length
		iBuffer.Close();

		// Create a buffer to recv exact amount of remaining reqst msg
		iBuffer.CreateL(msgLen - KReqstSocketPreReadSize);
		
		// Read remaining msg data.
		// Recv operation should complete immediately if msg has been formatted correctly
		iBlankSocket.Recv(iBuffer, 0, iStatus);
		User::WaitForRequest(iStatus);
		// Check status of Recv operation
		if(iStatus != KErrNone)
			{
			if(iStatus == KErrEof)
				{
				LOGLINE1(_L("Remote party may have closed the connection during 2nd Recv"));
				}
			// Terminate the active socket
			LOGLINE1(_L("Error during 2nd Recv!!"));
			LOGLINE1(_L("Closing active socket"));
			iBlankSocket.Close();
			
			// Set listening socket to accept new connection
			AcceptL();
			return;
			}
		
		// Tell reqst hndlr we have a msg. That thread will parse msg and build the reply which we
		// want to send back to master. The call to ETEL to process the actual reqst
		// will have to be done asynchronously in HandleRequestL().
		iBufferAll.Close();
		iBufferAll.CreateL(msgLen);		// Give HandleRequestL the entire msg!
		iBufferAll += iBufferPreRead;
		iBufferAll += iBuffer;
		const TDesC8& response = iRqstHndlr.HandleRequestL(iBufferAll);
		
		if(response == KNullDesC8)
			{
			LOGLINE1(_L("Response msg is NULL"));
			}
		else
			{
			// Send back the reply msg
			TRequestStatus status;
			//convert to 16 bit
			TBuf16<4*KMaxElementSize> responsebuf16;
			responsebuf16.Copy(response);
			LOGLINE2(_L("Sending data back to sender...%S"), &responsebuf16);
			iBlankSocket.Send(response, 0, status);
			User::WaitForRequest(status);
			// There's a slim chance the remote party has closed the connection since the time a msg 
			// was received
			if(status != KErrNone)
				{
				if(status == KErrEof)
					{
					LOGLINE1(_L("Remote party may have closed the connection before we could send the response"));
					}
				// Terminate the active socket
				LOGLINE1(_L("Closing active socket"));
				iBlankSocket.Close();
				
				// Set listening socket to accept new connection
				AcceptL();
				return;
				}
			
			LOGLINE2(_L("Data sent. Status = %d"), status.Int());
			}
		
		// Wait for data from remote port
		IssueRead();
		}
	}
// -----------------------------------------------------------------------------
// CSdDisk::FillDisk()
// Fills the diskspace 
// 
// -----------------------------------------------------------------------------
void CSdDisk::FillDisk(RFs& aFs, TInt& aFreeDiskSpaceToLeave)
    {
	RFile iEaterFile;
	TInt fileSize(0);	
	TInt err(KErrNone);
	
	TReal64 diskFree = CheckDiskSpace(aFs);
	// RDebug::Print(_L("Shareddatatest ## Eat disk space") );
	
	// For loop to create eaterfiles
	for ( TInt i = 0 ; diskFree != 0 ; i++ )
	    {	
		TBuf16<30> str;
		str.Copy(KFileName);
		str.AppendNum(i,EDecimal);
			
		// RDebug::Print(_L("Shareddatatest ## Open file %s"), &str);
	
		err = iEaterFile.Open( aFs, str, EFileShareAny | EFileWrite );

		if ( err == KErrNotFound )	// file does not exist - create it
		    {
			err = iEaterFile.Create( aFs, str, EFileShareAny | EFileWrite );
		    }

		if ( err == KErrNone )
		    {
			// Create maximum size eaterfile if there is more disk space available than the maximum file size
			if ( diskFree > TReal64(KMaxTInt) )
			    {
				// RDebug::Print( _L("Shareddatatest ## Creating %d. EaterFile"), i+1);
				err = iEaterFile.SetSize( KMaxTInt );
				
				diskFree = diskFree - TReal64(KMaxTInt);
			    }
			
			// ... And if available disk space is less than maximum file size
			else
			    {
				// If aFreeDiskSpaceToLeave parameter says we have to leave some free disk
				if ( aFreeDiskSpaceToLeave != 0 )
				    {
					// RDebug::Print( _L("Shareddatatest ## Creating %d. EaterFile"), i+1);
					TInt sizeToSet = STATIC_CAST(TInt, I64INT(diskFree));
					err = iEaterFile.SetSize( sizeToSet - aFreeDiskSpaceToLeave * 1024 );
					iEaterFile.Size( fileSize );
					// RDebug::Print( _L("Shareddatatest ## Last EaterFileSize: %d"), fileSize);
					diskFree = 0;	
				    }
				
				// Otherwise try to eat all the disk space
				else
				    {
					// RDebug::Print( _L("Shareddatatest ## Creating %d. EaterFile"), i+1);
					TInt sizeToSet = STATIC_CAST(TInt, I64INT(diskFree));
					// RDebug::Print( _L("Shareddatatest ## Filesize in the end should be around %d bytes"), sizeToSet);
					
					for ( TInt j = 64 ; err != KErrDiskFull ; j-- )
					    {	
						err = iEaterFile.SetSize( sizeToSet - j * 1024 );
					    }
					iEaterFile.Size( fileSize );
					// RDebug::Print( _L("Shareddatatest ## Last EaterFileSize: %d bytes"), fileSize);
					// RDebug::Print( _L("Shareddatatest ## There should be %d bytes of free disk"),sizeToSet - fileSize);
					diskFree = 0;
				    }
			    }
		    }
		
		else
		    {
			RDebug::Print(_L("Shareddatatest ## Error = %d"), err);
			diskFree = 0;
		    }

		// RDebug::Print(_L("Shareddatatest ## Close file"));
		iEaterFile.Close();
	    }
    }
Beispiel #23
0
EXPORT_C char * setlocale(int category, const char* locale)
{
	CLocale* loc = CLocale::GetInstance();
	
	//Query the current locale
	if(NULL == locale)	
	{
		char* ret = NULL;
		switch(category)
		{
			case LC_CTYPE: 	if(!*LC_CTYPE_LocaleName)
							{
								LC_CTYPE_LocaleName[0] = 'C';
								LC_CTYPE_LocaleName[1] = '\0';
							}
							ret = (char*) LC_CTYPE_LocaleName;
							break;
						
			case LC_COLLATE:if(!*LC_COLLATE_LocaleName)
							{
								LC_COLLATE_LocaleName[0] = 'C';
								LC_COLLATE_LocaleName[1] = '\0';
							} 
							ret = (char*) LC_COLLATE_LocaleName;
							break;
							
			case LC_TIME:	if(!*LC_TIME_LocaleName)
							{
								LC_TIME_LocaleName[0] = 'C';
								LC_TIME_LocaleName[1] = '\0';
								_time_using_locale = 0;
							} 
							ret = (char*) LC_TIME_LocaleName;
							break;	
						
			case LC_NUMERIC:if(!*LC_NUMERIC_LocaleName)
							{
								LC_NUMERIC_LocaleName[0] = 'C';
								LC_NUMERIC_LocaleName[1] = '\0';
								_numeric_using_locale = 0;
							}  
							ret = (char*) LC_NUMERIC_LocaleName;
							break;
							
			case LC_MONETARY:if(!*LC_MONETARY_LocaleName)
							{
								LC_MONETARY_LocaleName[0] = 'C';
								LC_MONETARY_LocaleName[1] = '\0';
								_monetary_using_locale = 0;
							}  
							ret = (char*) LC_MONETARY_LocaleName;
							break;
				
			case LC_MESSAGES:
						break;
			
			case LC_ALL :if(!*LC_ALL_LocaleName)
							{
								_time_using_locale = 0;
								_numeric_using_locale = 0;
								_monetary_using_locale = 0;
								
								LC_CTYPE_LocaleName[0] = 'C';
								LC_CTYPE_LocaleName[1] = '\0';
								LC_COLLATE_LocaleName[0] = 'C';
								LC_COLLATE_LocaleName[1] = '\0';
								LC_TIME_LocaleName[0] = 'C';
								LC_TIME_LocaleName[1] = '\0';
								LC_NUMERIC_LocaleName[0] = 'C';
								LC_NUMERIC_LocaleName[1] = '\0';
								LC_MONETARY_LocaleName[0] = 'C';
								LC_MONETARY_LocaleName[1] = '\0';
								LC_ALL_LocaleName[0] =  'C';
								LC_ALL_LocaleName[1] = '\0';
							}  
						 ret = (char*) LC_ALL_LocaleName;
						 break;
			default:
				errno = EINVAL;
				return (NULL);
		}
		return ret;
	}

	//If locale is  "" set each category(LC_CTYPE, LC_COLLATE, LC_NUMERIC, LC_TIME, LC_MONETARY) to C locale
	if(strcmp(locale, "") == 0 )
	{
		_time_using_locale = 0;
		_numeric_using_locale = 0;
		_monetary_using_locale = 0;
		__nlocale_changed = 1;
		__mlocale_changed = 1;
#ifdef SYMBIAN_OE_ENHANCED_LOCALE_SUPPORT
		__clocale_set = 1;
		__applocale_changed = 1;
#endif
		
		LC_CTYPE_LocaleName[0] = 'C';
		LC_CTYPE_LocaleName[1] = '\0';
		LC_COLLATE_LocaleName[0] = 'C';
		LC_COLLATE_LocaleName[1] = '\0';
		LC_TIME_LocaleName[0] = 'C';
		LC_TIME_LocaleName[1] = '\0';
		LC_NUMERIC_LocaleName[0] = 'C';
		LC_NUMERIC_LocaleName[1] = '\0';
		LC_MONETARY_LocaleName[0] = 'C';
		LC_MONETARY_LocaleName[1] = '\0';
		LC_ALL_LocaleName[0] =  'C';
		LC_ALL_LocaleName[1] = '\0';
				
		return "C";
	}
	
	if (strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0)
	{
		if(LC_ALL == category)
		{
			_time_using_locale = 0;
			_numeric_using_locale = 0;
			_monetary_using_locale = 0;
			__nlocale_changed = 1;
			__mlocale_changed = 1;
#ifdef SYMBIAN_OE_ENHANCED_LOCALE_SUPPORT
			__clocale_set = 1;
			__applocale_changed = 1;
#endif
			
			strcpy((char*) LC_ALL_LocaleName, locale);
			LC_ALL_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_CTYPE_LocaleName, locale);
			LC_CTYPE_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_COLLATE_LocaleName, locale);
			LC_COLLATE_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_NUMERIC_LocaleName, locale);
			LC_NUMERIC_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_MONETARY_LocaleName, locale);
			LC_MONETARY_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_TIME_LocaleName, locale);
			LC_TIME_LocaleName[strlen(locale)] = '\0';
			return (char*) locale;	
		}
		
		switch(category)
		{
			case LC_CTYPE: 	strcpy((char*) LC_CTYPE_LocaleName, locale);
							LC_CTYPE_LocaleName[strlen(locale)] = '\0';
							break;
						
			case LC_COLLATE: strcpy((char*) LC_COLLATE_LocaleName, locale);
							 LC_COLLATE_LocaleName[strlen(locale)] = '\0';
							 break;
							
			case LC_TIME:	_time_using_locale = 0;
							strcpy((char*) LC_TIME_LocaleName, locale);
							LC_TIME_LocaleName[strlen(locale)] = '\0';
							break;	
						
			case LC_NUMERIC: _numeric_using_locale = 0;
							 __nlocale_changed = 1;
#ifdef SYMBIAN_OE_ENHANCED_LOCALE_SUPPORT
							 __applocale_changed = 1;
#endif
							 strcpy((char*) LC_NUMERIC_LocaleName, locale);
							 LC_NUMERIC_LocaleName[strlen(locale)] = '\0';
							 break;
							
			case LC_MONETARY: _monetary_using_locale = 0;
							  __mlocale_changed = 1;
#ifdef SYMBIAN_OE_ENHANCED_LOCALE_SUPPORT
							  __applocale_changed = 1;
#endif
							  strcpy((char*) LC_MONETARY_LocaleName, locale);
							  LC_MONETARY_LocaleName[strlen(locale)] = '\0';	
							  break;

			case LC_MESSAGES:
			default:
				errno = EINVAL;
				return (NULL);	
		}
		return ((char*) locale);
	}

	//If locale is other than C or POSIX
	TPtrC8 src((const TUint8*)locale);
	TBuf16 <LOCALE_LENGTH> localeString;
	localeString.Copy(src);
	TText* retVal = loc->SetLocale(localeString);
	if(NULL == retVal)
	{
		return NULL;
	}
			
	if(LC_ALL == category)
	{
		TInt retVal =0;
		
		if( __numeric_load_locale(locale) == -1)
		{
			retVal = -1;
		}
		if(__monetary_load_locale(locale) == -1)
		{
			retVal = -1;
		}
		if (__time_load_locale(locale) == -1)
		{
			retVal = -1;
		}	
				
		if(!retVal)
		{
			strcpy((char*) LC_ALL_LocaleName, locale);
			LC_ALL_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_CTYPE_LocaleName, locale);
			LC_CTYPE_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_COLLATE_LocaleName, locale);
			LC_COLLATE_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_NUMERIC_LocaleName, locale);
			LC_NUMERIC_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_MONETARY_LocaleName, locale);
			LC_MONETARY_LocaleName[strlen(locale)] = '\0';
			strcpy((char*) LC_TIME_LocaleName, locale);
			LC_TIME_LocaleName[strlen(locale)] = '\0';
			return (char*) locale;
		}
		else
		{
			return NULL;
		}
	}

	switch (category)
	{
		case LC_CTYPE: 	strcpy((char*) LC_CTYPE_LocaleName, locale);
						LC_CTYPE_LocaleName[strlen(locale)] = '\0';
						break;
						
		case LC_COLLATE: strcpy((char*) LC_COLLATE_LocaleName, locale);
						 LC_COLLATE_LocaleName[strlen(locale)] = '\0';
						 break;
						
		case LC_TIME:	if(!__time_load_locale(locale))
						{
							strcpy((char*) LC_TIME_LocaleName, locale);
							LC_TIME_LocaleName[strlen(locale)] = '\0';
						}
						else
						{
							return NULL;	
						}	
						break;	
					
		case LC_NUMERIC: if(!__numeric_load_locale(locale))
						 {
						 	strcpy((char*) LC_NUMERIC_LocaleName, locale);
							LC_NUMERIC_LocaleName[strlen(locale)] = '\0';
						 }
						 else
						 {
						 	return NULL;	
						 }	
						 break;
						
		case LC_MONETARY: if(!__monetary_load_locale(locale))
						 {
						 	strcpy((char*) LC_MONETARY_LocaleName, locale);
							LC_MONETARY_LocaleName[strlen(locale)] = '\0';	
						 }
						 else
						 {
						 	return NULL;
						 }	
						 break;

		case LC_MESSAGES:
		default:
			errno = EINVAL;
			return (NULL);
	}
	return ((char*) locale);
}
//Resolve the Uri w.r.t a Base and a refernce Uri
void CExampleInetProtUtil::ResolveUriL()
	{
	_LIT(KTextResolve1, "\n\n\nThe Base and reference Uris are\n");
	iConsole->Printf ( KTextResolve1 );
	
	TUriParser8 parserResolve1;
	CUri8* aUriBase = CUri8::NewL(parserResolve1);

	//Adding Scheme
	_LIT8(KScheme, "http");
	aUriBase->SetComponentL(KScheme,EUriScheme);
	
	//Adding Host
	_LIT8(KHost, "symbian.com");
	aUriBase->SetComponentL(KHost,EUriHost);
	
	//Adding Port
	_LIT8(KPort, "90");
	aUriBase->SetComponentL(KPort,EUriPort);
	
	//Adding Path
	_LIT8(KPath, "/resolve.aspx");
	aUriBase->SetComponentL(KPath,EUriPath);
	
	const TDesC8& desBaseUri =aUriBase->Uri().UriDes();
	TBuf16<100> desBase;
	desBase.Copy (desBaseUri);
	iConsole->Printf ( desBase );
	
	iConsole->Printf( KLeaveALine );
	
	CUri8* aUriRef = CUri8::NewL(parserResolve1);
	
	//Adding Path
	_LIT8(KPath1, "/uris/base/reference/resolve.aspx");
	aUriRef->SetComponentL(KPath1,EUriPath);
	
	//Adding Query
	_LIT8(KQuery1, "bar=2&x=3");
	aUriRef->SetComponentL(KQuery1,EUriQuery);
	
	const TDesC8& desRefUri =aUriRef->Uri().UriDes();
	TBuf16<100> desRef;
	desRef.Copy (desRefUri);
	iConsole->Printf ( desRef );
	
	_LIT(KTextResolve, "\nThe Resolved Uri is....\n");
	iConsole->Printf ( KTextResolve );
	
	//Resolve the 2 Uri's to get a resultant uri
	CUri8* Uri8 = CUri8::ResolveL(aUriBase->Uri(),aUriRef->Uri());
	
	// Display the resultant Uri
	const TDesC8& desDisplayReslovedUri = Uri8->Uri().UriDes();
	TBuf16<100> desResolve;
	desResolve.Copy (desDisplayReslovedUri);
	iConsole->Printf ( desResolve );
	
	delete Uri8;
	delete aUriRef;
	delete aUriBase; 
	
	iConsole->Getch ();
	}