brandingserver/BSServer/cbsserver.h
author hgs
Sun, 11 Apr 2010 15:33:49 +0530
changeset 31 9dbc70490d9a
permissions -rw-r--r--
201014
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  CBSSERVER.H
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __CBSSERVER_H__
hgs
parents:
diff changeset
    21
#define __CBSSERVER_H__
hgs
parents:
diff changeset
    22
#include <e32base.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include "rbsobjowningptrarray.h"
hgs
parents:
diff changeset
    25
#include "mbsbackupobserver.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    28
class CBSSession;
hgs
parents:
diff changeset
    29
class CBSStorageManager;
hgs
parents:
diff changeset
    30
class CBSInstallHandler;
hgs
parents:
diff changeset
    31
class CBSBackupObserver;
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
/**
hgs
parents:
diff changeset
    34
 * Service server.
hgs
parents:
diff changeset
    35
 */
hgs
parents:
diff changeset
    36
NONSHARABLE_CLASS( CBSServer ): public CPolicyServer,
hgs
parents:
diff changeset
    37
                                public MBSBackupObserver
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    public:
hgs
parents:
diff changeset
    40
    	NONSHARABLE_CLASS( CBSFileMapping ): public CBase
hgs
parents:
diff changeset
    41
    		{
hgs
parents:
diff changeset
    42
    		public:
hgs
parents:
diff changeset
    43
	    		static CBSFileMapping* NewL( CBSSession* aSession,
hgs
parents:
diff changeset
    44
	    									 const TDesC& aFile,
hgs
parents:
diff changeset
    45
	    									 TBool aVersioned );
hgs
parents:
diff changeset
    46
	    		
hgs
parents:
diff changeset
    47
	    		~CBSFileMapping();
hgs
parents:
diff changeset
    48
    		private: // constructors 
hgs
parents:
diff changeset
    49
	    		void ConstructL( CBSSession* aSession,
hgs
parents:
diff changeset
    50
								 const TDesC& aFile );
hgs
parents:
diff changeset
    51
	    		CBSFileMapping( TBool aVersioned );
hgs
parents:
diff changeset
    52
			
hgs
parents:
diff changeset
    53
			public: // new methods
hgs
parents:
diff changeset
    54
				CBSSession* Session();
hgs
parents:
diff changeset
    55
				const TDesC& File();
hgs
parents:
diff changeset
    56
				TBool Versioned();
hgs
parents:
diff changeset
    57
				
hgs
parents:
diff changeset
    58
			private: // data
hgs
parents:
diff changeset
    59
				// doesn't own: session
hgs
parents:
diff changeset
    60
				CBSSession* iSession;
hgs
parents:
diff changeset
    61
				HBufC* 		iFile;
hgs
parents:
diff changeset
    62
			  	TBool 		iVersioned;
hgs
parents:
diff changeset
    63
    		};
hgs
parents:
diff changeset
    64
    	
hgs
parents:
diff changeset
    65
    public:     // Execution and destructors
hgs
parents:
diff changeset
    66
        static void ExecuteL();
hgs
parents:
diff changeset
    67
        virtual ~CBSServer();
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    private:    // C++ constructor
hgs
parents:
diff changeset
    70
        CBSServer();
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    protected:     // Methods from CPolicyServer
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
        CSession2* NewSessionL( const TVersion& aVersion,
hgs
parents:
diff changeset
    75
                                const RMessage2& aMessage ) const;
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
        CPolicyServer::TCustomResult CustomFailureActionL(
hgs
parents:
diff changeset
    79
                                const RMessage2& aMsg,
hgs
parents:
diff changeset
    80
                                TInt aAction,
hgs
parents:
diff changeset
    81
                                const TSecurityInfo& aMissing);
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    public: // From MBSBackupObserver
hgs
parents:
diff changeset
    84
    
hgs
parents:
diff changeset
    85
        void HandleBackupStateL( TBackupState aState );
hgs
parents:
diff changeset
    86
        
