--- /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 <e32base.h>
+#include <bldvariant.hrh>
+#include <SCPServerInterface.h>
+#include <etelmm.h>
+
+#include <SCPParamObject.h>
+
+// 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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR> otherwise an error indication
+ */
+ IMPORT_C TInt Connect();
+
+ /**
+ * Version query
+ * @return The version number of the client DLL
+ * <BR><B>Name of return value:</B> Version
+ * <BR><B>Type of return value:</B> TVersion
+ * <BR><B>Range of return value:</B> Three integer values
+ * <BR><B>Contents of return value:</B> A TVersion-object,
+ * <BR>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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR>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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR>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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR>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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR> 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
+ * <BR><B>Name of return value:</B> Result
+ * <BR><B>Type of return value:</B> Integer
+ * <BR><B>Range of return value:</B> System wide error code
+ * <BR><B>Contents of return value:</B> KErrNone on success,
+ * <BR> 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
+ * <BR><B>Name of return value:</B> Operation status
+ * <BR><B>Type of return value:</B> TBool
+ * <BR><B>Range of return value:</B> ETrue/EFalse
+ * <BR><B>Contents of return value:</B> 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
+ * <BR><B>Name of return value:</B> Operation status
+ * <BR><B>Type of return value:</B> TInt
+ * <BR><B>Range of return value:</B> A system wide error code
+ * <BR><B>Contents of return value:</B> 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
+ * <BR><B>Name of return value:</B> Operation status
+ * <BR><B>Type of return value:</B> TInt
+ * <BR><B>Range of return value:</B> A system wide error code
+ * <BR><B>Contents of return value:</B> 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<TUid>& 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
+ * <BR><B>Name of return value:</B> Operation status
+ * <BR><B>Type of return value:</B> TInt
+ * <BR><B>Range of return value:</B> A system wide error code
+ * <BR><B>Contents of return value:</B> 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
+