--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/refsoftwareappmgr/source/appmanager.cpp Tue Aug 31 15:21:33 2010 +0300
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+#include <usif/scr/scr.h>
+#include <e32cons.h>
+#include "command.h"
+
+using namespace Usif;
+
+_LIT(KTxtAppTitle, "Reference Application Manager\n");
+_LIT(KTxtAppVersion, "Version 1.00(0)\n");
+_LIT(KTxtCopyright, "Copyright (c) Symbian Software Ltd 2008. All rights reserved.\n");
+
+_LIT(KTxtEPOC32EX,"EXAMPLES");
+_LIT(KTxtFormatFailed,"\nFailed with leave code = %d\n");
+_LIT(KTxtPressToExit, "Press any key to exit...");
+_LIT(KTxtPressToContinue, "\nPress any key to continue...\n\n");
+
+_LIT(KTxtHelp01, "\nThe syntax of the command is incorrect. Use the following options:\n\n");
+_LIT(KTxtHelp02, "--list [--name name] [--vendor vendor] [--type type] [--removable|nonremovable]\n");
+_LIT(KTxtHelp03, "[--activated|deactivated] [--drives drivelist] [--property name value [language]]\n");
+_LIT(KTxtHelp04, "[--intproperty name value] [--file path] [--locale language]\n\n");
+
+_LIT(KTxtHelp05, "OPTIONS\n\n");
+_LIT(KTxtHelp06, " --name NAME\n");
+_LIT(KTxtHelp07, " lists components with name NAME\n\n");
+_LIT(KTxtHelp08, " --vendor VENDOR\n");
+_LIT(KTxtHelp09, " lists components with vendor VENDOR\n\n");
+_LIT(KTxtHelp10, " --type TYPE\n");
+_LIT(KTxtHelp11, " lists components with software type TYPE\n\n");
+_LIT(KTxtHelp12, " --removable\n");
+_LIT(KTxtHelp13, " lists removable components only\n\n");
+_LIT(KTxtHelp16, " --activated\n");
+_LIT(KTxtHelp17, " lists components with SCOMO state Activated\n\n");
+_LIT(KTxtHelp18, " --deactivated\n");
+_LIT(KTxtHelp19, " lists components with SCOMO state Deactivated\n\n");
+_LIT(KTxtHelp20, " --drives DRIVES\n");
+_LIT(KTxtHelp21, " lists components whose files were installed to DRIVES\n\n");
+_LIT(KTxtHelp22, " --property N V L\n");
+_LIT(KTxtHelp23, " lists components with string property name N and value V and optional language code L, for example English=1, French=2, German=3\n\n");
+_LIT(KTxtHelp26, " --locale LANGUAGE\n");
+_LIT(KTxtHelp27, " defines language LANGUAGE to be used to find the component info, for example English=1, French=2, German=3\n\n");
+
+_LIT(KTxtHelp30, "--delete ComponentID\n");
+_LIT(KTxtHelp31, " deletes component with ComponentID. The ID of a component to be removed can be obtained using the 'list' command.\n\n");
+
+_LIT(KTxtHelp40, "EXAMPLES\n\n");
+_LIT(KTxtHelp41, " refappmanager --list\n\n");
+_LIT(KTxtHelp42, " refappmanager --list --type native\n\n");
+_LIT(KTxtHelp43, " refappmanager --list --vendor Symbian\n\n");
+_LIT(KTxtHelp44, " refappmanager --list --type java --drives cef --activated --locale 2\n\n");
+_LIT(KTxtHelp45, " refappmanager --delete 6\n\n");
+
+// ==================================================================================
+
+// Start-up functions and helpers
+LOCAL_C void InitL();
+LOCAL_C void ExecCommandL(CConsoleBase& aConsole);
+LOCAL_C void DisplayHelp(CConsoleBase& aConsole);
+
+// Main function called by E32
+GLDEF_C TInt E32Main()
+ {
+ // Get clean-up stack
+ CTrapCleanup* cleanup=CTrapCleanup::New();
+
+ __UHEAP_MARK;
+
+ // Call InitL() and catch all leaves
+ TRAPD(error,InitL());
+ __ASSERT_ALWAYS(!error,User::Panic(KTxtEPOC32EX,error));
+
+ __UHEAP_MARKEND;
+
+ // Destroy clean-up stack
+ delete cleanup;
+
+ return 0;
+ }
+
+// ==================================================================================
+
+LOCAL_C void InitL()
+ {
+ // Create console
+ CConsoleBase* console = Console::NewL(KTxtAppTitle,TSize(KConsFullScreen,KConsFullScreen));
+ CleanupStack::PushL(console);
+
+ // Call ExecCommandL() and catch all leaves
+ TRAPD(err, ExecCommandL(*console));
+ if (err == KErrArgument)
+ {
+ DisplayHelp(*console);
+ }
+ else if (err != KErrNone)
+ {
+ console->Printf(KTxtFormatFailed, err);
+ }
+
+ // Wait for any key
+ console->Printf(KTxtPressToExit);
+ console->Getch();
+
+ CleanupStack::PopAndDestroy(console);
+ }
+
+// ==================================================================================
+
+LOCAL_C void ExecCommandL(CConsoleBase& aConsole)
+ {
+ // Display info
+ aConsole.Printf(KTxtAppTitle);
+ aConsole.Printf(KTxtAppVersion);
+ aConsole.Printf(KTxtCopyright);
+
+ // Create parser
+ CCommandLineParser* parser = CCommandLineParser::NewLC();
+
+ // Instantiate and register the 'list' and 'delete' commands. If we had
+ // more commands it could be more efficient to implement a command factory
+ // in order to instantiate only a single command on demand. This example
+ // application provides only two commands and therefore the above mentioned
+ // optimisation isn't needed here.
+ parser->RegisterCommandL(*CListCommand::NewLC());
+ parser->RegisterCommandL(*CDeleteCommand::NewLC());
+
+ // Parse input and find the matching command
+ CConsoleCommand& cmd = parser->ParseL();
+
+ // Execute the command
+ cmd.ExecuteL(aConsole);
+
+ // Cleanup the parser and commands
+ CleanupStack::PopAndDestroy(3, parser);
+ }
+
+// ==================================================================================
+
+LOCAL_C void DisplayHelp(CConsoleBase& aConsole)
+ {
+ aConsole.Printf(KTxtHelp01);
+ aConsole.Printf(KTxtHelp02);
+ aConsole.Printf(KTxtHelp03);
+ aConsole.Printf(KTxtHelp04);
+ aConsole.Printf(KTxtHelp05);
+ aConsole.Printf(KTxtHelp06);
+ aConsole.Printf(KTxtHelp07);
+ aConsole.Printf(KTxtHelp08);
+ aConsole.Printf(KTxtHelp09);
+
+ aConsole.Printf(KTxtPressToContinue);
+ aConsole.Getch();
+
+ aConsole.Printf(KTxtHelp10);
+ aConsole.Printf(KTxtHelp11);
+ aConsole.Printf(KTxtHelp12);
+ aConsole.Printf(KTxtHelp13);
+ aConsole.Printf(KTxtHelp16);
+ aConsole.Printf(KTxtHelp17);
+ aConsole.Printf(KTxtHelp18);
+ aConsole.Printf(KTxtHelp19);
+ aConsole.Printf(KTxtHelp20);
+ aConsole.Printf(KTxtHelp21);
+
+ aConsole.Printf(KTxtPressToContinue);
+ aConsole.Getch();
+
+ aConsole.Printf(KTxtHelp22);
+ aConsole.Printf(KTxtHelp23);
+ aConsole.Printf(KTxtHelp26);
+ aConsole.Printf(KTxtHelp27);
+ aConsole.Printf(KTxtHelp30);
+ aConsole.Printf(KTxtHelp31);
+
+ aConsole.Printf(KTxtPressToContinue);
+ aConsole.Getch();
+
+ aConsole.Printf(KTxtHelp40);
+ aConsole.Printf(KTxtHelp41);
+ aConsole.Printf(KTxtHelp42);
+ aConsole.Printf(KTxtHelp43);
+ aConsole.Printf(KTxtHelp44);
+ aConsole.Printf(KTxtHelp45);
+ }