hgs
parents:
diff changeset
    87
    public:     //New methods
hgs
parents:
diff changeset
    88
	    void SessionCreatedL( CBSSession* aSession );
hgs
parents:
diff changeset
    89
	    void SessionDied( CBSSession* aSession );
hgs
parents:
diff changeset
    90
    
hgs
parents:
diff changeset
    91
		TBool MatchSessionL( const TDesC& aApplicationId,
hgs
parents:
diff changeset
    92
							 const TDesC& aBrandId,
hgs
parents:
diff changeset
    93
							 TLanguage aLanguageId,
hgs
parents:
diff changeset
    94
							 CBSSession* aSession,
hgs
parents:
diff changeset
    95
							 TInt aReserved = 0 );
hgs
parents:
diff changeset
    96
							 
hgs
parents:
diff changeset
    97
		TBool MatchSessionUninstallL( const TDesC& aApplicationId,
hgs
parents:
diff changeset
    98
								 const TDesC& aBrandId, CBSSession* aSession);
hgs
parents:
diff changeset
    99
								 							 
hgs
parents:
diff changeset
   100
	    void RegisterFileForSessionL( CBSSession* aSession, 
hgs
parents:
diff changeset
   101
	    							  const TDesC& aFile,
hgs
parents:
diff changeset
   102
	    							  TBool aVersioned );
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
		TArray<CBSServer::CBSFileMapping*> RegisteredFiles();
hgs
parents:
diff changeset
   105
		
hgs
parents:
diff changeset
   106
		TBool FileStillInUse( CBSSession* aSession,
hgs
parents:
diff changeset
   107
							  const TDesC& aFile );
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
		void BrandUpdatedL( const TDesC& aApplicationId,
hgs
parents:
diff changeset
   110
							const TDesC& aBrandId,
hgs
parents:
diff changeset
   111
							TLanguage aLanguageId,
hgs
parents:
diff changeset
   112
							CBSSession* aSession,
hgs
parents:
diff changeset
   113
							TInt aReserved );
hgs
parents:
diff changeset
   114
        /**
hgs
parents:
diff changeset
   115
         * Displays the info for each open session - except for the one that 
hgs
parents:
diff changeset
   116
         * called this method.
hgs
parents:
diff changeset
   117
         *
hgs
parents:
diff changeset
   118
         * @param aSession the session that called this method
hgs
parents:
diff changeset
   119
         * @param aErrorCode a system-wide errorcode which is simply displayed
hgs
parents:
diff changeset
   120
         *        by this method
hgs
parents:
diff changeset
   121
         */
hgs
parents:
diff changeset
   122
        void DisplaySessionInfoL( CBSSession* aSession, TInt aErrorCode );
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
	private: // New methods
hgs
parents:
diff changeset
   125
		void UnRegisterSessionL( CBSSession* aSession );
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
		
hgs
parents:
diff changeset
   128
		void CleanupFileL( const TDesC& aFile );
hgs
parents:
diff changeset
   129
	    
hgs
parents:
diff changeset
   130
	    void InitializeL();
hgs
parents:
diff changeset
   131
	    
hgs
parents:
diff changeset
   132
    private:    //Data
hgs
parents:
diff changeset
   133
        TInt iSessionCount;
hgs
parents:
diff changeset
   134
        RPointerArray<CBSSession> iSessions;
hgs
parents:
diff changeset
   135
        RBSObjOwningPtrArray<CBSFileMapping> iFileMapping;
hgs
parents:
diff changeset
   136
        CBSStorageManager*		iStorageManager;
hgs
parents:
diff changeset
   137
        CBSInstallHandler*      iInstallHandler;
hgs
parents:
diff changeset
   138
        
hgs
parents:
diff changeset
   139
        // Own. Observer for backup and restore events
hgs
parents:
diff changeset
   140
        CBSBackupObserver*      iBackupObserver;
hgs
parents:
diff changeset
   141
    };
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
#endif      //  __CBSSERVER_H__
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
//  END OF FILE
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148