authenticationservices/authenticationserver/inc/authserver/authclient.h
changeset 29 ece3df019add
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/authenticationservices/authenticationserver/inc/authserver/authclient.h	Tue Nov 24 09:06:03 2009 +0200
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2005-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: 
+* RAuthclient - external authentication client session interface
+* The defined fuctionality is used by clients to access the authentication
+* server.
+* The access to a specific functionality is dependant on the client 
+* capabilities and may be restricted.             
+*
+*/
+
+
+/**
+ @file 
+ @publishedAll
+ @released
+*/
+
+#ifndef AUTHCLIENT_H
+#define AUTHCLIENT_H
+
+#include "authserver/identity.h"
+#include "authserver/authexpression.h"
+#include "authserver/plugindesc.h"
+#include "authserver/idandstring.h"
+#include <scs/scsclient.h>
+namespace AuthServer
+{
+
+class CAsyncResponseDecoder;
+
+/**
+ * Client side interface to the authentication server providing general
+ * authentication and plugin query services.
+ *
+ */	
+class RAuthClient : public RScsClientBase
+	{
+	
+	friend class CAsyncResponseDecoder;
+	
+public:
+
+    IMPORT_C RAuthClient();
+    
+	IMPORT_C TInt Connect();
+
+	IMPORT_C void AuthenticateL(
+	    const CAuthExpression& aExpression,
+	    TTimeIntervalSeconds   aTimeout,
+		TBool                  aClientSpecificKey,
+		TBool                  aWithString,
+	    CIdentity*&            aIdentityResult, 
+	    TRequestStatus&        aStatus);
+	
+	IMPORT_C CIdentity* AuthenticateL(
+	    const CAuthExpression& aExpression,
+	    TTimeIntervalSeconds   aTimeout,
+		TBool                  aClientSpecificKey,
+		TBool                  aWithString);
+
+	IMPORT_C CIdentity* AuthenticateL(
+			const CAuthExpression& 	aAuthExpression,
+		    TTimeIntervalSeconds   	aTimeout,
+			TBool                  	aClientSpecificKey,
+			TUid 				   	aClientSid,
+			TBool                  	aWithString,
+			const TDesC&			aClientMessage);
+			
+	IMPORT_C void AuthenticateL(
+		const CAuthExpression& 	aAuthExpression,
+	    TTimeIntervalSeconds   	aTimeout,
+		TBool                  	aClientSpecificKey,
+		TUid 					aClientSid,
+		TBool                  	aWithString,
+	    const TDesC&			aClientMessage,
+	    CIdentity*&            	aIdentityResult,
+	    TRequestStatus&        	aStatus
+		);
+
+	IMPORT_C void DeauthenticateL();
+	
+	IMPORT_C void PluginsL(RPluginDescriptions& aPluginList);
+	IMPORT_C void ActivePluginsL(RPluginDescriptions& aPluginList);
+	IMPORT_C void PluginsOfTypeL(TAuthPluginType aType,
+								  RPluginDescriptions& aPluginList);
+	
+	IMPORT_C void PluginsWithTrainingStatusL(
+        TAuthTrainingStatus aStatus,
+		RPluginDescriptions& aPluginList);
+	
+	IMPORT_C void IdentitiesL(RIdentityIdArray& aIdList);
+	IMPORT_C void IdentitiesWithStringL(RIdAndStringArray& aList);
+
+	IMPORT_C HBufC* IdentityStringL(TIdentityId aId);
+	IMPORT_C void SetIdentityStringL(TIdentityId aId, const TDesC& aString);
+	
+	IMPORT_C TPluginId PreferredTypePluginL(TAuthPluginType aPluginType);
+	
+	IMPORT_C TUint Cancel();
+	IMPORT_C void Close();
+	
+	IMPORT_C void ListAuthAliasesL(RPointerArray<HBufC>& aAuthAliasList);
+	
+	IMPORT_C CAuthExpression* CreateAuthExpressionL(const TDesC& aAuthString) const;
+	
+protected:
+	/* @internalComponent */
+	void CheckAsyncDecoderL();
+	/* @internalComponent */
+	HBufC8* SendReceiveBufferLC(TInt aMessage);
+	/* @internalComponent */
+	HBufC8* SendReceiveBufferLC(TInt aMessage, TIpcArgs& aArgs);
+	
+private:
+	TInt StartAuthServer();
+
+protected:
+	CAsyncResponseDecoder* iAsyncResponseDecoder;
+};
+  
+} // namespace
+#endif
+