commands/swi/swi.cpp
changeset 6 96d581d2147d
parent 0 7f656887cf89
--- a/commands/swi/swi.cpp	Wed Jul 07 16:07:08 2010 +0100
+++ b/commands/swi/swi.cpp	Fri Jul 09 10:11:55 2010 +0100
@@ -49,6 +49,7 @@
 CCmdSwi::CCmdSwi():
 CCommandBase(CCommandBase::EManualComplete)
 	{
+	SetExtension(this);
 	}
 
 const TDesC& CCmdSwi::Name() const
@@ -196,11 +197,88 @@
 // CCmdSwi::Finished
 // callback from the underlying AO's RunL
 //
-void CCmdSwi::Finished(const TInt aError)
+void CCmdSwi::Finished(TInt aError)
 	{
 	Complete(aError);
 	}
 
+#define CASE_RETURN_LIT(XXX, YYY) case XXX: { _LIT(_KLit, #YYY); return &_KLit; }
+const TDesC* CCmdSwi::StringifyError(TInt aError) const
+	{
+	switch (aError)
+		{
+		CASE_RETURN_LIT(-10100, KErrSISFieldIdMissing);
+		CASE_RETURN_LIT(-10101, KErrSISFieldLengthMissing);
+		CASE_RETURN_LIT(-10102, KErrSISFieldLengthInvalid);
+		CASE_RETURN_LIT(-10103, KErrSISStringInvalidLength);
+		CASE_RETURN_LIT(-10104, KErrSISSignedControllerSISControllerMissing);
+		CASE_RETURN_LIT(-10105, KErrSISControllerSISInfoMissing);
+		CASE_RETURN_LIT(-10106, KErrSISInfoSISUidMissing);
+		CASE_RETURN_LIT(-10107, KErrSISInfoSISNamesMissing);
+		CASE_RETURN_LIT(-10108, KErrSISFieldBufferTooShort);
+		CASE_RETURN_LIT(-10109, KErrSISStringArrayInvalidElement);
+		CASE_RETURN_LIT(-10110, KErrSISInfoSISVendorNamesMissing);
+		CASE_RETURN_LIT(-10111, KErrSISInfoSISVersionMissing);
+		CASE_RETURN_LIT(-10112, KErrSISControllerSISSupportedLanguagesMissing);
+		CASE_RETURN_LIT(-10113, KErrSISSupportedLanguagesInvalidElement);
+		CASE_RETURN_LIT(-10114, KErrSISLanguageInvalidLength);
+		CASE_RETURN_LIT(-10115, KErrSISContentsSISSignedControllerMissing);
+		CASE_RETURN_LIT(-10116, KErrSISContentsSISDataMissing);
+		CASE_RETURN_LIT(-10117, KErrSISDataSISFileDataUnitMissing);
+		CASE_RETURN_LIT(-10118, KErrSISFileDataUnitTargetMissing);
+		CASE_RETURN_LIT(-10119, KErrSISFileOptionsMissing);
+		CASE_RETURN_LIT(-10120, KErrSISFileDataUnitDescriptorMissing);
+		CASE_RETURN_LIT(-10121, KErrSISFileDataDescriptionMissing);
+		CASE_RETURN_LIT(-10122, KErrSISContentsMissing);
+		CASE_RETURN_LIT(-10123, KErrSISEmbeddedControllersMissing);
+		CASE_RETURN_LIT(-10124, KErrSISEmbeddedDataUnitsMissing);
+		CASE_RETURN_LIT(-10125, KErrSISControllerOptionsMissing);
+		CASE_RETURN_LIT(-10126, KErrSISExpressionMissing);
+		CASE_RETURN_LIT(-10127, KErrSISExpressionStringValueMissing);
+		CASE_RETURN_LIT(-10128, KErrSISOptionsStringMissing);
+		CASE_RETURN_LIT(-10129, KErrSISFileOptionsExpressionMissing);
+		CASE_RETURN_LIT(-10130, KErrSISExpressionHeadValueMissing);
+		CASE_RETURN_LIT(-10131, KErrSISEmbeddedSISOptionsMissing);
+		CASE_RETURN_LIT(-10132, KErrSISInfoSISUpgradeRangeMissing);
+		CASE_RETURN_LIT(-10133, KErrSISDependencyMissingUid);
+		CASE_RETURN_LIT(-10134, KErrSISDependencyMissingVersion);
+		CASE_RETURN_LIT(-10135, KErrSISDependencyMissingNames);
+		CASE_RETURN_LIT(-10136, KErrSISPrerequisitesMissingDependency);
+		CASE_RETURN_LIT(-10137, KErrSISControllerMissingPrerequisites);
+		CASE_RETURN_LIT(-10138, KErrSISUpgradeRangeMissingVersion);
+		CASE_RETURN_LIT(-10139, KErrSISUnexpectedFieldType);
+		CASE_RETURN_LIT(-10140, KErrSISExpressionUnknownOperator);
+		CASE_RETURN_LIT(-10141, KErrSISArrayReadError);
+		CASE_RETURN_LIT(-10142, KErrSISArrayTypeMismatch);
+		CASE_RETURN_LIT(-10143, KErrSISInvalidStringLength);
+		CASE_RETURN_LIT(-10144, KErrSISCompressionNotSupported);
+		CASE_RETURN_LIT(-10145, KErrSISTooDeeplyEmbedded);
+		CASE_RETURN_LIT(-10146, KErrSISInvalidTargetFile);
+		CASE_RETURN_LIT(-10147, KErrSISWouldOverWrite);
+		CASE_RETURN_LIT(-10148, KErrSISInfoMissingRemoveDirectories);
+		CASE_RETURN_LIT(-10149, KErrSISNotEnoughSpaceToInstall);
+		CASE_RETURN_LIT(-10200, KErrInstallerLeave);
+		CASE_RETURN_LIT(-10250, KErrPolicyFileCorrupt);
+		CASE_RETURN_LIT(-10251, KErrSignatureSchemeNotSupported);
+		CASE_RETURN_LIT(-10252, KErrDigestNotSupported);
+		CASE_RETURN_LIT(-10253, KErrBadHash);
+		CASE_RETURN_LIT(-10254, KErrSecurityError);
+		CASE_RETURN_LIT(-10263, KErrBadUsage);
+		CASE_RETURN_LIT(-10260, KErrInvalidType); 
+		CASE_RETURN_LIT(-10261, KErrInvalidExpression); 
+		CASE_RETURN_LIT(-10262, KErrExpressionToComplex); 
+		CASE_RETURN_LIT(-10255, KErrMissingBasePackage); 
+		CASE_RETURN_LIT(-10256, KErrInvalidUpgrade); 
+		CASE_RETURN_LIT(-10257, KErrInvalidEclipsing);
+		CASE_RETURN_LIT(-10258, KErrWrongHeaderFormat);
+		CASE_RETURN_LIT(-10259, KErrCapabilitiesMismatch); 
+		CASE_RETURN_LIT(-10270, KErrLegacySisFile);
+		CASE_RETURN_LIT(-10271, KErrInvalidSoftwareTypeRegistrationFile); 
+		default:
+			return NULL;
+		}
+	}
+
 //
 // Sis installer AO
 //