satengine/SatServer/Engine/src/TSatEventsObserver.cpp
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/Engine/src/TSatEventsObserver.cpp	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,185 @@
+/*
+* Copyright (c) 2002-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:  Capsulates the observer and events.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "TSatEventsObserver.h"
+//lint -e766 Used inside TRAP macro, lint misfunction.
+#include    "EnginePanic.h"
+#include    "SatLog.h"
+
+// FORWARD DECLARE
+class MSatEventObserver;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::TSatEventsObserver
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+TSatEventsObserver::TSatEventsObserver(
+    MSatEventObserver* aObserver ) // Observer of events.
+    :
+    iEvents(),
+    iObserver( aObserver ),
+    iMarkedForDelete( EFalse ) // This observer is not marked for delete, yet.
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::TSatEventsObserver calling" )
+
+    __ASSERT_ALWAYS( aObserver, PanicSatEngine( ESatEngineNullPointer ) );
+
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::TSatEventsObserver exiting" )
+    }
+
+// Destructor
+TSatEventsObserver::~TSatEventsObserver()
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::~TSatEventsObserver calling" )
+
+    iEvents.Reset();
+    iEvents.Close();
+    iObserver = NULL;
+
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::~TSatEventsObserver exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::AddEventL
+// Adds event to the list of events. If aEvent is already in the list, it will
+// not be added to the list.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void TSatEventsObserver::AddEventL(
+    TInt aEvent ) // Event to be added to list.
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL calling" )
+
+    // Check if the event is already added to the list.
+    if ( !ObservingEvent( aEvent ) )
+        {
+        LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL add event" )
+        User::LeaveIfError( iEvents.Append( aEvent ) );
+        }
+
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::RemoveEvent
+// Removes aEvent from the iEvents list, if aEvent is in the list.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void TSatEventsObserver::RemoveEvent( TInt aEvent )
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent calling" )
+
+    const TInt index( iEvents.Find( aEvent ) );
+    LOG2( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent index: %d", 
+          index )
+
+    // KErrNotFound in index means that aEvent is not in the list.
+    if ( KErrNotFound != index )
+        {
+        iEvents.Remove( index );
+        iEvents.GranularCompress();
+        }
+
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::ObservingEvents
+// Checks wether aEvent is in the iEvents list.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool TSatEventsObserver::ObservingEvent(
+    TInt aEvent ) const // Event to be checked
+    {
+    LOG( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent calling" )
+
+    TBool result( ETrue );
+    if ( KErrNotFound == iEvents.Find( aEvent ) )
+        {
+        LOG( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent \
+        find event" )
+        result = EFalse;
+        }
+
+    LOG2( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent exiting, \
+          result: %d", result )
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::Observer
+// Getter for the observer.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+MSatEventObserver* TSatEventsObserver::Observer()
+    {
+    LOG( DETAILED, "SATENGINE: TSatEventsObserver::Observer calling-exiting" )
+    return iObserver;
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::EventCount
+// Getter for the event cound
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt TSatEventsObserver::EventCount() const
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::EventCount calling-exiting" )
+    return iEvents.Count();
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::IsMarkedForDelete
+// Getter for deletion mark
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool TSatEventsObserver::IsMarkedForDelete() const
+    {
+    LOG( SIMPLE,
+        "SATENGINE: TSatEventsObserver::IsMarkedForDelete calling-exiting" )
+    return iMarkedForDelete;
+    }
+
+// -----------------------------------------------------------------------------
+// TSatEventsObserver::MarkForDelete
+// Marks this observer to be deleted
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void TSatEventsObserver::MarkForDelete()
+    {
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::MarkForDelete calling" )
+
+    iMarkedForDelete = ETrue;
+
+    LOG( SIMPLE, "SATENGINE: TSatEventsObserver::MarkForDelete exiting" )
+    }
+
+//  End of File