--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/connectionmanager/inc.s60/connectionmanager.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2008 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: Java Connection Manager
+* Provides connection management for all Java Connections:
+ - Network Access Point selection
+*
+*/
+
+
+#ifndef CONNECTIONMANAGER_H
+#define CONNECTIONMANAGER_H
+
+#include <e32base.h>
+#include <javauid.h>
+
+using namespace java::util; // Uid
+static const int KJavaNetworkAccessNotSpecified = -1; // returned when no IAP/SNAP is defined in java storage
+static const int KAlwaysAskId = -2; // returned in case of AskAlways case
+static const int KDefaultConnection = -3; // froe default connection case
+
+/**
+ * Java Connection Manager
+ * Java The Connection Manager caches and handles Network Access Point selection.
+ * The component is central point for all Java Connection Implementations
+ * requiring Network Access Point selection.
+ *
+ * Network Access Point selection
+ * Java Connection Manager component handles Network Access Point selection
+ * in following priority steps:
+ * 1. Is SNAP ID parameter (nokia_netid) specified in the URI.
+ * 2. Is IAP ID parameter (nokia_apnid) specified in the URI.
+ * 3. Is Session default Network Access Point (SNAP/IAP) set?
+ * 4. Is MIDlet suite default Network Access Point (SNAP/IAP) defined in CenRep?
+ * 5. Prompt User to select SNAP/IAP. If Default Connection is set,
+ * it is used instead and User is not prompted at all.
+ *
+ * User SNAP/IAP selection is set as Session default Network Access Point.
+ * The Session default Network Access Point exists until MIDlet is closed.
+ *
+ * Usage:
+ *
+ * @code
+ * TJavaNetworkAccessPoint access = ConnectionManager::SelectNetworkAccessPointL( appUid );
+ * if ( access.Type() == ESnap )
+ * // start connection with access.Id() as SNAP paramater
+ * else if ( access.Type() == EIap )
+ * // start connection with access.Id() as IAP paramater
+ * else
+ * // start connection without selected Network Access Point
+ * @endcode
+ *
+ * @lib javaconnectionmanager.dll
+ */
+class ConnectionManager
+{
+
+ /**
+ * Handles and caches the Network Access Point selection for
+ * Java Connection Implementation.
+ *
+ * Start
+ * |
+ * Is Session default Network Access Point set? - Yes --------------------+
+ * | |
+ * No |
+ * | |
+ * MIDlet suite default Network Access Point defined - Yes ---------------+
+ * | |
+ * No |
+ * | |
+ * Prompt User to select SNAP/IAP ID |
+ * | |
+ * +-- Cache selection as Session default Network Access Point ---------+
+ * |
+ * |
+ * Return Network Access Point
+ *
+ * @param aAppUid Java application UID
+ * @return Selected Java Network Access Point
+ */
+
+
+
+public:
+
+ /**
+ * Prompt User to select Network Access Point
+ * If Default Connection is defined in platform, the Default Connection is used instead.
+ * @return Selected Network Access Point
+ */
+
+ static bool SelectNetworkAccessPoint(char * , int *);
+
+
+ /* prompt the user for
+ * access point
+ */
+
+ static void PromptUserL(char *);
+
+ /* check if get the
+ * device default access point
+ */
+
+ static void GetDeviceDefaultAccessPointL(char *);
+
+ /**
+ * Get the default IAP defined for the java application
+ * from java storage
+ * @param Application Suite UID
+ * @return default IAP
+ */
+
+ IMPORT_C static unsigned int getApnIdL(Uid aAppSuiteUid);
+
+ /**
+ * Sets default IAP defined for the java application
+ * defined by App UID into java storage
+ * @param Application Suite UID
+ * @param default IAP Id
+ */
+
+ IMPORT_C static void setApnIdL(Uid aAppSuiteUid, int aApnId);
+
+ /**
+ * Sets default SNAP defined for the java application
+ * defined by App UID into java storage
+ * @param Application Suite UID
+ * @param default IAP Id
+ */
+
+ IMPORT_C static void setDestinationNetworkIdL(Uid aAppSuiteUid, int aApnId);
+
+ /**
+ * Get the default SNAP defined for the java application
+ * from java storage
+ * @param Application Suite UID
+ * @return default SNAP ID
+ */
+
+ IMPORT_C static unsigned int getDestinationNetworkIdL(Uid aAppSuiteUid);
+
+ /**
+ * Checks if the given IAP id falls in the destination id.
+ * @param aMatchIapId , iap id
+ * @param aDestId, destination id. If this param is -1 then it checks the iap in default SNAP
+ * @return true if given ap is present in the SNAP , false otherwise
+ */
+ IMPORT_C static bool isIapDefault(TUint32 aMatchIapId, TUint32 aDestId, bool aDefault = true);
+
+private:
+
+ static HBufC8 * PromptUserSelectNetworkAccessPointL();
+ static HBufC8 * CreateDescriptorL(const int aType, const int id);
+
+
+
+ static unsigned int ParseNetworkAccessPointL(const TDesC8& aDes);
+
+
+};
+
+#endif // CONNECTIONMANAGER_H