»
         Symbian OS v9.3 »
         Symbian OS reference »
         C++ component reference »
         System Libraries BAFL »
         CResourceFile
      
      
      	   
      
      	   
      
         	   
         
         Location: 
            barsc2.h
            
Link against: bafl.lib
            
         
         
       
      
      
         class CResourceFile : public CBase;
         Description
         
         Accesses a resource file or resource file buffer and reads the resource data into a buffer.
         
         Interpretation of the data is achieved using the RResourceReader class. CResourceFile methods behaviour when some problem occurs - it leaves with an error code. Most of the time the error
            code will be KErrCorrupt.
         
         
         Derivation
         
         
         
            - CBase- Base class for all classes to be instantiated on the heap
            - CResourceFile- Accesses a resource file or resource file buffer and reads the resource data into a buffer
Members
         
         Defined in CResourceFile:
            
AllocReadL(), AllocReadLC(), ConfirmSignatureL(), ConfirmSignatureL(), NewL(), NewL(), NewLC(), Offset(), OwnsResourceIdL(), ReadL(), SignatureL(), UidType(), ~CResourceFile()
            
         
         
         Inherited from CBase:
            
Delete(),
            Extension_(),
            operator new()
         
         See also:
         
         
         
         
       
      
         
         
         
         Construction and destruction
         
      
      
      
      
         static IMPORT_C CResourceFile *NewL(RFs &aFs, const TDesC &aName, TUint aFileOffset, TInt aFileSize);
         Description
         
         Creates CResourceFile instance. 
         
         Parameters
         
         
            
               | 
                     
                        | 
                              RFs&aFs | Handle to a file server session.  |  
                        | const TDesC&aName | File to open as a resource file.  |  
                        | 
                              TUintaFileOffset | The resource file section offset from the beginning of the file.  |  
                        | 
                              TIntaFileSize | The resource file section size.  |  | 
         
         
         Return value
         
         
         
         Leave codes
         
         
            
               | 
                     
                        | KErrCorrupt | if the file is corrupted. |  
                        | KErrNoMemory | if there is not enough memory for the object. |  | 
         
          
      
      
         static IMPORT_C CResourceFile *NewLC(RFs &aFs, const TDesC &aName, TUint aFileOffset, TInt aFileSize);
         Description
         
         Creates CResourceFile instance. 
         
         Parameters
         
         
            
               | 
                     
                        | 
                              RFs&aFs | Handle to a file server session.  |  
                        | const TDesC&aName | File to open as a resource file.  |  
                        | 
                              TUintaFileOffset | The resource file section offset from the beginning of the file.  |  
                        | 
                              TIntaFileSize | The resource file section size.  |  | 
         
         
         Return value
         
         
         
         Leave codes
         
         
            
               | 
                     
                        | KErrCorrupt | if the file is corrupted. |  
                        | KErrNoMemory | if there is not enough memory for the object. |  | 
         
          
      
      
         static IMPORT_C CResourceFile *NewL(const TDesC8 &aRscFileBuffer);
         Description
         
         Creates CResourceFile instance. 
         
         Parameters
         
         
            
               | 
                     
                        | const TDesC8&aRscFileBuffer | a buffer containing one entire resource file  |  | 
         
         
         Return value
         
         
            
               | 
                     
                        | CResourceFile* | a CResourceFile instance corresponding to the rsc file passed through the file buffer  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | KErrCorrupt | if the file buffer is corrupted. |  
                        | KErrNoMemory | if there is not enough memory for the object. |  | 
         
          
      
      
         virtual IMPORT_C ~CResourceFile();
         Description
         
         Frees the resources, allocated by the instance. 
         
         
       
      
      
      
      
         IMPORT_C TUidType UidType() const;
         Description
         
         Returns whether the FEP is on or off. 
         
         Return value
         
         
            
               | 
                     
                        | TUidType | The UIDs of the loaded resource file.  |  | 
         
          
      
      
         IMPORT_C void ReadL(TDes8 &aDes, TInt aResourceId) const;
         Description
         
         Reads a resource specified by resource id into the specified descriptor.
         
         The descriptor must be long enough to contain the entire resource
         
         The search for the resource uses the following algorithm:
         
         A resource id in the range 1 to 4095 is looked up in this resource file. The function leaves if there is no matching resource.
         
         If the resource id is greater than 4095, then the most significant 20 bits of the resource id is treated as an offset and
            the least significant 12 bits is treated as the real resource id. If the offset matches the offset value defined for this
            file, then the resource is looked up in this resource file using the real resource id (i.e. the least significant 12 bits).
            If the offset does not match, then the function leaves.
         
         
         Note, do not call this function until a call to ConfirmSignatureL() has completed successfully.
         
         
         Parameters
         
         
            
               | 
                     
                        | 
                              TDes8&aDes | On return, contains the resource that has been read. The function leaves if the descriptor is not long enough to contain the
                              entire resource. 
                            |  
                        | 
                              TIntaResourceId | The numeric id of the resource to be read. The function leaves if this resource id is not in this resource file.  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | The | function leaves if this resource id is not in this resource file or the file is corrupted. |  | 
         
          
      
      
         IMPORT_C HBufC8 *AllocReadL(TInt aResourceId) const;
         Description
         
         Reads a resource into a heap descriptor and returns a pointer to that descriptor.
         
         A heap descriptor of appropriate length is allocated for the resource. Ownership of the heap descriptor passes to the caller
            who must destroy it when it is no longer needed.
         
         
         The search for the resource uses the following algorithm:
         
         A resource id in the range 1 to 4095 is looked up in this resource file. The function leaves if there is no matching resource.
         
         If the resource id is greater than 4095, then the most significant 20 bits of the resource id is treated as an offset and
            the least significant 12 bits is treated as the real resource id. If the offset matches the offset value defined for this
            file, then the resource is looked up in this resource file using the real resource id (i.e. the least significant 12 bits).
            If the offset does not match, then the function leaves.
         
         
         Note, do not call this function until a call to ConfirmSignatureL() has completed successfully.
         
         
         Parameters
         
         
            
               | 
                     
                        | 
                              TIntaResourceId | The numeric id of the resource to be read.  |  | 
         
         
         Return value
         
         
            
               | 
                     
                        | HBufC8* | Pointer to a heap descriptor containing the resource.  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | The | function leaves if this resource id is not in this resource file or the file is corrupted. |  | 
         
         
         See also:
         
         
          
      
      
         IMPORT_C HBufC8 *AllocReadLC(TInt aResourceId) const;
         Description
         
         Reads a resource into a heap descriptor, returns a pointer to that descriptor and pushes the pointer onto the cleanup stack.
         
         A heap descriptor of appropriate length is allocated for the resource. Ownership of the heap descriptor passes to the caller
            who must destroy it and pop its pointer off the cleanup stack when it is no longer needed.
         
         
         The search for the resource uses the following algorithm:
         
         A resource id in the range 1 to 4095 is looked up in this resource file. The function leaves if there is no matching resource.
         
         If the resource id is greater than 4095, then the most significant 20 bits of the resource id is treated as an offset and
            the least significant 12 bits is treated as the real resource id. If the offset matches the offset value defined for this
            file, then the resource is looked up in this resource file using the real resource id (i.e. the least significant 12 bits).
            If the offset does not match, then the function leaves.
         
         
         Note, do not call this function until a call to ConfirmSignatureL() has completed successfully.
         
         
         Parameters
         
         
            
               | 
                     
                        | 
                              TIntaResourceId | The numeric id of the resource to be read.  |  | 
         
         
         Return value
         
         
            
               | 
                     
                        | HBufC8* | Pointer to a heap descriptor containing the resource.  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | The | function leaves if this resource id is not in this resource file or the file is corrupted. |  | 
         
         
         See also:
         
         
          
      
      
         IMPORT_C void ConfirmSignatureL(TInt aSignature);
         Description
         
         Initialises the offset value from the first resource.
         
         The function assumes that the first resource in the file consists of two 32-bit integers. The first integer contains the version
            number and the second is a self-referencing link whose value is the offset for the resources in the file, plus 1.This function
            must be called before calling Offset(), AllocReadL(), AllocReadLC() or ReadL().
         
         
         Parameters
         
         
            
               | 
                     
                        | 
                              TIntaSignature | This argument value is not used by the function.  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | The | function leaves if this resource id is not in this resource file or the file is corrupted. |  | 
         
          
      
      
         IMPORT_C void ConfirmSignatureL();
         Description
         
         Initialises the offset value from the first resource.
         
         The function tests to catch cases where the first resource is not an RSS_SIGNATURE. It assumes that the first resource in
            the file consists of two 32-bit integers. The first integer contains the version number and the second is a self-referencing
            link whose value is the offset for the resources in the file, plus 1.This function must be called before calling Offset(), AllocReadL(), AllocReadLC() or ReadL(). 
         
         
         Leave codes
         
         
            
               | 
                     
                        | The | function leaves if this resource id is not in this resource file or the file is corrupted. |  | 
         
          
      
      
         IMPORT_C TInt SignatureL() const;
         Description
         
         Returns this resource file's version number.
         
         The function assumes that the first resource in the file consists of two 32-bit integers. The first integer contains the version
            number. 
         
         
         Return value
         
         
         
         Leave codes
         
         
            
               | 
                     
                        | KErrCorrupt | - the file is corrupted. |  | 
         
         
         See also:
         
         
          
      
      
         IMPORT_C TBool OwnsResourceIdL(TInt aResourceId) const;
         Description
         
         Tests whether the resource file owns the specified resource id. The resource file owns the resource id if the most significant
            20 bits of the resource id are zero or match the offset value as returned from a call to the Offset() member function or if the resource id is not out of range. 
         
         
         Parameters
         
         
            
               | 
                     
                        | 
                              TIntaResourceId | The resource id to test.  |  | 
         
         
         Return value
         
         
            
               | 
                     
                        | TBool | True, if the resource file owns the id, false otherwise.  |  | 
         
         
         Leave codes
         
         
            
               | 
                     
                        | KErrCorrupt | - the file is corrupted. Some other error codes are possible. |  | 
         
          
      
      
         IMPORT_C TInt Offset() const;
         Description
         
         Returns the offset value defined for this resource file.
         
         This function must not be called until a call to ConfirmSignatureL() has completed successfully, otherwise the value returned by this function may be meaningless. 
         
         
         Return value
         
         
            
               | 
                     
                        | TInt | The offset value defined for this resource file.  |  |