|
|
|
Location:
banamedplugins.h
Link against: bafl.lib
CBaNamedPlugins
Supported from 6.1
A localised list of the names of the plug-ins available on the phone for a particular plug-in framework.
This class should be used by applications that display lists of plug-ins. It is provided so that the plug-in names displayed to users:
are not filenames
are localisable, i.e. for a multi-language ROM device, plug-in names must be translated into the correct language and sorted according to the locale's collation rules
can be filtered depending on the current locale, i.e. the user will not necessarily see the names of all plug-ins for a given framework for every language of a multi-language ROM.
Note that the class MDesC16Array is shown in the
derivation tree. The class definition for CBaNamedPlugins,
however, uses the typedef MDesCArray. In 6.1 builds, the symbol
MDesCArray always resolves to MDesC16Array.
|
Defined in CBaNamedPlugins:
CBaNamedPlugins(), CParameters, CompareNamedPlugIns(), ConstructL(), DefaultAlgorithmToCompareNames(), EArrayPositionFirst, EArrayPositionLast, IdentifierAtIndex(), IndexOfIdentifier(), IndexOfUid(), MFallBackName, MdcaCount(), MdcaPoint(), NewL(), NewLC(), TArrayPosition, TCompareNames, TEquivalentIdentifiers, TNamedPlugIn, TResourceFile, UidAtIndex(), iArrayOfNamedPlugIns, ~CBaNamedPlugins()
Inherited from CBase:
operator new()
static CBaNamedPlugins* NewL(const CParameters& aParameters);
Allocates and constructs a new list of plug-in names. The list
is populated using the CParameters object passed into the
function. The CParameters object can be destroyed once the
CBaNamedPlugins object has been created.
|
|
static CBaNamedPlugins* NewLC(const CParameters& aParameters);
Allocates and constructs a new list of plug-in names. The list
is populated using the CParameters object passed into the
function. The list is left on the cleanup stack. The CParameters
object can be destroyed once the CBaNamedPlugins object has been
created.
|
|
virtual ~CBaNamedPlugins();
Destructor. Deletes all resources owned by the object prior to its destruction.
TInt IndexOfUid(TUid aUid) const;
Gets the index into the sorted list (i.e. the index into the
MDesCArray) of the plug-in associated with the UID
specified.
|
|
TInt IndexOfIdentifier(const TDesC& aIdentifier, TEquivalentIdentifiers aEquivalentIdentifiers) const;
Gets the index into the sorted list (i.e. the index into the
MDesCArray) of the plug-in associated with the identifier
specified.
|
|
TUid UidAtIndex(TInt aIndex) const;
Gets the UID of the plug-in at the specified index into the
MDesCArray.
|
|
const TDesC* IdentifierAtIndex(TInt aIndex) const;
Gets the identifier of the plug-in at the specified index into
the MDesCArray.
|
|
virtual TInt MdcaCount() const;
Gets the number of plug-ins in the list.
|
virtual TPtrC MdcaPoint(TInt aIndex) const;
Returns a TPtrC for the name of the plug-in at the
given index.
|
|
private : CBaNamedPlugins(TInt aGranularity);
This is internal and is not intended for use.
private : void ConstructL(const CParameters& aParameters);
This is internal and is not intended for use.
private : static TInt CompareNamedPlugIns(const TNamedPlugIn& aNamedPlugIn1, const TNamedPlugIn& aNamedPlugIn2);
This is internal and is not intended for use.
private : static TInt DefaultAlgorithmToCompareNames(const TDesC& aName1, const TDesC& aName2);
This is internal and is not intended for use.
private : RArray<TNamedPlugIn> iArrayOfNamedPlugIns;
This is internal and is not intended for use.
private : class TNamedPlugIn;
This class is internal and is not intended for use.
Defined in CBaNamedPlugins::TNamedPlugIn:
iCompareNames, iIdentifier, iName, iUid
iNameHBufC* iName;
This is internal and is not intended for use.
iIdentifierHBufC* iIdentifier;
This is internal and is not intended for use.
iUidTUid iUid;
This is internal and is not intended for use.
iCompareNamesTCompareNames iCompareNames;
This is internal and is not intended for use.
CParameters
The parameters for a localised list of plug-in names.
An object of this class is passed to
CBaNamedPlugins::NewL() and NewLC(). The parameters
are as follows — minimally, the first two must be provided:
An array of TResourceFile objects. Each object
contains information about a single plug-in, or multiple plug-ins, including
the filename of the corresponding resource file. Versions of these resource
files with the correct filename extensions for the required languages provide
the name of one or more plug-in, translated appropriately.
A connected session with the file server. This is required to search the file sytem for the localised resource files, then to open them for reading.
An optional object that generates a fallback name for plug-ins, if no resource file could be found. If no such function is provided, then the fallback name used for plug-ins is simply the filename of the resource file without the drive, directory path or extension.
An optional function that compares two plug-in names for sorting. The list is sorted after it has been fully populated, using this algorithm. If not specified, sorting is done by using the system-wide (locale-dependent) collation rules.
An optional descriptor which, if provided, adds an
additional item whose meaning is "none" (i.e. "no plug-in") to the
MDesCArray, and the array position (either the start or the end of
the array) at which to insert it.
Defined in CBaNamedPlugins::CParameters:
CParameters(), ConstructL(), NewL(), NewLC(), SetCompareNames(), SetFallBackName(), SetTextForNone(), SetTextForNoneL(), iArrayOfResourceFiles, iArrayPositionOfTextForNone, iCompareNames, iFallBackName, iFileServerSession, iTextForNone, ~CParameters()
NewL()static CParameters* NewL(RFs& aFileServerSession, const TArray<TResourceFile>& aArrayOfResourceFiles);
Allocates and constructs a new parameters object.
|
|
NewLC()static CParameters* NewLC(RFs& aFileServerSession, const TArray<TResourceFile>& aArrayOfResourceFiles);
Allocates and constructs a new parameters object. The object is left on the cleanup stack.
|
|
~CParameters()virtual ~CParameters();
Destructor. Deletes all resources owned by the object.
SetFallBackName()void SetFallBackName(const MFallBackName& aFallBackName);
Sets a function that generates a fallback name for plug-ins
for which no resource file could be found. If SetFallBackName() is
not called, then by default the fallback name used for plug-ins is simply the
filename of the resource file without the drive, directory path or extension.
|
SetCompareNames()void SetCompareNames(TCompareNames aCompareNames);
Sets a function that compares two plug-in names for
sorting. The plug-in names list is sorted after it has been fully populated,
using this algorithm. If SetCompareNames() is not called,
collation takes place by default using TDesC::CompareC().
|
SetTextForNoneL()void SetTextForNoneL(const TDesC& aTextForNone, TArrayPosition aArrayPositionOfTextForNone);
Sets a text string, representing the choice of no plug-in and the array position at which to insert it. This function increases the length of the plug-in names list by one because it creates and adds an item to the array which is empty except for the text string specified.
|
SetTextForNone()void SetTextForNone(HBufC* aTextForNone, TArrayPosition aArrayPositionOfTextForNone);
Sets a text string, representing the choice of no plug-in
and the array position at which to insert it. This function increases the
length of the plug-in names list by one because it creates and adds an item to
the array which is empty except for the text string specified. The function
cannot leave because nothing is allocated — ownership of
aTextForNone is passed to the CParameters object.
|
CParameters()private : CParameters(RFs& aFileServerSession);
This is internal and is not intended for use.
ConstructL()private : void ConstructL(const TArray<TResourceFile>& aArrayOfResourceFiles);
This is internal and is not intended for use.
iFileServerSessionprivate : RFs& iFileServerSession;
This is internal and is not intended for use.
iArrayOfResourceFilesprivate : TArray<TResourceFile>* iArrayOfResourceFiles;
This is internal and is not intended for use.
iFallBackNameprivate : const MFallBackName* iFallBackName;
This is internal and is not intended for use.
iCompareNamesprivate : TCompareNames iCompareNames;
This is internal and is not intended for use.
iTextForNoneprivate : HBufC* iTextForNone;
This is internal and is not intended for use.
iArrayPositionOfTextForNoneprivate : TArrayPosition iArrayPositionOfTextForNone;
This is internal and is not intended for use.
TResourceFile
Information about a resource file containing the names of one or more named plug-ins.
The information is the full filename of the resource file (the language-specific version of this file provides the localised names, for display to users), the format for the contents of the resource file and a unique identifier for the plug-in, which is either a UID or an arbitrary textual identifier (this is not for display).
An array of TResourceFile objects is passed to
CParameters::NewL() and NewLC().
Defined in CBaNamedPlugins::TResourceFile:
EFormatArrayOfUidNamePairs, EFormatTbuf, TFormat, iFormat, iFullFileName, iIdentifier, iUid
iFullFileNameHBufC* iFullFileName;
The full filename of the resource file, with a
language-independent extension (i.e. .rsc rather than, for
instance, .r12). The language-specific version of this file (with
the correct language extension) contains the localised name of the plug-in. The
BaflUtils class is used internally to create the correct language
extension for iFullFileName.
iIdentifierHBufC* iIdentifier;
Optional unique identifier for the plug-in , for instance the filename of the plug in's DLL. If not applicable, it may be NULL.
iUidTUid iUid;
Optional plug-in UID. If not applicable, it may have a
value of KNullUid.
iFormatTFormat iFormat;
The format of the resource file's contents.
TFormatTFormat
The format of the contents of a resource file.
The EFormatArrayOfUidNamePairs format enables
the names of multiple plug-ins to be held in a single resource file. This could
be used in situations where a fixed set of plug-ins are provided in a single
package, e.g. the plug-ins provided in a ROM (helping to reduce ROM space). In
other cases, the EFormatTbuf format should be used (here a single
resource file provides the name of a single plug-in).
|
MFallBackName
Interface class with a single pure virtual function that generates a fallback name for plug-ins.
The FallBackNameL() function is called during
construction of the CBaNamedPlugins object for any plug-ins for
which no resource file could be found with the correct language
extension.
Use of this interface is optional. To use it, pass an instance
of a class which implements the interface to
CParameters::SetFallBackName(). If this is not done, then by
default the fallback name used for plug-ins is simply the filename of the
resource file without the drive, directory path or extension.
Defined in CBaNamedPlugins::MFallBackName:
FallBackNameL(), MFallBackName_Reserved_1(), MFallBackName_Reserved_2()
FallBackNameL()virtual HBufC* FallBackNameL(const TDesC& aFullResourceFileName) const=0;
Generates and returns a fallback name for plug-ins for which no resource is available. The fallback name can be generated using the filename of the plug-in's resource file, which is passed as an argument.
|
|
MFallBackName_Reserved_1()virtual void MFallBackName_Reserved_1();
This is internal and is not intended for use.
MFallBackName_Reserved_2()virtual void MFallBackName_Reserved_2();
This is internal and is not intended for use.
TArrayPosition
The position in the list of plug-in names for the text string which represents the choice of no plug-in.
Passed as an argument to SetTextForNoneL() and
SetTextForNone().
|
typedef TInt (*TCompareNames)(const TDesC& aName1, const TDesC& aName2);
The prototype for a function that compares two plug-in names,
aName1 and aName2 for sorting.
The plug-in names list is sorted using this algorithm after it
has been populated. Implementing this function is optional. If implemented, it
is passed as a parameter to CParameters::SetCompareNames(). If not
implemented, a default algorithm is used.
The function should return a positive value if
aName1 is to occur after aName2 or negative if
aName1 is to occur before aName2. Zero should be
returned if both descriptors are equivalent.
typedef TBool (*TEquivalentIdentifiers)(const TDesC& aIdentifier1, const TDesC& aIdentifier2);
The prototype for a function that compares two plug-in
identifiers, aIdentifier1 and aIdentifier2 to find
out if they are the same.
Implementing this function is optional. If implemented, it is
passed to CBaNamedPlugins::IndexOfIdentifier(), which uses the
function to compare a specified plug-in identifier with each identifier in turn
in the list of named plug-ins. The function should return true if they are the
same, false if not. TDesC::CompareC() could be used to do the
comparison.