--- a/cmmanager/cmmgr/cmmserver/src/cmmconnmethodinstance.cpp Thu May 27 14:35:19 2010 +0300
+++ b/cmmanager/cmmgr/cmmserver/src/cmmconnmethodinstance.cpp Thu Jun 10 16:00:16 2010 +0300
@@ -144,7 +144,7 @@
// Set connection method ID.
// ---------------------------------------------------------------------------
//
-void CCmmConnMethodInstance::SetId( const TUint32& aConnMethodId )
+void CCmmConnMethodInstance::SetId( const TUint32 aConnMethodId )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_SETID_ENTRY );
@@ -175,7 +175,7 @@
// Set handle ID.
// ---------------------------------------------------------------------------
//
-void CCmmConnMethodInstance::SetHandle( const TInt& aHandle )
+void CCmmConnMethodInstance::SetHandle( const TInt aHandle )
{
iHandle = aHandle;
}
@@ -242,7 +242,12 @@
User::Leave( KErrCorrupt );
}
- iPlugin->GetPluginDataL( iPluginDataInstance ); //TODO, check deletes for iPluginDataInstance
+ // Embedded destination does not have any data.
+ if ( !IsEmbeddedDestination() )
+ {
+ iPlugin->GetPluginDataL( iPluginDataInstance );
+ }
+
aConnMethodStruct->IncrementReferenceCounter();
switch ( aConnMethodStruct->GetStatus() )
@@ -271,7 +276,7 @@
// CCmmConnMethodInstance::GetIntAttributeL
// ---------------------------------------------------------------------------
//
-TUint32 CCmmConnMethodInstance::GetIntAttributeL( const TUint32& aAttribute )
+TUint32 CCmmConnMethodInstance::GetIntAttributeL( const TUint32 aAttribute )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_GETINTATTRIBUTEL_ENTRY );
@@ -280,6 +285,26 @@
User::Leave( KErrCorrupt );
}
+ // Embedded destination has only limited set of attributes.
+ if ( IsEmbeddedDestination() )
+ {
+ switch ( aAttribute )
+ {
+ case CMManager::ECmId:
+ case CMManager::ECmBearerType:
+ case CMManager::ECmDefaultPriority:
+ case CMManager::ECmDefaultUiPriority:
+ case ECmExtensionLevel:
+ {
+ break;
+ }
+ default:
+ {
+ User::Leave( KErrNotSupported );
+ }
+ }
+ }
+
TUint32 result = iPlugin->GetIntAttributeL( aAttribute, iPluginDataInstance );
OstTraceFunctionExit0( CCMMCONNMETHODINSTANCE_GETINTATTRIBUTEL_EXIT );
@@ -290,7 +315,7 @@
// CCmmConnMethodInstance::GetBoolAttributeL
// ---------------------------------------------------------------------------
//
-TBool CCmmConnMethodInstance::GetBoolAttributeL( const TUint32& aAttribute )
+TBool CCmmConnMethodInstance::GetBoolAttributeL( const TUint32 aAttribute )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_GETBOOLATTRIBUTEL_ENTRY );
@@ -299,6 +324,27 @@
User::Leave( KErrCorrupt );
}
+ // Embedded destination has only limited set of attributes.
+ if ( IsEmbeddedDestination() )
+ {
+ switch ( aAttribute )
+ {
+ case CMManager::ECmCoverage:
+ case CMManager::ECmDestination:
+ case CMManager::ECmProtected:
+ case CMManager::ECmHidden:
+ case CMManager::ECmBearerHasUi:
+ case CMManager::ECmVirtual:
+ {
+ break;
+ }
+ default:
+ {
+ User::Leave( KErrNotSupported );
+ }
+ }
+ }
+
TBool retVal( EFalse );
switch ( aAttribute )
{
@@ -306,16 +352,40 @@
{
if ( GetId() > 0 )
{
- if ( iCache )
+ // Check first if this is embedded destination.
+ retVal = iPlugin->GetBoolAttributeL( CMManager::ECmDestination,
+ iPluginDataInstance );
+ if ( retVal )
{
- retVal = iCache->CheckIfCmConnected( GetId() );
+ retVal = iCache->DestinationConnectedL( GetId() );
+ }
+ else
+ {
+ if ( iCache )
+ {
+ retVal = iCache->CheckIfCmConnected( GetId() );
+ }
}
}
}
break;
case CMManager::ECmIsLinked:
{
- //TODO
+ // Does any virtual iap point to this connection method.
+ // Check first if this connection method is an embedded destination.
+ if ( GetId() > 0 )
+ {
+ retVal = iPlugin->GetBoolAttributeL( CMManager::ECmDestination,
+ iPluginDataInstance );
+ if ( retVal )
+ {
+ retVal = iCache->DestinationPointedToByVirtualIap( GetId() );
+ }
+ else
+ {
+ retVal = iCache->ConnMethodPointedToByVirtualIap( GetId() );
+ }
+ }
}
break;
default:
@@ -333,7 +403,7 @@
// CCmmConnMethodInstance::GetStringAttributeL
// ---------------------------------------------------------------------------
//
-HBufC* CCmmConnMethodInstance::GetStringAttributeL( const TUint32& aAttribute )
+HBufC* CCmmConnMethodInstance::GetStringAttributeL( const TUint32 aAttribute )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_GETSTRINGATTRIBUTEL_ENTRY );
@@ -342,6 +412,12 @@
User::Leave( KErrCorrupt );
}
+ // Embedded destination has only limited set of attributes.
+ if ( IsEmbeddedDestination() )
+ {
+ User::Leave( KErrNotSupported );
+ }
+
HBufC* result = iPlugin->GetStringAttributeL( aAttribute, iPluginDataInstance );
OstTraceFunctionExit0( CCMMCONNMETHODINSTANCE_GETSTRINGATTRIBUTEL_EXIT );
@@ -352,7 +428,7 @@
// CCmmConnMethodInstance::GetString8AttributeL
// ---------------------------------------------------------------------------
//
-HBufC8* CCmmConnMethodInstance::GetString8AttributeL( const TUint32& aAttribute )
+HBufC8* CCmmConnMethodInstance::GetString8AttributeL( const TUint32 aAttribute )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_GETSTRING8ATTRIBUTEL_ENTRY );
@@ -361,6 +437,12 @@
User::Leave( KErrCorrupt );
}
+ // Embedded destination has only limited set of attributes.
+ if ( IsEmbeddedDestination() )
+ {
+ User::Leave( KErrNotSupported );
+ }
+
HBufC8* result = iPlugin->GetString8AttributeL( aAttribute, iPluginDataInstance );
OstTraceFunctionExit0( CCMMCONNMETHODINSTANCE_GETSTRING8ATTRIBUTEL_EXIT );
@@ -372,8 +454,8 @@
// ---------------------------------------------------------------------------
//
void CCmmConnMethodInstance::SetIntAttributeL(
- const TUint32& aAttribute,
- const TUint32& aValue )
+ const TUint32 aAttribute,
+ const TUint32 aValue )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_SETINTATTRIBUTEL_ENTRY );
@@ -392,8 +474,8 @@
// ---------------------------------------------------------------------------
//
void CCmmConnMethodInstance::SetBoolAttributeL(
- const TUint32& aAttribute,
- const TBool& aValue )
+ const TUint32 aAttribute,
+ const TBool aValue )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_SETBOOLATTRIBUTEL_ENTRY );
@@ -412,7 +494,7 @@
// ---------------------------------------------------------------------------
//
void CCmmConnMethodInstance::SetStringAttributeL(
- const TUint32& aAttribute,
+ const TUint32 aAttribute,
const TDesC16& aValue )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_SETSTRINGATTRIBUTEL_ENTRY );
@@ -432,7 +514,7 @@
// ---------------------------------------------------------------------------
//
void CCmmConnMethodInstance::SetString8AttributeL(
- const TUint32& aAttribute,
+ const TUint32 aAttribute,
const TDesC8& aValue )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_SETSTRING8ATTRIBUTEL_ENTRY );
@@ -481,7 +563,7 @@
// connection method structure to reflect the new deleted state.
// ---------------------------------------------------------------------------
//
-void CCmmConnMethodInstance::DeleteSuccessful( const TUint32& aNewSecondaryId )
+void CCmmConnMethodInstance::DeleteSuccessful( const TUint32 aNewSecondaryId )
{
OstTraceFunctionEntry0( CCMMCONNMETHODINSTANCE_DELETESUCCESSFUL_ENTRY );
@@ -516,7 +598,7 @@
// ---------------------------------------------------------------------------
//
void CCmmConnMethodInstance::RemoveConnMethodFromSessionDestinationHandles(
- const TUint32& aConnMethodId )
+ const TUint32 aConnMethodId )
{
if ( iCmmSession )
{