epoc32/include/mw/coeutils.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 // COEUTILS.H
     2 
     3 /*
     4 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
     5 * All rights reserved.
     6 * This component and the accompanying materials are made available
     7 * under the terms of "Eclipse Public License v1.0"
     8 * which accompanies this distribution, and is available
     9 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    10 *
    11 * Initial Contributors:
    12 * Nokia Corporation - initial contribution.
    13 *
    14 * Contributors:
    15 *
    16 * Description:
    17 *
    18 */
    19 
    20 
    21 
    22 #ifndef __COEUTILS_H__
    23 #define __COEUTILS_H__
    24 
    25 #include <e32std.h>
    26 class CCoeEnv;
    27 
    28 /** Provides file and path utility functions.
    29 
    30 @publishedAll
    31 @released */
    32 class ConeUtils
    33 	{
    34 public:
    35 	IMPORT_C static TBool FileExists(const TDesC& aFileName);
    36 	IMPORT_C static void EnsurePathExistsL(const TPtrC& aFileName);
    37 	};
    38 
    39 
    40 /** 
    41 Class encapsulates methods for opening and closing localised resource files
    42 in the CONE environment. The actual reading of resources from an opened 
    43 resource file is done using various CCoeEnv provided resource-reading 
    44 methods. The Cone Resource Loader API consists of the RCoeResourceLoader class.
    45 
    46 Only one resource at a time may be opened by one RCoeResourceLoader instance. 
    47 You can use several RCoeResourceLoader instances for accessing several 
    48 resources simultaneously or use one instance and close the previous resource
    49 before opening a new one.
    50 
    51 The implementation uses BaflUtils::NearestLanguageFile to search for
    52 a localised resource in proper search order.
    53  
    54 Usage example:  
    55 
    56 @code
    57 #include <coeutils.h>  
    58 
    59 // Get CCoeEnv instance
    60 CEikonEnv* eikEnv = CEikonEnv::Static();
    61 // Initialize loader
    62 RCoeResourceLoader rLoader(eikEnv);
    63 
    64 // Push resource loader to cleanup stack, so that it will always be properly 
    65 // closed when popped.
    66 CleanupClosePushL(rLoader);
    67 
    68 // Open resource file
    69 _LIT( KSampleResourceFileName, "Z:\\System\\Apps\\sample\\sample.rsc" );
    70 TFileName fileName(KSampleResourceFileName);
    71 rLoader.OpenL(fileName);
    72 
    73 // Read a resource   
    74 iSomeArray = eikEnv->ReadDesC16ArrayResourceL(R_SOME_RESOURCE);
    75 
    76 // Pop and destroy rLoader from stack. 
    77 // This also calls the rLoader close function after CleanupClosePushL is used.
    78 CleanupStack::PopAndDestroy(); // rLoader
    79 @endcode
    80 
    81 @publishedAll
    82 @released */
    83 NONSHARABLE_CLASS(RCoeResourceLoader)
    84     {
    85 public:
    86     IMPORT_C RCoeResourceLoader(CCoeEnv& aEnv);
    87     IMPORT_C TInt Open(TFileName& aFileName);
    88     IMPORT_C void OpenL(TFileName& aFileName);
    89     IMPORT_C void Close();
    90 private:
    91     // Prohibit copy constructor and assigment operator because not deriving from CBase.
    92     RCoeResourceLoader();
    93     RCoeResourceLoader(const RCoeResourceLoader&);
    94     RCoeResourceLoader& operator= (const RCoeResourceLoader&);
    95 private:
    96     // Needed for closing
    97     CCoeEnv& iEnv; 
    98     TInt iResourceFileOffset;
    99     };
   100 
   101 
   102 #endif	// __COEUTILS_H__