diff -r aa99f2208aad -r b8d18c84f71c localisation/apparchitecture/apparc/APAID.CPP --- a/localisation/apparchitecture/apparc/APAID.CPP Wed Jul 28 16:03:37 2010 +0100 +++ b/localisation/apparchitecture/apparc/APAID.CPP Tue Aug 03 10:20:34 2010 +0100 @@ -1,7 +1,7 @@ // 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 the License "Eclipse Public License v1.0" +// 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". // @@ -11,136 +11,84 @@ // Contributors: // // Description: +// apaid.cpp // - +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#if !defined(__APAID_PARTNER_H__) +#include "apaidpartner.h" +#endif +#endif //SYMBIAN_ENABLE_SPLIT_HEADERS #include #include #include "APASTD.H" +const TInt KMaxOpaqueDataLength = 0x1000; // maximum length of opaque data that can be passed between client and apparc server via a TApaAppServiceInfo object - this can be increased in future if needed -///////////////////////////// +// // TApaAppIdentifier -///////////////////////////// +// -EXPORT_C TApaAppIdentifier::TApaAppIdentifier() /** Constructs an empty application identifier. The data is not initialised. */ +EXPORT_C TApaAppIdentifier::TApaAppIdentifier() {} -EXPORT_C TApaAppIdentifier::TApaAppIdentifier(TUid aAppUid,const TFileName& aDllName) - : iAppUid(aAppUid), - iFullName(aDllName) /** Constructs an application identifier from the specified application DLL file name and extension, and the specified application UID. @param aAppUid The application specific UID. @param aDllName The filename and extension of the application DLL. */ +EXPORT_C TApaAppIdentifier::TApaAppIdentifier(TUid aAppUid,const TFileName& aDllName) + : iAppUid(aAppUid), + iFullName(aDllName) {} -EXPORT_C void TApaAppIdentifier::ExternalizeL(RWriteStream& aStream)const /** Externalises the application identifier to a write stream. @param aStream The write stream. */ +EXPORT_C void TApaAppIdentifier::ExternalizeL(RWriteStream& aStream)const { aStream<< iAppUid; aStream<< iFullName; } -EXPORT_C void TApaAppIdentifier::InternalizeL(RReadStream& aStream) /** Internalises the application identifier from a read stream. @param aStream The read stream. */ +EXPORT_C void TApaAppIdentifier::InternalizeL(RReadStream& aStream) { aStream>> iAppUid; aStream>> iFullName; } -///////////////////////////// -// TApaAppEntry -///////////////////////////// - -EXPORT_C TApaAppEntry::TApaAppEntry() - : iUidType(TUidType()), - iFullName(KNullDesC) -/** Constructs an empty application entry object. - -The full path name is empty, and the triplet of UIDs forming the UID type -are set to null UIDs. */ - {} - - -EXPORT_C TApaAppEntry::TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName) - : iUidType(aAppUidType), - iFullName(aDllName) -/** Constructs an application entry object from the specified application -DLL full path name and UID type. -@param aAppUidType UID type. -@param aDllName Application DLL full path name. */ - {} - - -EXPORT_C void TApaAppEntry::ExternalizeL(RWriteStream& aStream)const -/** Externalises the application entry to a write stream. +// +// TApaAppInfo +// -@param aStream The write stream. */ - { - aStream<< iUidType[0]; - aStream<< iUidType[1]; - aStream<< iUidType[2]; - aStream<< iFullName; - } - - -EXPORT_C void TApaAppEntry::InternalizeL(RReadStream& aStream) -/** Internalises the application entry from a read stream. +/** Constructs an empty application information object. -@param aStream The read stream. */ - { - TUid uid1; - TUid uid2; - TUid uid3; - aStream>> uid1; - aStream>> uid2; - aStream>> uid3; - iUidType = TUidType(uid1,uid2,uid3); - aStream>> iFullName; - } - - -///////////////////////////// -// TApaAppInfo -///////////////////////////// - +The full path name is empty, the captions are empty and the application specific +UID is set to the null UID. */ EXPORT_C TApaAppInfo::TApaAppInfo() : iUid(TUid()), iFullName(KNullDesC), iCaption(KNullDesC), iShortCaption(KNullDesC) -/** Constructs an empty application information object. - -The full path name is empty, the captions are empty and the application specific -UID is set to the null UID. */ {} - -EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption) - : iUid(aAppUid), - iFullName(aDllName), - iCaption(aCaption), - iShortCaption(aCaption) /** Constructs an application information object from the specified full DLL path name, UID and full length caption. @param aAppUid The application specific UID. @param aDllName The full path name of the application DLL. @param aCaption The application caption. */ - {} - -EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption,const TApaAppCaption& aShortCaption) +EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption) : iUid(aAppUid), iFullName(aDllName), iCaption(aCaption), - iShortCaption(aShortCaption) + iShortCaption(aCaption) + {} + /** Constructs an application information object from the specified full DLL path name, UID, caption and short caption. @@ -148,12 +96,17 @@ @param aDllName The full path name of the application DLL. @param aCaption The application caption. @param aShortCaption The application short caption. */ +EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption,const TApaAppCaption& aShortCaption) + : iUid(aAppUid), + iFullName(aDllName), + iCaption(aCaption), + iShortCaption(aShortCaption) {} -EXPORT_C void TApaAppInfo::ExternalizeL(RWriteStream& aStream)const /** Externalises the application information to a write stream. @param aStream The write stream. */ +EXPORT_C void TApaAppInfo::ExternalizeL(RWriteStream& aStream)const { aStream<< iUid; aStream<< iFullName; @@ -161,10 +114,10 @@ aStream<< iShortCaption; } -EXPORT_C void TApaAppInfo::InternalizeL(RReadStream& aStream) /** Internalises the application information from a read stream. @param aStream The read stream. */ +EXPORT_C void TApaAppInfo::InternalizeL(RReadStream& aStream) { aStream>> iUid; aStream>> iFullName; @@ -173,17 +126,17 @@ } -///////////////////////////// +// // TApaAppViewInfo -///////////////////////////// +// -EXPORT_C TApaAppViewInfo::TApaAppViewInfo() - : iUid(KNullUid), - iViewCaption(KNullDesC) /** Constructs an empty object. Specifically, it sets the view UID to KNullUid and empties the application caption, i.e. sets it to KNullDesC. */ +EXPORT_C TApaAppViewInfo::TApaAppViewInfo() + : iUid(KNullUid), + iViewCaption(KNullDesC) {} @@ -194,10 +147,10 @@ {} -EXPORT_C void TApaAppViewInfo::ExternalizeL(RWriteStream& aStream)const /** Externalises the application view information to a write stream. @param aStream The write stream. */ +EXPORT_C void TApaAppViewInfo::ExternalizeL(RWriteStream& aStream)const { aStream<< iUid; aStream<< iViewCaption; @@ -205,10 +158,10 @@ } -EXPORT_C void TApaAppViewInfo::InternalizeL(RReadStream& aStream) /** Internalises the application view information from a read stream. @param aStream The read stream. */ +EXPORT_C void TApaAppViewInfo::InternalizeL(RReadStream& aStream) { aStream>> iUid; aStream>> iViewCaption; @@ -216,29 +169,20 @@ } -/////////////////////////////////////// +// // class TApaAppCapability -/////////////////////////////////////// +// EXPORT_C void TApaAppCapability::InternalizeL(RReadStream& aStream) { DoInternalizeL(aStream, iLaunchInBackground, iGroupName); } -EXPORT_C void TApaAppCapability::Internalize7_0L(RReadStream& aStream) -/** -@deprecated -*/ - { - TBool dummyBool; - TApaAppGroupName dummyGroupName; - DoInternalizeL(aStream,dummyBool,dummyGroupName); - } - -void TApaAppCapability::DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName) /** Internalises the application capabilities from a read stream. -@param aStream The read stream. */ +@param aStream The read stream. +*/ +void TApaAppCapability::DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName) { TInt version = aStream.ReadInt32L(); iEmbeddability = TEmbeddability(aStream.ReadInt32L()); @@ -268,10 +212,11 @@ Panic(EDPanicInvalidVersionNumber); } -EXPORT_C void TApaAppCapability::ExternalizeL(RWriteStream& aStream) const /** Externalises the application capabilities to a write stream. -@param aStream The write stream. */ +@param aStream The write stream. +*/ +EXPORT_C void TApaAppCapability::ExternalizeL(RWriteStream& aStream) const { aStream.WriteInt32L(EVersion); aStream.WriteInt32L(iEmbeddability); @@ -281,27 +226,14 @@ aStream << iGroupName; aStream.WriteUint32L(iAttributes); } - -const TInt KOldVersion=1; - -EXPORT_C void TApaAppCapability::Externalize7_0L(RWriteStream& aStream) const -/** Externalises the application capabilities to a write stream. - -@param aStream The write stream. -@deprecated*/ - { - aStream.WriteInt32L(KOldVersion); - aStream.WriteInt32L(iEmbeddability); - aStream.WriteInt32L(iSupportsNewFile); - aStream.WriteInt32L(iAppIsHidden); - } - -EXPORT_C void TApaAppCapability::CopyCapability(TDes8& aDest,const TDesC8& aSource) + /** A utility function that can copy capability information from one descriptor to another. @param aDest Target descriptor. -@param aSource Source descriptor. */ +@param aSource Source descriptor. +*/ +EXPORT_C void TApaAppCapability::CopyCapability(TDes8& aDest,const TDesC8& aSource) { TInt maxLen=aDest.MaxLength(); aDest.FillZ(maxLen); // zero fill in case aSource is shorter @@ -310,60 +242,138 @@ } -/////////////////////////////////////// +// // class TApaEmbeddabilityFilter -/////////////////////////////////////// +// + +/** Constructs an empty embeddability filter. */ EXPORT_C TApaEmbeddabilityFilter::TApaEmbeddabilityFilter() : iEmbeddabilityFlags(0) -/** Constructs an empty embeddability filter. */ { } -EXPORT_C void TApaEmbeddabilityFilter::AddEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) /** Adds aEmbeddability to the filter. @param aEmbeddability TEmbeddability value to add to the filter. */ +EXPORT_C void TApaEmbeddabilityFilter::AddEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) { __ASSERT_ALWAYS(aEmbeddability >= 0 && static_cast(aEmbeddability) < (sizeof(TUint)*8), Panic(EPanicEmbeddabilityOutOfRange)); iEmbeddabilityFlags |= (1 << aEmbeddability); } -EXPORT_C TBool TApaEmbeddabilityFilter::MatchesEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) const /** Compares aEmbeddability with the filter. @param aEmbeddability TEmbeddability value to compare. @return True, if aEmbeddability is included in the filter; false, otherwise. */ +EXPORT_C TBool TApaEmbeddabilityFilter::MatchesEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) const { __ASSERT_ALWAYS(aEmbeddability >= 0 && static_cast(aEmbeddability) < (sizeof(TUint)*8), Panic(EPanicEmbeddabilityOutOfRange)); TUint embeddabilityFlag = (1 << aEmbeddability); - if (embeddabilityFlag & iEmbeddabilityFlags) - { - return ETrue; - } - return EFalse; + return (embeddabilityFlag & iEmbeddabilityFlags); } + // -// CApaAppFinder +// class TApaAppServiceInfo // -/** Constructor for CApaAppFinder */ -EXPORT_C CApaAppFinder::CApaAppFinder() +EXPORT_C TApaAppServiceInfo::TApaAppServiceInfo() + : iUid(KNullUid), + iDataTypes(0), + iOpaqueData(NULL) { } -/* Reserved for future use */ -EXPORT_C void CApaAppFinder::CApaAppFinder_Reserved1() +EXPORT_C TApaAppServiceInfo::TApaAppServiceInfo(TUid aUid, + CArrayFixFlat* aDataTypes, HBufC8* aOpaqueData) + : iUid(aUid), + iDataTypes(aDataTypes), + iOpaqueData(aOpaqueData) + { + __ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer)); + __ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer)); + } + +EXPORT_C void TApaAppServiceInfo::ExternalizeL(RWriteStream& aStream) const { + __ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer)); + __ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer)); + aStream << iUid; + aStream << *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above + aStream << *iOpaqueData;//lint !e613 Possible use of null pointer - Asserted above + } + +EXPORT_C void TApaAppServiceInfo::InternalizeL(RReadStream& aStream) + { + aStream >> iUid; + iDataTypes = new(ELeave) CArrayFixFlat(1); + aStream >> *iDataTypes; + iOpaqueData = HBufC8::NewL(aStream, KMaxOpaqueDataLength); + } + +EXPORT_C void TApaAppServiceInfo::Release() + { + if (iDataTypes) + { + iDataTypes->Reset(); + delete iDataTypes; + } + if (iOpaqueData) + { + delete iOpaqueData; + iOpaqueData = NULL; + } } -/* Reserved for future use */ -EXPORT_C void CApaAppFinder::CApaAppFinder_Reserved2() +EXPORT_C CArrayFixFlat& TApaAppServiceInfo::DataTypes() { + __ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer)); + return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above + } + +/** Returns the service UID. + +Note that some APIs may store a UID other than a service UID +in a TApaAppServiceInfo object. Such APIs clearly state what +the UID represents. + +@return the service UID. +*/ +EXPORT_C TUid TApaAppServiceInfo::Uid() const + { + return iUid; } +EXPORT_C const CArrayFixFlat& TApaAppServiceInfo::DataTypes() const + { + __ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer)); + return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above + } + +/** Returns the service implementation's opaque data. + +For each service UID registered by an application, the associated +opaque data indicates how the service is implemented by that application. + +The meaning of the opaque data is not known to the framework, it will vary +according to the service. + +For some services the opaque data may be a name intended for user display, +for others it may be structured data that the service's client-side code can interpret. + +@return the service implementation's opaque data. +*/ +EXPORT_C const TDesC8& TApaAppServiceInfo::OpaqueData() const + { + if (iOpaqueData) + return *iOpaqueData; + + return KNullDesC8; + } + + // -// CApaAppServiceInfoArray +// class CApaAppServiceInfoArray // EXPORT_C CApaAppServiceInfoArray::CApaAppServiceInfoArray()