--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XcapProtocol/XcapUtils/inc/XcapEarlyIms.h Wed Sep 01 12:23:14 2010 +0100
@@ -0,0 +1,170 @@
+/*
+* 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: CXcapEarlyIms
+*
+*/
+
+
+
+
+#ifndef __XCAPEARLYIMS__
+#define __XCAPEARLYIMS__
+
+#include <etelmm.h>
+
+//COMMON CONSTANTS
+_LIT( KUtilsLogDir, "XDM" );
+_LIT( KUtilsLogFile, "XcapUtils.txt" );
+_LIT8( KXcapFakeImpu, "IMSI@FakeImpu.ims.3gpp.invalid" );
+const TInt KUtilsLogBufMaxSize = 2000;
+
+
+//For testing of EarlyIms in WINSCW
+//#define __FAKE_IMPU__
+
+//FORWARD DECLARATIONS
+class MXcapEarlyImsObs;
+class CAsyncRetrieveAuthorizationInfo;
+
+// CLASS DECLARATION
+class CXcapEarlyIms : public CActive
+
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Symbian OS default constructor.
+ * @return CXcapEarlyIms New instance
+ */
+ IMPORT_C static CXcapEarlyIms* NewL();
+
+ /**
+ * Symbian OS default constructor.
+ * @return CXcapEarlyIms New instance
+ */
+ IMPORT_C void RequestSimDataL( MXcapEarlyImsObs* aObserver );
+
+ /**
+ * Symbian OS default constructor.
+ * @return CXcapEarlyIms New instance
+ */
+ IMPORT_C TPtrC8 PublicIDL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CXcapEarlyIms();
+
+ #ifdef _DEBUG
+
+ /**
+ * Clean the log file
+ * @return void
+ */
+ void CXcapEarlyIms::DeleteLogFileL();
+
+ /**
+ * A global logging function for 8 bit data.
+ * @param aCommand command to be handled
+ */
+ static void WriteToLog( TRefByValue<const TDesC8> aFmt,... );
+
+ #endif //_DEBUG
+
+ private:
+
+ /**
+ * C++ default constructor is private.
+ */
+ CXcapEarlyIms();
+
+ /**
+ * Symbian OS second-phase constructor.
+ * @return void
+ */
+ void ConstructL();
+
+ /**
+ * From CActive
+ * A request has completed
+ * @return void
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ * Cancel an outstanding request.
+ * @return void
+ */
+ void DoCancel();
+
+ /**
+ * Get the module name
+ * @param TDes& Module name on return
+ * @return void
+ */
+ void ModuleNameL( TDes& aModuleName ) const;
+
+ /**
+ * Find out the type of the SIM card
+ * and its application
+ * @return void
+ */
+ void SelectSimTypeL();
+
+ /**
+ * Derive IMPU and IMPI from the values
+ * retrieved from the SIM card
+ * @return TPtrC8 User's Public ID
+ */
+ TPtrC8 DeriveL();
+
+ private: //Data
+
+
+ enum TRequestPhase
+ {
+ TRequestIdle = 0,
+ TRequestAuth,
+ TRequestNetwork,
+ TRequestUsimAuth
+ };
+
+ enum TXcapSimType
+ {
+ ESimTypeGsm = 0,
+ ESimTypeCdma,
+ ESimTypeWcdma,
+ ESimTypeUnknown
+ };
+
+ TBool iRequestComplete;
+ HBufC8* iImpu;
+ HBufC8* iImpi;
+ RTelServer iServer;
+ RMobilePhone iPhone;
+ TXcapSimType iSimType;
+ TRequestPhase iRequestPhase;
+ MXcapEarlyImsObs* iObserver;
+ CAsyncRetrieveAuthorizationInfo* iRetriever;
+ RMobilePhone::CImsAuthorizationInfoV5* iAuthData;
+ RMobilePhone::TMobilePhoneSubscriberId iImsi;
+ RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode;
+ RMobilePhone::TMobilePhoneNetworkIdentity iNetworkCode;
+ TPckgBuf<RMobilePhone::TMobilePhoneNetworkInfoV1> iNetworkInfoPckg;
+ };
+
+#endif
+
+// End of File