messagingfw/biomsgfw/BIFUTSRC/TBIFVIEW.CPP
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/biomsgfw/BIFUTSRC/TBIFVIEW.CPP	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,172 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// TBIFVIEW.CPP
+//
+#include <bif.h>
+
+#include <barsc.h>
+#include <barsread.h>
+
+#include <e32cons.h>
+#include <e32std.h>
+
+#pragma warning(disable:4238)  // nonstandard extension used : class rvalue used as lvalue
+
+LOCAL_D CConsoleBase* console;
+const TInt KTestCleanupStack=0x40;
+LOCAL_D CTrapCleanup* TheTrapCleanup;
+LOCAL_D RFs Fs;
+const TInt KMaxBioCommandLine=256;
+TBuf<KMaxBioCommandLine> Arg;
+
+LOCAL_C void setupCleanup()
+//
+// Initialise the cleanup stack.
+//
+    {
+	TheTrapCleanup=CTrapCleanup::New();
+	TRAPD(r,\
+		{\
+		for (TInt i=KTestCleanupStack;i>0;i--)\
+			CleanupStack::PushL((TAny*)1);\
+		CleanupStack::Pop(KTestCleanupStack);\
+		});
+	}
+
+
+LOCAL_D void ReadBIFL()
+	{
+	//
+	// Open BIF file
+	CBioInfoFileReader* bifFile=CBioInfoFileReader::NewLC(Fs,Arg);
+
+	//
+	// Read data from BIF file
+	console->Printf(_L("message_type_uid: %x(hex)\n"),bifFile->MessageTypeUid());
+	console->Printf(_L("message_parser_name: %S\n"),bifFile->MessageParserName());
+	console->Printf(_L("message_app_uid: %x(hex)\n"),bifFile->MessageAppUid());
+	console->Printf(_L("message_appctrl_name: %s\n"), bifFile->MessageAppCtrlName());
+	console->Printf(_L("general_data: {%x, %x, %x} (hex)\n"),bifFile->GeneralData1(),bifFile->GeneralData2(),bifFile->GeneralData3());
+	TBuf<80> buf = bifFile->Description();
+	console->Printf(_L("description: %S\n"), &buf);
+	buf = bifFile->IconsFilename();
+	console->Printf(_L("icons_filename: %S\n"), &buf);
+	buf = bifFile->FileExtension();
+	console->Printf(_L("file_extension: %S\n"), &buf);
+
+	const CArrayFixFlat<TInt16>* zoomlevels=bifFile->ZoomLevelsLC();
+	const TInt count=zoomlevels->Count();
+	console->Printf(_L("zoom_levels_count: %d\n"),count);
+	console->Printf(_L("zoom_levels: {"));
+	for(TInt cc=0;cc<count;++cc)
+		console->Printf(_L("%d "),zoomlevels->At(cc));
+	console->Printf(_L("}\n"));
+	CleanupStack::PopAndDestroy();		// zoomlevels
+	
+	const CArrayFixFlat<TBioMsgId>* ids=bifFile->IdsLC();
+	const TInt idCount=ids->Count();
+	console->Printf(_L("ids_count: %d\n"),idCount);
+	
+	for(TInt dd=0;dd<idCount;dd++)
+		{
+		console->Printf(_L("*** id#%d ***\n"),dd);
+
+		switch(ids->At(dd).iType)
+			{
+		case EBioMsgIdUnknown:
+			console->Printf(_L("type: EBioMsgIdUnknown\n"));
+			break;
+		case EBioMsgIdIana:
+			console->Printf(_L("type: Iana\n"));
+			break;
+		case EBioMsgIdNbs:
+			console->Printf(_L("type: Nbs\n"));
+			break;
+		case EBioMsgIdWap:
+			console->Printf(_L("type: Wap\n"));
+			break;
+		case EBioMsgIdWapSecure:
+			console->Printf(_L("type: WapSecure\n"));
+			break;
+		default:
+			console->Printf(_L("type: UNKNOWN (%d)\n"),ids->At(dd).iType);
+			};
+
+
+		switch(ids->At(dd).iConfidence)
+			{
+		case CApaDataRecognizerType::ECertain:
+			console->Printf(_L("confidence: Certain\n"));
+			break;
+		case CApaDataRecognizerType::EProbable:
+			console->Printf(_L("confidence: Probable\n"));
+			break;
+		case CApaDataRecognizerType::EPossible:
+			console->Printf(_L("confidence: Possible\n"));
+			break;
+		case CApaDataRecognizerType::EUnlikely:
+			console->Printf(_L("confidence: Unlikely\n"));
+			break;
+		case CApaDataRecognizerType::ENotRecognized:
+			console->Printf(_L("confidence: NotRecognized\n"));
+			break;
+	
+		default:
+			console->Printf(_L("confidence: UNKNOWN (%d)\n"),ids->At(dd).iConfidence);
+			};
+		
+		buf = ids->At(dd).iText;
+		console->Printf(_L("text: %S\n"), &buf);
+		console->Printf(_L("port: %d\n"),ids->At(dd).iPort);
+		console->Printf(_L("character_set: %x(hex)\n"),ids->At(dd).iCharacterSet);
+		console->Printf(_L("general_data: %x(hex)\n"),ids->At(dd).iGeneralIdData);
+		}
+
+	CleanupStack::PopAndDestroy();		// ids
+	
+	CleanupStack::PopAndDestroy();	// bifFile
+	}
+
+void DoConsole()
+	{
+	console=Console::NewL(_L("EPOC32 - BIF Viewer"),TSize(KConsFullScreen,KConsFullScreen));
+	CleanupStack::PushL(console);
+
+	Fs.Connect();
+
+	User::CommandLine(Arg);
+
+	console->Printf(_L("Reading from bif %S\n"),&Arg);
+	TRAPD(err,ReadBIFL());
+	if (err!=KErrNone)
+		console->Printf(_L("Leave code: %d\n"),err);
+	else
+		console->Printf(_L("BIF read success\n"));
+
+	Fs.Close();
+
+	console->Getch();
+
+	CleanupStack::PopAndDestroy(); // console
+	}
+
+GLDEF_C TInt E32Main()
+	{
+	__UHEAP_MARK;
+	setupCleanup();
+	TRAPD(err,DoConsole());
+	delete TheTrapCleanup;
+	__UHEAP_MARKEND;
+	return KErrNone;
+	}