installationservices/swcomponentregistry/inc/scrcommon.h
changeset 24 84a16765cd86
child 25 98b66e4fb0be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swcomponentregistry/inc/scrcommon.h	Fri Mar 19 09:33:35 2010 +0200
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2008-2009 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
+		
+		EGetIsMediaPresent				 = 0x41,	///< Retrieve the presence info of medias where the component is installed.
+		EGetIsComponentOrphaned			 = 0x42,	///< Retrieve whether the given component is orphaned.
+		EGetIsComponentOnReadOnlyDrive	 = 0x43,	///< Retrieve if the component is present on a read-only drive.
+		EGetIsComponentPresent			 = 0x44,	///< Retrieve if the software component is fully present.
+						
+		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.
+		
+		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.
+		};
+		
+	enum TScrSubSessionFunction
+	/**
+		Functions supported by a SCR server session.
+	 */
+		{
+		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.
+		};
+	
+	/**
+		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