installationservices/swcomponentregistry/inc/scrcommon.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 17 Sep 2010 08:30:26 +0300
changeset 72 a0dc14075813
parent 25 98b66e4fb0be
permissions -rw-r--r--
Revision: 201035 Kit: 201037

/*
* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
* Information shared between the Software Component Registry client and server implementations.
*
*/


/**
 @file
 @internalComponent
 @released
*/
 
#ifndef SCRCOMMON_H
#define SCRCOMMON_H
 
#include <e32ver.h>
#include <e32uid.h>
#include <f32file.h>
#include <e32std.h>
#include <s32file.h>

namespace Usif
	{
	/** Identifies the Software Component Registry Symbian OS Server. */
	_LIT(KSoftwareComponentRegistryName, "!SoftwareComponentRegistry");	

	const TInt KScrVerMajor = 1;		///< SCR Server version major component.
	const TInt KScrVerMinor = 0;		///< SCR Server version minor component.
	const TInt KScrVerBuild = 0;		///< SCR Server version build component.

	inline TVersion ScrServerVersion();
		
	/**
		Executable which hosts SCR Server.  Required to launch the process.

		@see KUidScrServer
	*/
	_LIT(KScrServerImageName, "scrserver.exe");
		
	/**
		Hosting the executable's secure ID.  Required to launch the process.

		@see KScrServerImageName
	 */
	const TUid KUidScrServer = {0x10285BC0};
		
	inline TUidType ScrServerImageFullUid();
	 	
	enum TScrSessionFunction
	/**
		Functions supported by a SCR server session.
	 */
		{
		ECreateTransaction        	 	 = 0x00,	///< Create a new transaction
		ERollbackTransaction       	 	 = 0x01,	///< Roll back the transaction in progress
		ECommitTransaction           	 = 0x02,	///< Commit the transaction in progress
		EAddComponent	         	 	 = 0x03,	///< Add a new component record into the SCR database 
		EAddComponentDependency		 	 = 0x04,	///< Add a new dependency between two software components.
		ESetComponentLocalizableProperty = 0x05, 	///< Set a string property of the component
		ESetComponentNumericProperty 	 = 0x06, 	///< Set a numeric property of the component
		ESetComponentBinaryProperty  	 = 0x07, 	///< Set a binary property of the component
		ERegisterComponentFile		 	 = 0x08,	///< Register a file to an existing component
		ESetFileStringProperty		 	 = 0x09,	///< Set a string property of the component's file
		ESetFileNumericProperty		 	 = 0x0A,	///< Set a string property of the component's file
		ESetComponentName		 	 	 = 0x0B,	///< Update the name of the component
		ESetComponentVendor		     	 = 0x0C,	///< Update the vendor of the component
		ESetComponentVersion		 	 = 0x0D,	///< Set the version of the component
		ESetIsComponentRemovable     	 = 0x0E,    ///< Set the removable attribute of the component
		ESetIsComponentDrmProtected		 = 0x0F,    ///< Set the DRM protected attribute of the component.
		ESetIsComponentHidden			 = 0x10,    ///< Set the hidden attribute of the component.
		ESetIsComponentKnownRevoked		 = 0x11,    ///< Set the known-revoked attribute of the component.
		ESetIsComponentOriginVerified	 = 0x12,    ///< Set the origin-verified attribute of the component.
		ESetComponentSize			 	 = 0x13, 	///< Set the install-time size of the component
		EDeleteComponentProperty	 	 = 0x14,	///< Delete a property of the component
		EDeleteFileProperty	 			 = 0x15,	///< Delete a property of the component's file
		EUnregisterComponentFile		 = 0x16,	///< Deregister a component's file
		EDeleteComponent				 = 0x17,	///< Delete a component from the SCR database
		EDeleteComponentDependency       = 0x18,	///< Delete an existing dependency between two software components.
		EGetSingleComponentSize		 	 = 0x19,	///< Retrieve the entry size of a given component id
		EGetSingleComponentData		 	 = 0x1A,	///< Retrieve the entry data of a given component id
		EGetFilePropertiesSize		 	 = 0x1B,	///< Retrieve the buffer size needed to write the file properties.
		EGetFilePropertiesData		 	 = 0x1C,	///< Retrieve the data of the file properties obtained from the SCR server.
		EGetSingleFilePropertySize   	 = 0x1D,	///< Retrieve the buffer size needed to write the value of the single file property given.
		EGetSingleFilePropertyData   	 = 0x1E,	///< Retrieve the data of the single file property.
		EGetComponentFilesCount		 	 = 0x1F,    ///< Retrieve the number of files registered by a component
		EGetFileComponentsSize		 	 = 0x20,	///< Retrieve the buffer size needed to write the component IDs possessing the given file.
		EGetFileComponentsData		 	 = 0x21,	///< Retrieve the data of the component IDs.
		EGetComponentPropertiesSize	 	 = 0x22,	///< Retrieve the buffer size needed to write the given component's properties.
		EGetComponentPropertiesData	 	 = 0x23,	///< Retrieve the data of the component's properties obtained from the SCR server.
		EGetComponentSinglePropertySize	 = 0x24,	///< Retrieve the buffer size needed to write the value of the single component property given.
		EGetComponentSinglePropertyData	 = 0x25,	///< Retrieve the data of the single component property.
		EGetLocalComponentId         	 = 0x26,	///< Retrieve the local component id of a given global component id.
		EGetComponentWithGlobalIdSize	 = 0x27,	///< Retrieve the component entry size of a given global component id
		EGetComponentWithGlobalIdData	 = 0x28, 	///< Retrieve the component entry data of a given global component id
		EGetSupplierComponentsSize	 	 = 0x29,	///< Retrieve the buffer size needed to write the supplier global IDs of a given dependant component.		
		EGetSupplierComponentsData   	 = 0x2A,	///< Retrieve the data of the supplier global IDs of a given dependant component.
		EGetDependantComponentsSize	 	 = 0x2B,	///< Retrieve the buffer size needed to write the dependant global IDs of a given supplier component.		
		EGetDependantComponentsData  	 = 0x2C,	///< Retrieve the data of the dependant global IDs of a given supplier component.
		EGetComponentIdListSize			 = 0x2D,   	///< Retrieve the buffer size needed to write the component IDs enumerated with a given filter.
		EGetComponentIdListData		     = 0x2E,	///< Retrieve the data of the component IDs enumerated with a given filter.
		EGetLogFileHandle		 		 = 0x2F,    ///< Transfer the handle of the SCR log file to the client process
		EGetComponentSupportedLocalesListSize = 0x30,    ///< Transfer the buffer size needed to write the list of matching supported languages 
		EGetComponentSupportedLocalesListData = 0x31,    ///< Retrieve the data of the list of matching supported languages
		EGetLocalizedComponentSize            = 0x32,    ///< Retrieve the localized information entry size of a given component id
		EGetLocalizedComponentData            = 0x33,    ///< Retrieve the localized information entry data of a given component id
		EGenerateNonNativeAppUid              = 0x34,    ///< Generate a new Application Uid which can be used to register non native applications.
		
        EGetApplicationLaunchersSize     = 0x3A,    ///< Gets the size of application launcher array
        EGetApplicationLaunchersData     = 0x3B,    ///< Gets the array application launchers
        
		EGetIsMediaPresent				 = 0x40,	///< Retrieve the presence info of medias where the component is installed.
		EGetIsComponentOrphaned			 = 0x41,	///< Retrieve whether the given component is orphaned.
		EGetIsComponentOnReadOnlyDrive	 = 0x42,	///< Retrieve if the component is present on a read-only drive.
		EGetIsComponentPresent			 = 0x43,	///< Retrieve if the software component is fully present.
        EGetComponentIdForApp            = 0x44,    ///< Retrieve the component Id for a given App.
        EGetAppUidsForComponentSize      = 0x45,    ///< Retrieve the size of the list of AppUids associated with a component.
        EGetAppUidsForComponentData      = 0x46,    ///< Retrieve the list of AppUids associated with a component.
						
		EAddApplicationEntry             = 0x47,    ///< Add a new application entry into SCR.
		EDeleteApplicationEntries        = 0x48,    ///< Delete the applications associated with a component from SCR.
		EDeleteApplicationEntry          = 0x49,    ///< Delete an application from SCR.
		ESetScomoState				 	 = 0x50,	///< Set the scomo state of a given component.
		ESetIsComponentPresent			 = 0x51,	///< Set the attribute if the component is present fully.
		EGetPluginUidWithMimeType    	 = 0x52,	///< Retrieve the SIF plugin UID for a given MIME type.
		EGetPluginUidWithComponentId 	 = 0x53,	///< Retrieves the SIF plugin UID for a given component Id.
		
		ESubSessCreateComponentsView 	 = 0x60,	///< Creates a sub-session to handle a components view. 
		ESubSessCreateFileList 	     	 = 0x61,	///< Creates a sub-session to handle a file list.

		ESubSessCreateRegInfoForApp      = 0x62,	///< Creates a sub-session to handle a App ID related query.
		ESubSessCreateAppRegInfo         = 0x63,   ///< Creates a sub-session to handle a query.
		
		EAddSoftwareType			 	 = 0x65,    ///< Add a new software type to the SCR database with MIME types, unique and localized names.
		EDeleteSoftwareType			 	 = 0x66,    ///< Delete an existing software type from the SCR database.
		EGetDeletedMimeTypes			 = 0x67,    ///< Retrieve the list of MIME types deleted in last software type deletion operation.
		
		ESubSessCreateAppInfoView        = 0x68,    ///< Creates a sub-session to handle a appinfo view.
		ESubSessCreateAppRegistryView    = 0x69     ///< Creates a sub-session to handle a application registration view.
		// NOTE: The range after this is used up. Add new function ids carefully.
		};
		
	enum TScrSubSessionFunction
	/**
		Functions supported by a SCR server subsession.
	 */
		{
		EOpenComponentsView       = 0x70,		///< A components view isopened on the server side by using a given filter
		EGetNextComponentSize     = 0x71,		///< Get the size of the next component entry from the components view.
		EGetNextComponentData     = 0x72,		///< Get the next component entry from the components view.
		EGetNextComponentSetSize  = 0x73,		///< Get the size of the next component entry set from the components view.
		EGetNextComponentSetData  = 0x74,		///< Get the next component entry set from the components view.
		EOpenFileList		  	  = 0x77,		///< A file list is opened on the server side by using a given filter
		EGetNextFileSize      	  = 0x78,		///< Get the size of the next file from the present file list.
		EGetNextFileData      	  = 0x79,		///< Get the next file from the present file list.
		EGetNextFileSetSize   	  = 0x7A,		///< Get teh size of the next file set from the present file list.
		EGetNextFileSetData       = 0x7B,		///< Get the next file set from the present file list.
		EOpenAppInfoView          = 0x7C,       ///< An AppInfo view is opened on the server side by using a given filter
		EGetNextAppInfoSize       = 0x7D,       ///< Next AppInfo size is calculated and sent to the client
		EGetNextAppInfoData       = 0x7E,       ///< Next AppInfo data is returned to the client  
		
		ESetAppUid         		      = 0x80,       ///< AppId is set on the server side to be used for the specific subsession.
		EGetServiceUidSize		      = 0x88,       ///< Get the size of the service Id list. 
		EGetServiceUidList		      = 0x89,       ///< Get the list of ServiceIds.
		EGetApplicationLanguage       = 0x8A,		///< Get the Application Language of the App and is nearest to the device language.
		EGetDefaultScreenNumber       = 0x8B,       ///< Get the Default screen number specified for an App.
		EGetNumberOfOwnDefinedIcons   = 0x8C,       ///< Get the number of defined icons of a specified locale of the App.
		EGetAppForDataTypeAndService  = 0x8D,       ///< Get the AppUid with the specified type and ServiceId		
		EGetAppForDataType	   	      = 0x8E,	    ///< Get the AppUid with the specified type and a highest priority.
		EGetViewSize			      = 0x8F,		///< Get the size of the view details of a given application
		EGetViewData			      = 0x90,		///< Get the array of view details of a given application
		EGetAppOwnedFilesSize         = 0x91,       ///< Get the size of files owned by given application
		EGetAppOwnedFilesData         = 0x92,       ///< Get the array of files owned by given application
		EGetAppCharacteristics        = 0x93,       ///< Get the characteristics of given application
		EGetAppIconForFileName    	  = 0x94,       ///< Get the application icon file name for given application
		EGetAppViewIconFileName       = 0x95,       ///< Get the application view  icon file name for given application
		EGetAppServiceInfoSize		  = 0x96,		///< Get the size of the required service details associated with the parameters set in the filter.
		EGetAppServiceInfoData        = 0x97,       ///< Get the required service details associated with the parameters set in the filter.
		EGetApplicationInfo           = 0x98,       ///< Get the required app's information details contained in TAppRegInfo.
				
		EOpenApplicationRegistrationInfoView           = 0xB0,  ///< An Application registration view is opened on the server side
		EGetApplicationRegistrationSize                = 0xB1,  ///< Get the size of the next application registration data
		EGetApplicationRegistrationData                = 0xB2,  ///< Get the next application registration data
		EOpenApplicationRegistrationInfoForAppUidsView = 0xB3,  ///< An Application registration AppUids view is opened on the server side
		};
	
	/**
		Delay in microseconds before the SCR Server is shut down, after
		the last remaining session has been closed.
	 */
	static const TInt KScrServerShutdownPeriod = 2 * 1000 * 1000;
	
	/** Maximum length of a UID string. */
	static const TInt KUidStringLen = 8;	
	} // End of namespace Usif
 
 #include <usif/scr/scrcommon.inl>
 
#endif // SCRCOMMON_H