--- a/dcmofw/dcmoserver/src/AMSmlHelper.cpp Thu Aug 19 10:44:50 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2000 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: Implementation of applicationmanagement components
- *
- */
-
-#include "amsmlhelper.h"
-#include <SyncMLClientDM.h>
-#include <rconnmon.h>
-#include <es_sock.h>
-#include <es_enum_internal.h>
-#include <es_sock_partner.h>
-#include <es_enum.h>
-#include "lawmodebug.h"
-
-const TUid KUidNSmlMediumTypeInternet =
- {
- 0x101F99F0
- };
-const TUid KSosServerUid =
- {
- 0x101F99FB
- };
-
-const TInt KBufSize32 = 32;
-
-void SmlHelper::GetDefaultIAPFromDMProfileL(TInt& aDefaultIAP)
- {
- RLDEBUG("ApplicationManagementServer::GetDefaultIAPFromDMProfileL() - start");
-
- // first try to obtain the current profile id
- RSyncMLSession ses;
- ses.OpenL();
- RLDEBUG(" 1/8");
- CleanupClosePushL(ses);
-
- TSmlJobId jid;
- TSmlUsageType jtype;
- ses.CurrentJobL(jid, jtype);
- RLDEBUG(" 2/8");
- RSyncMLDevManJob job;
- job.OpenL(ses, jid);
- RLDEBUG(" 3/8");
- CleanupClosePushL(job);
- // get profile id
- TSmlProfileId pid(job.Profile() );
- CleanupStack::PopAndDestroy( &job);
-
- TBuf8<KBufSize32> key;
- TBuf<KBufSize32> value;
- TInt num = KErrNotFound;
-
- // get connection property name first
- GetConnectionPropertyNameL(ses, key, EPropertyIntenetAccessPoint);
- RLDEBUG(" 4/8");
- // we need to open sync profile in ordere to open the RSyncMLConnection
- RSyncMLDevManProfile syncProfile;
- syncProfile.OpenL(ses, pid);
- RLDEBUG(" 5/8");
- CleanupClosePushL(syncProfile);
-
- TSmlTransportId transport;
- RArray<TSmlTransportId> connections;
- _LIT8( KNSmlIAPId, "NSmlIapId" );
-
- // now open the syncML connection
- RSyncMLConnection syncConnection;
- syncProfile.ListConnectionsL(connections);
-
- transport = connections[0];
- syncConnection.OpenL(syncProfile, transport);
- RLDEBUG(" 6/8");
- CleanupClosePushL(syncConnection);
-
- const TDesC8& source(syncConnection.GetPropertyL(KNSmlIAPId) );
- RLDEBUG(" 7/8");
- value.Copy(source.Left(value.MaxLength() ) );
- User::LeaveIfError(StrToInt(value, num) );
- RLDEBUG(" 8/8");
-
- aDefaultIAP = num;
-
- // If there is no default Access point in DM profile then use
- // currently used access point by DM session
-
- if (aDefaultIAP == -1)
- {
- RLDEBUG("adefault iap -1");
- TInt sockIapid = -1;
-
- RSocketServ serv;
- CleanupClosePushL(serv);
- User::LeaveIfError(serv.Connect() );
-
- RConnection conn;
- CleanupClosePushL(conn);
- User::LeaveIfError(conn.Open(serv) );
- RLDEBUG("RConnection opened");
-
- TUint count( 0);
- User::LeaveIfError(conn.EnumerateConnections(count) );
- RLDEBUG_2("RConnection count %d",count);
- // enumerate connections
- for (TUint idx=1; idx<=count; ++idx)
- {
- TConnectionInfo connectionInfo;
- TConnectionInfoBuf connInfo(connectionInfo);
- RLDEBUG("RConnection loop");
- TInt err = conn.GetConnectionInfo(idx, connInfo); // iapid
- RLDEBUG("RConnection get conn info");
- if (err != KErrNone)
- {
- CleanupStack::PopAndDestroy( 2); // conn, serv
- User::Leave(err);
- }
- // enumerate connectionclients
- TConnectionEnumArg conArg;
- conArg.iIndex = idx;
- TConnEnumArgBuf conArgBuf(conArg);
- RLDEBUG("RConnection control");
- err=conn.Control(KCOLConnection, KCoEnumerateConnectionClients,
- conArgBuf);
- if (err != KErrNone)
- {
- CleanupStack::PopAndDestroy( 2); // conn, serv
- User::Leave(err);
- }
- TInt cliCount = conArgBuf().iCount;
- RLDEBUG("RConnection second loop");
- for (TUint j=1; j<=cliCount; ++j)
- {
- TConnectionGetClientInfoArg conCliInfo;
- conCliInfo.iIndex = j;
- TConnGetClientInfoArgBuf conCliInfoBuf(conCliInfo);
- RLDEBUG("RConnection another control");
- err=conn.Control(KCOLConnection, KCoGetConnectionClientInfo,
- conCliInfoBuf);
-
- if (err != KErrNone)
- {
- CleanupStack::PopAndDestroy( 2); // conn, serv
- User::Leave(err);
- }
- TConnectionClientInfo conCliInf = conCliInfoBuf().iClientInfo;
- TUid uid = conCliInf.iUid;
- RLDEBUG_2("RConnection check uid %d", uid.iUid);
- if (uid == KSosServerUid)
- {
- sockIapid = connInfo().iIapId;
- RLDEBUG("RConnection uid matched");
- }
-
- }
- }
- CleanupStack::PopAndDestroy( 2); // conn, serv
-
- aDefaultIAP = sockIapid;
- RLDEBUG("RConnection out");
- }
- // get profile's server id
- //aServerId = syncProfile.ServerId().AllocL();
- RLDEBUG("RConnection total out");
-
- CleanupStack::PopAndDestroy( &syncConnection);
- CleanupStack::PopAndDestroy( &syncProfile);
-
- CleanupStack::PopAndDestroy( &ses);
- connections.Close();
- RLDEBUG("ApplicationManagementServer::GetDefaultIAPFromDMProfileL() - end");
- }
-
-void SmlHelper::GetConnectionPropertyNameL(RSyncMLSession& aSyncSession,
- TDes8& aText, TInt aPropertyPos)
- {
- RLDEBUG("ApplicationManagementServer::GetConnectionPropertyNameL() - start");
-
- // at the moment RSyncMLTransport is only needed
- // for internet connection settings
- RSyncMLTransport transport;
- CleanupClosePushL(transport);
- transport.OpenL(aSyncSession, KUidNSmlMediumTypeInternet.iUid);
-
- const CSyncMLTransportPropertiesArray& arr = transport.Properties();
- RLDEBUG("GetConnectionPropertyNameL interior");
- __ASSERT_DEBUG( arr.Count()> aPropertyPos, User::Panic(_L("invalid count"), KErrGeneral) );
-
- const TSyncMLTransportPropertyInfo& info = arr.At(aPropertyPos);
- aText = info.iName;
- CleanupStack::PopAndDestroy( &transport);
-
- RLDEBUG("ApplicationManagementServer::GetConnectionPropertyNameL() - end");
- }
-
-TInt SmlHelper::StrToInt(const TDesC& aText, TInt& aNum)
- {
- TLex lex(aText);
- TInt err = lex.Val(aNum);
- return err;
- }
-
-// End of File