diff -r 000000000000 -r b497e44ab2fc remotemgmt_plat/scp_server_api/inc/SCPClient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/scp_server_api/inc/SCPClient.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,278 @@ +/* +* Copyright (c) 2005 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: +* Contains the implementation for RSCPClient, the client side interface +* for SCP Server. +* +*/ + + +#ifndef SCPCLIENT_H +#define SCPCLIENT_H + +// INCLUDES +#include +#include +#include +#include + +#include + +// Code change types. Forced change is used when password expires. +const TInt KSCPNormalChange = 1; +const TInt KSCPForcedChange = 2; + +/** +* Implements the public interface towards the SCP Server +* Contains methods for controlling the server operation +*/ +class RSCPClient : public RSessionBase + { + public: // Methods + + // Constructors and destructor + + /** + * C++ default constructor. + */ + IMPORT_C RSCPClient(); + + // New methods + + /** + * The standard connection method, starts the server process, if necessary + * @return A system error code indicating the result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt Connect(); + + /** + * Version query + * @return The version number of the client DLL + *
Name of return value: Version + *
Type of return value: TVersion + *
Range of return value: Three integer values + *
Contents of return value: A TVersion-object, + *
which contains the Major, Minor and Build version numbers + */ + IMPORT_C TVersion Version() const; + + /** + * A method for querying the stored ISA code + * @param aCode A buffer for storing the code + * @return The result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt GetCode( TSCPSecCode& aCode ); + + /** + * Used to store the new code, the user has set, in SCP + * @param aCode A descriptor containing the new code + * @return The result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt StoreCode( TSCPSecCode& aCode ); + + /** + * Used to change the system security code, uses the stored code + * as the current one. + * @param aNewCode A descriptor containing the new code + * @return The result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt ChangeCode( TDes& aNewCode ); + + /** + * Used to lock the phone, uses the stored code for verifying the request + * @param aLocked ETrue to lock the phone, EFalse to unlock. + * @return The result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt SetPhoneLock( TBool aLocked ); + + /** + * Query the current state of the system lock. + * @param aState Will contain the state after a successful call. + * @return The result of the operation + *
Name of return value: Result + *
Type of return value: Integer + *
Range of return value: System wide error code + *
Contents of return value: KErrNone on success, + *
otherwise an error indication + */ + IMPORT_C TInt GetLockState( TBool& aState ); + + /** + * A method for retrieving the operational status of the server in relation + * to the given command. + * @param aCommand The command, whose status will be queried + * @return The status, see below + *
Name of return value: Operation status + *
Type of return value: TBool + *
Range of return value: ETrue/EFalse + *
Contents of return value: The query will return ETrue + * in case the operation is actually in progress, or if it was already + * completed but not acknowledged via this call. This history information is + * kept to ensure, that interested parties receive the information regardless + * of the execution schedule. + * Otherwise EFalse will be returned. + */ + IMPORT_C TBool QueryAdminCmd( TSCPAdminCommand aCommand ); + + /** + * Get the value of an identified parameter stored on the server. + * @param aParamID The ID of the requested parameter. + * @param aTimeout The value to be set. + * @return The status, see below + *
Name of return value: Operation status + *
Type of return value: TInt + *
Range of return value: A system wide error code + *
Contents of return value: The status code of the operation. + * + * NOTE: FUNCTION IS DEPRECATED. Use SetParamValue( TInt aParamID, TDes& aValue, const TUint32 aCallerID ) instead. + */ + IMPORT_C TInt SetParamValue( TInt aParamID, TDes& aValue ); + + /** + * Get the value of an identified parameter stored on the server. + * @param aParamID The ID of the requested parameter. + * @param aValue Will contain the requested value after a successful call. + * @return The status, see below + *
Name of return value: Operation status + *
Type of return value: TInt + *
Range of return value: A system wide error code + *
Contents of return value: The status code of the operation. + */ + IMPORT_C TInt GetParamValue( TInt aParamID, TDes& aValue ); + + enum TSCPButtonConfig + { + SCP_OK, + SCP_OK_CANCEL, + SCP_OK_ETEL, + SCP_OK_CANCEL_ETEL + }; + + /** + * Request the security code from the user. + * + */ + IMPORT_C TInt SecCodeQuery( RMobilePhone::TMobilePassword& aPassword, + TSCPButtonConfig aButtonsShown, + TBool aECSSupport, + TInt aFlags ); + + /** + * Prompt the user to change the security code. + */ + IMPORT_C TInt ChangeCodeRequest(); + + /** + * Checks the server configuration and reports the status. + * @param aMode The check mode, initial or complete. The initial mode only checks if the + * configuration has already been validated. + */ + IMPORT_C TInt CheckConfiguration( TInt aMode ); + + /** + * This function can be used to cleanup the parameter values stored by any + * application, initialize the parameters to default values. The call notifies + * the stakeholders (Other applications that may be using the same parameters) about the + * change (value being revoked to default) + * + * @param: + * aEvent - One of the external events that lead to cleanup (Currently application + * Uninstallation is the only event that is supported) + * aAppIDs - The UID's of the application(s) that were uninstalled/removed + */ + IMPORT_C TInt PerformCleanupL(RArray& aAppIDs); + + /** + * Get the value of an identified parameter stored on the server. + * @param aParamID The ID of the requested parameter. + * @param aValue The value to be set. + * @param aCallerID The SID of the calling application. + * + * NOTE: Currently TCServer is the only component that is capable of calling this function + * TCServer is assured to send the correct caller id always. + * + * @return The status, see below + *
Name of return value: Operation status + *
Type of return value: TInt + *
Range of return value: A system wide error code + *
Contents of return value: The status code of the operation. + * + * NOTE: FUNCTION IS DEPRECATED. Use SetParamValue( TInt aParamID, TDes& aValue, const TUint32 aCallerID ) instead. + */ + IMPORT_C TInt SetParamValue( TInt aParamID, TDes& aValue, TUint32 aCallerID ); + + + IMPORT_C TInt SetAutoLockPeriod( TInt aValue ); + private: // Methods + + /** + * Request the security code from the user (encapsulates functionalities of SecCodeQuery()). + * + */ + TInt SetSecurityCodeL(RMobilePhone::TMobilePassword& aPassword, TSCPButtonConfig aButtonsShown, + TBool aECSSupport, TInt aFlags, TInt& aResFileSCP, TInt& aResFileSecUi); + + /** + * Request the new code from the user and try to change the code + */ + TInt GetNewCodeAndChange( TDes& aOldCode, TInt aMode, TSCPSecCode* aNewDOSCode = NULL, HBufC** aNewCodePptr = NULL ); + + /** + * Process the server's response-commands + */ + void ProcessServerCommandsL( TDes8& aInParams, + CSCPParamObject** aOutParams = NULL, + TBool isNotifierEvent = EFalse ); + + /** + * Show UI controls based on server commands + */ + void ShowUIL( CSCPParamObject& aContext ); + + /** + * Fetch the limit-values for code length + */ + void FetchLimits( TInt& aMin, TInt& aMax ); + TBool isFlagEnabled; + }; + +#endif //SCPCLIENT_H + +// End of File +