epoc32/include/comms-infras/es_mobility_apiext.h
branchSymbian3
changeset 4 837f303aceeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/comms-infras/es_mobility_apiext.h	Wed Mar 31 12:33:34 2010 +0100
@@ -0,0 +1,111 @@
+// Copyright (c) 1997-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:
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef CS_MOBILITY_APIEXT_H
+#define CS_MOBILITY_APIEXT_H
+
+#include <es_sock.h>
+
+#include <comms-infras/es_api_ext.h>
+#include <comms-infras/api_ext_msg.h>
+
+class RCommsMobilityApiExt : public RCommsApiExtension<EMobilityApiExt>
+/**
+Comms Mobility API extension for client not running an Active Scheduler.
+
+This class can actually be used by any client, one running an Active Scheduler 
+and one that is not. However, if the Active Scheduler is present, 
+it is recommended to use CActiveCommsMobilityApiExt which is much simpler.
+
+@see CActiveCommsMobilityApiExt
+
+@publishedAll
+@released
+*/
+	{
+public:
+	IMPORT_C explicit RCommsMobilityApiExt();
+	IMPORT_C void Close();
+
+	IMPORT_C void RegisterForMobilityNotification(TDes8& aResponseEventBuf, TRequestStatus& aStatus);
+	IMPORT_C void CancelMobilityNotification();
+
+	IMPORT_C void MigrateToPreferredCarrier();
+	IMPORT_C void IgnorePreferredCarrier();
+	IMPORT_C void NewCarrierAccepted();
+	IMPORT_C void NewCarrierRejected();
+	};
+
+
+class MMobilityProtocolResp
+/**
+Comms Mobility API extension protocol.
+Used with CActiveCommsMobilityApiExt to reqister for mobility response messages.
+
+@publishedAll
+@released
+*/
+	{
+public:
+	virtual void PreferredCarrierAvailable(TAccessPointInfo aOldAP, TAccessPointInfo aNewAP, TBool aIsUpgrade, TBool aIsSeamless) = 0;
+	virtual void NewCarrierActive(TAccessPointInfo aNewAP, TBool aIsSeamless) = 0;
+	virtual void Error(TInt aError) = 0;
+	};
+
+class CActiveCommsMobilityApiExt : public CActive
+/**
+Comms Mobility API extension for client running an Active Scheduler.. Whenever an Active 
+Scheduler is present, this API is recommended over RCommsMobilityApiExt because of its simplicity.
+
+With few important exceptions, CActiveCommsMobilityApiExt exports very similar APIs to RCommsMobilityApiExt
+
+@see RCommsMobilityApiExt
+
+@publishedAll
+@released
+*/
+	{
+public:
+	IMPORT_C static CActiveCommsMobilityApiExt* NewL(RCommsSubSession& aExtensionProvider,MMobilityProtocolResp& aProtocol);
+	IMPORT_C ~CActiveCommsMobilityApiExt();
+
+	IMPORT_C void MigrateToPreferredCarrier();
+	IMPORT_C void IgnorePreferredCarrier();
+	IMPORT_C void NewCarrierAccepted();
+	IMPORT_C void NewCarrierRejected();
+
+protected:
+    void ConstructL(RCommsSubSession& aExtensionProvider);
+    explicit CActiveCommsMobilityApiExt(MMobilityProtocolResp& aProtocol);
+
+private:
+  	void DoCancel();
+	void RunL();
+	TInt RunError(TInt aError);
+
+private:
+	MMobilityProtocolResp& iProtocol;
+	RCommsMobilityApiExt iExtApi;
+	RBuf8 iResponseBuf;
+	};
+
+#endif   // CS_MOBILITY_APIEXT_H
+