diff -r 29b1cd4cb562 -r b4a7eebaaebf atext/server/inc/atextmetadata.h --- a/atext/server/inc/atextmetadata.h Fri Jan 15 08:13:17 2010 +0200 +++ b/atext/server/inc/atextmetadata.h Mon Jan 18 21:23:18 2010 +0200 @@ -15,7 +15,6 @@ * */ - #ifndef C_CATEXTMETADATA_H #define C_CATEXTMETADATA_H @@ -26,13 +25,20 @@ class CATExtPluginBase; class CATExtListen; -/** Support types supported by RSS file (M|P|S) */ +/** Panic categories */ +enum TATExtPanicCategories + { + EPanicCategoryFaultyMaster = 1, + EPanicCategoryPluginType = 2 + }; + +/** Support types supported by RSS file (M|P|O) */ enum TATExtSupportType { ESupportTypeUndefined = KErrNotFound, ESupportTypeMaster = 0, - ESupportTypePrimary, - ESupportTypeSecondary + ESupportTypePartial, + ESupportTypeObserver }; /** Operation types, either for command handling or for URC receiving */ @@ -128,25 +134,25 @@ public: - TATExtSearchHelper() : iPrimaryIndex( KErrNotFound ), - iSecondaryIndex( KErrNotFound ) {} + TATExtSearchHelper() : iPartialIndex( KErrNotFound ), + iObserverIndex( KErrNotFound ) {} /** - * Index to the primary entry + * Index to the partial entry */ - TInt iPrimaryIndex; + TInt iPartialIndex; /** - * Index to the secondary entry + * Index to the observer entry */ - TInt iSecondaryIndex; + TInt iObserverIndex; }; /** * Class to store data needed for one AT command support. * This includes the support's type and the plugin entry. - * Thus one plugin's RSS file may contain multiple M|P|S entries. + * Thus one plugin's RSS file may contain multiple M|P|O entries. * * @since S60 v5.0 */ @@ -156,7 +162,7 @@ public: /** - * Support's type (M|P|S) + * Support's type (M|P|O) */ TATExtSupportType iSupportType; @@ -313,7 +319,10 @@ CArrayFixFlat* aSupport ) : iAtCmdFull( aAtCmdFull ), iMessage( aMessage ), - iSupport( aSupport ) {} + iSupport( aSupport ), + iEntry( NULL ), + iStartIndex( KErrNotFound ), + iSupportFound( EFalse ){} /** * Full AT command for which to check the support @@ -328,7 +337,7 @@ /** * AT command's plugin entry support data. - * Used by SendToMultipleSecondaryL() and FindFirstSecondarySupportL(). + * Used by SendToMultipleObserverL() and FindFirstObserverSupportL(). */ CArrayFixFlat* iSupport; @@ -338,11 +347,16 @@ TATExtPluginEntry* iEntry; /** - * Starts index for searches with HandlePrimaryPluginSupportL() and - * HandleSecondaryPluginSupportL() + * Start index for searches with HandlePartialAndMasterPluginSupportL() and + * HandleObserverPluginSupportL() */ TInt iStartIndex; + /** + * Found plugin support for HandlePartialAndMasterPluginSupportL(). + */ + TBool iSupportFound; + }; /** @@ -835,7 +849,7 @@ * @param aCommands Command buffer from where to extract the next subcommand * @param aStartIndex Start index for the found command * @param aEndIndex End index for the found command - * @param aSupportType Support's type (M|P|S) + * @param aSupportType Support's type (M|P|O) * @return Symbian error code on error, KErrNone otherwise */ TInt ExtractNextCommand( const TDesC8& aCommands, @@ -855,7 +869,7 @@ * @param aAtCmdBase Base AT command which to add to support data * (base part without parameters) * @param aPluginUid Plugin's UID to find from plugin data - * @param aSupportType Support's type (M|P|S) + * @param aSupportType Support's type (M|P|O) * @param aCleanupInfo Cleanup information * @return None */ @@ -870,7 +884,7 @@ * @since S60 5.0 * @param aEntries Plugin entries for support * @param aEntryIndex Plugin index entry - * @param aSupportType Support's type (M|P|S) + * @param aSupportType Support's type (M|P|O) * @param aSearchHelper The search helper * @return Index to the added entry, KErrNotSupported otherwise */ @@ -893,26 +907,26 @@ TATExtOneCmdSupport& aOneCmdSupport ); /** - * Adds new primary plugin entry link from plugin support entry to plugin + * Adds new partial plugin entry link from plugin support entry to plugin * entry * * @since S60 5.0 * @return Index to the added entry, KErrNotSupported otherwise */ - TInt AddNewPrimaryMetadataEntryLinkL( + TInt AddNewPartialMetadataEntryLinkL( CArrayFixFlat* aEntries, TATExtSearchHelper& aSearchHelper, TATExtOneCmdSupport& aOneCmdSupport ); /** - * Adds new secondary plugin entry link from plugin support entry to plugin - * entry. Search starts from the front as there could be multiple S plugins + * Adds new observer plugin entry link from plugin support entry to plugin + * entry. Search starts from the front as there could be multiple O plugins * but only one or two M/P plugins. * * @since S60 5.0 * @return Index to the added entry, KErrNotSupported otherwise */ - TInt AddNewSecondaryMetadataEntryLinkL( + TInt AddNewObserverMetadataEntryLinkL( CArrayFixFlat* aEntries, TATExtSearchHelper& aSearchHelper, TATExtOneCmdSupport& aOneCmdSupport ); @@ -1054,56 +1068,50 @@ void CreateSelfReplyData( const RMessage2& aMessage ); /** - * Handles support when a master plugin is detected in the plugin data - * via support data's link (support for a full AT command). If a master - * plugin is detected then reply is detected from that plugin. No further - * sending to primary or secondary plugins is repformed. + * Handles support when a master or partial plugin is detected in the plugin + * data via support data's link. If a partial or master plugin is detected + * then reply is expected from that plugin. Also if one or more observer + * plugins are detected then no reply is expected from them. * * @since S60 5.0 - * @param aEntrySupport Support data to the first found master plugin - * @param aReplyExpected ETrue if reply is expected from the master plugin, - * EFalse if no reply is expected from the master plugin, + * @param aEntrySupport Support data to the first found partial or master plugin + * @param aStartIndex Start index to search the next observer plugin + * @param aReplyExpected ETrue if reply is expected from the partial or master plugin, + * EFalse if no reply is expected from the partial or master plugin, * (i.e. no support found) * @return ETrue if support found, EFalse otherwise */ - TBool HandleMasterPluginSupportL( TATExtEntrySupport& aEntrySupport, - TBool& aReplyExpected ); + TBool HandleMasterAndPartialPluginSupportL( + TATExtEntrySupport& aEntrySupport, + TInt aStartIndex, + TBool& aReplyExpected ); /** - * Handles support when a primary plugin is detect in the plugin data - * via support data's link. If a primary plugin is detected then reply is - * expected from that plugin. Also if one or more secondary plugins are - * detected then no reply is expected from them. - * - * @since S60 5.0 - * @param aEntrySupport Support data to the first found primary plugin - * @param aStartIndex Start index to search the next secondary plugin - * @param aReplyExpected ETrue if reply is expected from the primary plugin, - * EFalse if no reply is expected from the primary plugin, - * (i.e. no support found) - * @return ETrue if support found, EFalse otherwise - */ - TBool HandlePrimaryPluginSupportL( TATExtEntrySupport& aEntrySupport, - TInt aStartIndex, - TBool& aReplyExpected ); - - /** - * Handles support when a secondary plugin is detected in the plugin data - * via support data's link. If only one secondary plugin is detected then - * reply is expected from that plugin. Instead, if more than one secondary + * Handles support when a observer plugin is detected in the plugin data + * via support data's link. If only one observer plugin is detected then + * reply is expected from that plugin. Instead, if more than one observer * plugins are detected then no reply is expected from them. * * @since S60 5.0 - * @param aEntrySupport Support data to the first found secondary plugin + * @param aEntrySupport Support data to the first found observer plugin * entry - * @param aStartIndex Start index to search the next secondary plugin + * @param aStartIndex Start index to search the next observer plugin * @param aReplyExpected ETrue if reply is expected from one or more plugins, * EFalse if no reply is expected from any of the plugins * @return ETrue if support found, EFalse otherwise */ - TBool HandleSecondaryPluginSupportL( TATExtEntrySupport& aEntrySupport, - TInt aStartIndex, - TBool& aReplyExpected ); + TBool HandleObserverPluginSupportL( TATExtEntrySupport& aEntrySupport, + TInt aStartIndex, + TBool& aReplyExpected ); + + /** + * Finds exclusive partial plugin support + * + * @since S60 5.0 + * @param aEntrySupport Support data to the first found partial plugin entry + * @return ETrue if exclusive support found, EFalse otherwise + */ + TBool FindExclusivePartialSupportL( TATExtEntrySupport& aEntrySupport ); /** * Finds support entries from support data for a given base AT command @@ -1173,27 +1181,27 @@ const TDesC8* aAtCmdFull=NULL ); /** - * Sends an AT commands to multiple secondary plugins, starting from a + * Sends an AT commands to multiple observer plugins, starting from a * given position. * * @since S60 5.0 * @param aEntrySupport Entry support data to position from where to start - * sending to the found secondary plugins + * sending to the found observer plugins * @param aAtCmdFull Full AT command to send (base part + parameters) * @return None */ - void SendToMultipleSecondaryL( TATExtEntrySupport& aEntrySupport, + void SendToMultipleObserverL( TATExtEntrySupport& aEntrySupport, const TDesC8* aAtCmdFull ); /** - * Finds the first secondary plugin support from a given starting position + * Finds the first observer plugin support from a given starting position * * @since S60 5.0 * @param aEntrySupport Entry support data to the next entry after the found - * secondary plugin entry; marks the start for search + * observer plugin entry; marks the start for search * @return ETrue if support found, EFalse otherwise */ - TBool FindFirstSecondarySupportL( TATExtEntrySupport& aEntrySupport ); + TBool FindFirstObserverSupportL( TATExtEntrySupport& aEntrySupport ); /** * Extracts one NVRAM entry from a pipe-character delimited NVRAM buffer