--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/cmusavainterfacestub/src/cmusavainterfacestub.cpp Fri Jun 11 13:36:18 2010 +0300
@@ -0,0 +1,347 @@
+/*
+* Copyright (c) 2004-2007 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: Stub class of CMusAvaInterface to support unit testing.
+*
+*/
+
+
+#include "cmusavainterfacestub.h"
+#include "musavaavailabilitystub.h"
+#include "mmusavasettingsstub.h"
+#include "musavaavailability.h"
+#include "musavaavailabilityobserverimp.h"
+
+const MMusAvaObserver::TAvailabilityName KMinimumAvailability
+ = MMusAvaObserver::EMusAvaBearerStatus;
+
+const MMusAvaObserver::TAvailabilityName KMandatoryAvailability
+ = MMusAvaObserver::EMusAvaNameRegistration;
+
+const MMusAvaObserver::TAvailabilityName KExtensionAvailability
+ = MMusAvaObserver::EMusAvaOptionHandler;
+
+// ======== MEMBER FUNCTIONS ========
+
+
+CMusAvaInterface2* CMusAvaInterface2::NewL()
+ {
+ CMusAvaInterface2* self = new( ELeave ) CMusAvaInterface2();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+CMusAvaInterface2::~CMusAvaInterface2()
+ {
+ iAvailabilities.ResetAndDestroy();
+ iAvailabilities.Close();
+ delete iSettings;
+ delete iMusAvailObs;
+ }
+
+
+CMusAvaInterface2::CMusAvaInterface2()
+ {
+ }
+
+
+void CMusAvaInterface2::ConstructL()
+ {
+ iSettings = new(ELeave)CMusAvaSettings2();
+ iSettings->ConstructL();
+ // Create network availability stub
+ iMusAvailObs = CMusAvaAvailabilityObserverImp::NewL();
+ CMusAvaAvailabilityStub* stub = CMusAvaAvailabilityStub::NewLC( *iMusAvailObs, *iSettings );
+ iAvailabilities.AppendL( stub );
+ CleanupStack::Pop( stub );
+ }
+
+
+// ---------------------------------------------------------------------------
+// Requests the implementation to provide availabilites.
+// ---------------------------------------------------------------------------
+//
+void CMusAvaInterface2::Availability()
+ {
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// Called by the ECOM framework when MusAvailability Plug-in is request
+// retuns setting interface for the client.
+// ---------------------------------------------------------------------------
+//
+MMusAvaSettings& CMusAvaInterface2::Settings()
+ {
+ return *iSettings;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Called by the ECOM framework when MusAvailability Plug-in is for
+// setting Observer interface for the client.
+// ---------------------------------------------------------------------------
+//
+void CMusAvaInterface2::SetObserver( MMusAvaObserver& aObserver )
+ {
+ iObserver = &aObserver;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Called by the ECOM framework when MusAvailability Plug-in is request
+// to investigate availabilites for the client.
+// ---------------------------------------------------------------------------
+//
+void CMusAvaInterface2::StartL()
+ {
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// Called by the ECOM framework when MusAvailability Plug-in is request
+// to stop investigate or monitoring availabilites for the client.
+// ---------------------------------------------------------------------------
+//
+void CMusAvaInterface2::Stop()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+MMusAvaObserver::TAvailabilityName CMusAvaInterface2::CurrentAvailability()
+ {
+ return iCurrentAvailability;
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+MMusAvaObserver::TAvailabilityStatus CMusAvaInterface2::AvailabilityStatus()
+ {
+ return iAvailabilityStatus;
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+TBool CMusAvaInterface2::MinimumAvailability()
+ {
+ return iCurrentAvailability > KMinimumAvailability;
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+TBool CMusAvaInterface2::MandatoryAvailability()
+ {
+ return iCurrentAvailability > KMandatoryAvailability;
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+TBool CMusAvaInterface2::ExtensionAvailability()
+ {
+ return iCurrentAvailability > KExtensionAvailability;
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+TBool CMusAvaInterface2::Available(
+ MMusAvaObserver::TAvailabilityName aAvailability )
+ {
+ return iCurrentAvailability > aAvailability
+ || ( iCurrentAvailability == aAvailability
+ && MMusAvaObserver::EMusAvaStatusAvailable == iAvailabilityStatus );
+ }
+
+
+// -----------------------------------------------------------------------------
+// tbd
+// -----------------------------------------------------------------------------
+//
+MMusAvaObserver::TAvailabilityStatus CMusAvaInterface2::AvailabilityState(
+ MMusAvaObserver::TAvailabilityName aAvailability )
+ {
+ for ( TInt i = 0; i < iAvailabilities.Count(); i++ )
+ {
+ if ( iAvailabilities[i]->Name() == aAvailability )
+ {
+ return iAvailabilities[i]->State();
+ }
+ }
+ return MMusAvaObserver::EMusAvaStatusNotExecuted;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusAvaInterface2::PrepareForReceivedInviteL()
+ {
+ for ( TInt i = 0; i < iAvailabilities.Count(); i++ )
+ {
+ iAvailabilities[i]->PrepareForReceivedInviteL();
+ }
+ }
+
+void CMusAvaInterface2::AvailabilityChanged(
+ TAvailabilityName aName,
+ TAvailabilityStatus aStatus )
+ {
+
+ }
+
+void CMusAvaInterface2::AvailabilityError(
+ TAvailabilityName aName,
+ TAvailabilityStatus aStatus )
+ {
+
+ }
+
+void CMusAvaInterface2::SetSettingsObserver( MMusAvaSettingsObserver& aObserver )
+ {
+ }
+
+// ======== GLOBAL FUNCTIONS ========
+
+
+CImplementationInformation::CImplementationInformation()
+ {
+
+ }
+
+
+// -----------------------------------------------------------------------------
+// CImplementationInformation::~CImplementationInformation
+// -----------------------------------------------------------------------------
+//
+CImplementationInformation::~CImplementationInformation()
+ {
+ delete iData;
+ delete iDisplayName;
+ delete iOpaqueData;
+ }
+
+CImplementationInformation* CImplementationInformation::NewL(
+ TUid aUid,
+ TInt aVersion,
+ HBufC* aName,
+ HBufC8* aDataType,
+ HBufC8* aOpaqueData,
+ TDriveUnit aDrive,
+ TBool aRomOnly,
+ TBool aRomBased)
+ {
+ CImplementationInformation* self = new(ELeave)CImplementationInformation();
+ CleanupStack::PushL(self);
+ self->iData = aDataType;
+ self->iDisplayName = aName;
+ self->iOpaqueData = aOpaqueData;
+ CleanupStack::Pop(self);
+ return self;
+ //return new (ELeave) CImplementationInformation();
+ }
+
+void REComSession::DestroyedImplementation( TUid )
+ {
+
+ }
+
+
+void REComSession::ListImplementationsL(
+ TUid /*aInterfaceUid*/,
+ RImplInfoPtrArray &aImplInfoArray )
+ {
+ TUid uid = { 0x10101010 };
+ TDriveUnit drive;
+ HBufC* name( NULL );
+ HBufC8* type( NULL );
+
+ CImplementationInformation* info =
+ CImplementationInformation::NewL( uid,
+ 1,
+ name,
+ type,
+ type,
+ drive,
+ EFalse,
+ EFalse );
+ CleanupStack::PushL( info );
+
+ aImplInfoArray.AppendL( info );
+
+ CleanupStack::Pop( info );
+
+ }
+
+
+TAny* REComSession::CreateImplementationL(
+ TUid /*aImplementationUid*/,
+ TInt32 /*aDtorIDKey*/ )
+ {
+ return CMusAvaInterface2::NewL();
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// REComSession::ListImplementationsL
+// -----------------------------------------------------------------------------
+//
+void REComSession::ListImplementationsL(
+ TUid aInterfaceUid,
+ const TEComResolverParams& resolverParams,
+ RImplInfoPtrArray& aImplInfoArray)
+ {
+ _LIT8(KDefaultEngineName,"MultimediaSharing");
+
+ TUid uid(aInterfaceUid);
+ TInt version = 1;
+ HBufC* name = _L("dummy").AllocLC();
+ HBufC8* dataType = _L8("MultimediaSharing").AllocLC();
+ HBufC8* opaqueData = _L8("dummy").AllocLC();
+ TDriveUnit drive;
+ TBool romOnly(ETrue);
+ TBool romBased(ETrue);
+ CImplementationInformation* info =
+ CImplementationInformation::NewL(uid,version,name,dataType,
+ opaqueData,drive,romOnly,romBased);
+ CleanupStack::Pop(3);
+ CleanupStack::PushL(info);
+ aImplInfoArray.AppendL(info);
+ CleanupStack::Pop(info);
+ }
+
+// End of File
+