javauis/amms_qt/module/src/cammsmodulecontainer.cpp
changeset 23 98ccebc37403
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_qt/module/src/cammsmodulecontainer.cpp	Fri May 14 15:47:24 2010 +0300
@@ -0,0 +1,91 @@
+/*
+* 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:  Container for CAMMSModule objects.
+*
+*/
+
+
+// INCLUDE FILES
+#include <logger.h>
+
+#include "cammsmodulecontainer.h"
+
+// CONSTANTS
+// Before further testing is done, 4 is sufficient average value to be used here.
+const TInt KAMMSContainerDefaultGranularity = 4;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// Destructor
+CAMMSModuleContainer::~CAMMSModuleContainer()
+{
+    ResetAndDestroy();
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSModuleContainer::RemovePlayer
+// Removes player from all modules.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CAMMSModuleContainer::RemovePlayer(CMMAPlayer* aPlayer)
+{
+    // Remove player from all modules
+    for (TInt i = 0; i < Count(); i++)
+    {
+        At(i)->RemovePlayerNoStateCheck(aPlayer);
+    }
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSModuleContainer::RemoveModule
+// Removes module from container.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CAMMSModuleContainer::RemoveModule(CAMMSModule* aModule)
+{
+    // If the element is found, index is set to the position of that module
+    // element within the array.
+    TInt index = KErrNotFound;
+
+    TKeyArrayFix key(0, ECmpTInt);   // offset = 0, type integer
+
+    // find returns 0, if the element with the specified key is found. Non-zero
+    // if the element with the specified key is not found
+    TInt retVal = Find(aModule, key, index);
+
+    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSModuleContainer::DisposeModule find result %d",
+              retVal);
+
+    if (retVal == KErrNone)
+    {
+        // Remove the element by position. The module itself is not deleted
+        // here, so it has to be deleted elsewhere if needed.
+        Delete(index);
+    }
+    // else, module was not added to this container
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSModuleContainer::CAMMSModuleContainer
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+CAMMSModuleContainer::CAMMSModuleContainer():
+        CArrayPtrSeg< CAMMSModule >(KAMMSContainerDefaultGranularity)
+{
+}
+
+//  End of File