// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "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:
//
#ifndef __SSMCMD_HRH__
#define __SSMCMD_HRH__
/** UID2 for SSM command list resource files.
@publishedPartner
@released
*/
#define KUidSsmCommandListResourceFile 0x2000D764
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/** The value of default priority of a command if it is not supplied
This value is a TUint16 value and will deafult to 10000
@publishedPartner
@released
*/
#define KDefaultCommandPriority 10000
#endif
/** Supported verions of command list resource files.
@publishedPartner
@released
*/
enum TSsmResourceVersion
{
ESsmInitialVersion = 1
};
/** Identifiers for different command types.
Note: To add a new command type, extend this enum and add a
new struct to ssmcmd.rh.
All command structs must start with the following header:
1. LLINK conditional_information - set to zero for a command that must always
be included in the command list or the id of a resource (in the same resource file)
containing information used by the policy to determine whether the command
will be included in the command list.
2. WORD type - Command type declared by TSsmCommandType.
3. WORD version - Supported version for the new command type.
@publishedPartner
@released
*/
enum TSsmCommandType
{
/**
Command not defined.
*/
ESsmCmdUndefined = 0,
/**
This command is used for starting processes.
*/
ESsmCmdStartProcess,
/**
This command is used for starting apps.
*/
ESsmCmdStartApp,
/**
This command is used to wait for apparc to initialise its list of applications.
*/
ESsmCmdWaitForApparcInit,
/**
This command is used to wait until all previous commands with
start_method ESsmDeferredWaitForSignal have completed.
*/
ESsmCmdMultipleWait,
/**
This command is used for starting AMAStarter with a particular DSC.
*/
ESsmCmdAMAStarter,
/**
This command is used for publishing a system state change.
*/
ESsmCmdPublishSystemState,
/**
This command is used for publishing a system-wide property change.
*/
ESsmCmdPublishSwp,
/**
This command is used for creating a system-wide property.
*/
ESsmCmdCreateSwp,
/**
This command is used for requesting a change to a system-wide property.
*/
ESsmCmdReqSwProperty,
/**
This command is used for loading a State Utility Plugin.
*/
ESsmCmdLoadSup,
/**
This command is used for initiating a device restart or shutdown.
*/
ESsmCmdPowerOff,
/**
This command is used for finalising drives.
*/
ESsmCmdFinaliseDrives,
/**
This command is used for persisting HAL attributes.
*/
ESsmCmdPersistHalAttributes,
/**
This command is used for starting an old-style custom command.
*/
ESsmCmdLoadDLL,
/**
This command is used for starting a custom command.
*/
ESsmCmdCustomCommand,
/**
This command is used to set the publish and subscribe key.
*/
ESsmCmdSetPAndSKey,
/**
It is used to store the monitor information for a process/app.
*/
ESsmMonitorInfo
};
enum TSsmSoftwareReasons
{
ESoftwareNormal,
ERestoreFactorySettings,
EFirstBoot,
EUnconditionalSoftwareReason = 0xFFFFFFFF
};
enum TSsmHardwareReasons
{
EHardwareNormal,
ETest,
EUnconditionalHardwareReason = 0xFFFFFFFF
};
/** Identifiers for each start-up method.
@publishedPartner
@released
*/
enum TSsmExecutionBehaviour
{
/**
By using this type the starter can continue immediately
with executing its next command.
*/
ESsmFireAndForget = 1,
/**
By using this type the starter cannot continue with the
next command until a command is completed.
It means rendezvous for StartApp and StartProcess and completion of Execute() for other commands.
*/
ESsmWaitForSignal,
/**
By using this type the starter will continue with the next command
before commands completion. However the completion will be checked later when a
MULTIPLE_WAIT command is encountered.
*/
ESsmDeferredWaitForSignal
};
/** Identifier for the level of severity to be associated with a command failure.
@publishedPartner
@released
*/
enum TCmdErrorSeverity
{
/**
Ignore the command failure.
*/
ECmdIgnoreFailure = 0,
/**
*/
ECmdLowSeverity = 25,
/**
*/
ECmdMediumSeverity = 50,
/**
*/
ECmdHighSeverity = 75,
/**
*/
ECmdCriticalSeverity = 100
};
/**
Identifier for the versions of individual Built-In Commands
*/
/**
@publishedPartner
@released
*/
enum TCmdPublishSystemStateVersion
{
ECmdPublishSystemStateInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdPublishSystemStateVersionWithPriority will support the priority field in the command
*/
, ECmdPublishSystemStateVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdPublishSwpVersion
{
ECmdPublishSwpInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdPublishSwpVersionWithPriority will support the priority field in the command
*/
, ECmdPublishSwpVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdCreateSwpVersion
{
ECmdCreateSwpInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdCreateSwpVersionWithPriority will support the priority field in the command
*/
, ECmdCreateSwpVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdReqSwPropertyVersion
{
ECmdReqSwPropertyInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdReqSwPropertyVersionWithPriority will support the priority field in the command
*/
, ECmdReqSwPropertyVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdLoadSupVersion
{
ECmdLoadSupInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdLoadSupVersionWithPriority will support the priority field in the command
*/
, ECmdLoadSupVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdPowerOffVersion
{
ECmdPowerOffInitialVersion = 1
};
/**
@publishedPartner
@released
*/
enum TCmdFinaliseDrivesVersion
{
ECmdFinaliseDrivesInitialVersion = 1
};
/**
@publishedPartner
@released
*/
enum TCmdPersistHalAttributesVersion
{
ECmdPersistHalAttributesInitialVersion = 1
};
/**
@publishedPartner
@released
*/
enum TCmdCustomCommandVersion
{
ECmdCustomCommandInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdCustomCommandVersionWithPriority will support the priority field in the command
*/
, ECmdCustomCommandVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdAmaStarterVersion
{
ECmdAmaStarterInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdAmaStarterVersionWithPriority will support the priority field in the command
*/
, ECmdAmaStarterVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdMultipleWaitVersion
{
ECmdMultipleWaitInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdMultipleWaitVersionWithPriority will support the priority field in the command
*/
, ECmdMultipleWaitVersionWithPriority
#endif //SYMBIAN_SSM_FLEXIBLE_MERGE
};
/**
@publishedPartner
@released
*/
enum TCmdSetPAndSKeyVersion
{
ECmdSetPAndSKeyInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdSetPAndSKeyVersionWithPriority will support the priority field in the command
*/
, ECmdSetPAndSKeyVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdStartAppVersion
{
ECmdStartAppInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdStartAppVersionWithPriority will support the priority field in the command
*/
, ECmdStartAppVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdStartProcessVersion
{
ECmdStartProcessInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdStartProcessVersionWithPriority will support the priority field in the command
*/
, ECmdStartProcessVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TCmdWaitForApparcInitVersion
{
ECmdWaitForApparcInitInitialVersion = 1
#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
/*
The ECmdWaitForApparcInitVersionWithPriority will support the priority field in the command
*/
, ECmdWaitForApparcInitVersionWithPriority
#endif
};
/**
@publishedPartner
@released
*/
enum TSsmMonitorInfoVersion
{
ESsmMonitorInfoInitialVersion = 1
};
/** Defines the possible unloading options for the custom command dll
@publishedPartner
@released
*/
enum TCmdCustomCommandLibUnloading
{
EUnloadOnCommandCompletion = 0, // once Custom Command has completed, the dll is unloaded
ENeverUnload // no attempt is made to unload the dll
};
/** Defines the action to be taken on component failure.
This should be used to set the restart_policy member of SSM_MONITOR_INFO structure to determine what to do
when all retry attempts of the component have failed.
@publishedPartner
@released
*/
enum TSsmRecoveryMethod
{
/**
Ignore the command failure
*/
ESsmIgnoreOnFailure,
/**
Reboot the OS
*/
ESsmRestartOS,
/**
Reboot the OS in a particular mode
*/
ESsmRestartOSWithMode,
/**
Reboot the OS (with no attempts to restart the component being attempted)
*/
ESsmCriticalNoRetries
};
#endif // __SSMCMD_HRH__