videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/src/CIptvTestEventWaiter.cpp
--- a/videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/src/CIptvTestEventWaiter.cpp Fri Jun 11 10:05:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:
-*
-*/
-
-
-// INCLUDES
-#include "CIptvTestEventWaiter.h"
-#include "MIptvTestEventWaiterObserver.h"
-#include "CIptvTestEvent.h"
-#include "VCXTestLog.h"
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::NewL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CIptvTestEventWaiter* CIptvTestEventWaiter::NewL(MIptvTestEventWaiterObserver& aObserver)
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::NewL");
- CIptvTestEventWaiter* self = new (ELeave) CIptvTestEventWaiter(aObserver);
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- VCXLOGLO1("<<<CIptvTestEventWaiter::NewL");
- return self;
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::~CIptvTestEventWaiter
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CIptvTestEventWaiter::~CIptvTestEventWaiter()
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::~CIptvTestEventWaiter");
- if( IsAdded() )
- {
- Deque(); // calls also Cancel()
- }
-
- iTimer.Close();
-
- Reset();
- VCXLOGLO1("<<<CIptvTestEventWaiter::~CIptvTestEventWaiter");
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::CheckTimeouts
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CIptvTestEventWaiter::CheckTimeouts()
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::CheckTimeouts");
- TTime now;
- now.UniversalTime();
-
- TInt i;
- for(i=0; i<iEventQueue.Count();i++)
- {
- CIptvTestEvent* event = iEventQueue[i];
- if( event->HasTimeouted( now ) )
- {
- VCXLOGLO1("CIptvTestEventWaiter:: event timedout");
- iObserver.EventWaiterErrorL( KErrTimedOut, *event );
- VCXLOGLO1("<<<CIptvTestEventWaiter::CheckTimeouts");
- return KErrTimedOut;
- }
- }
-
- for(i=0; i<iEventDump.Count();i++)
- {
- CIptvTestEvent* event = iEventDump[i];
- if( event->HasTimeouted( now ) )
- {
- VCXLOGLO1("CIptvTestEventWaiter:: event timedout");
- iObserver.EventWaiterErrorL( KErrTimedOut, *event );
- VCXLOGLO1("<<<CIptvTestEventWaiter::CheckTimeouts");
- return KErrTimedOut;
- }
- }
-
- VCXLOGLO1("<<<CIptvTestEventWaiter::CheckTimeouts");
-
- return KErrNone;
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::AddEvent
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CIptvTestEventWaiter::AddEvent(CIptvTestEvent* aEvent, TBool aSequential)
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::AddEvent");
-
- if(aSequential)
- {
- // First event in queue, activate it
- if(iEventQueue.Count() <= 0)
- {
- aEvent->Activate();
- }
- // Add event
- iEventQueue.Append( aEvent );
- }
- else
- {
- // All events in dump are active
- iEventDump.Append( aEvent );
- aEvent->Activate();
- }
-
- if( !IsActive() )
- {
- iTimer.After(iStatus, 1000000); // once in second
- SetActive();
- }
-
- VCXLOGLO1("<<<CIptvTestEventWaiter::AddEvent");
- return KErrNone;
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::EventHappened
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CIptvTestEventWaiter::EventHappened(CIptvTestEvent* aEvent, CIptvTestEvent** aQueuedEvent)
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::EventHappened");
- TBool eventFound = EFalse;
-
- // Check first from the queue.
-
- VCXLOGLO1("Event queue:");
-
- for(TInt i=0; i<iEventQueue.Count();i++)
- {
- CIptvTestEvent* event = iEventQueue[i];
- TBuf<32> name;
- event->GetName(name);
- VCXLOGLO3(" queue %d: %S, %d", i, &name);
- }
-
- //CheckTimeouts();
-
- if(iEventQueue.Count() > 0)
- {
- CIptvTestEvent* event = iEventQueue[0];
- TBuf<32> name;
- event->GetName(name);
- VCXLOGLO2(" - %S", &name);
-
- if( !eventFound && event->Compare( *aEvent ) )
- {
- iEventQueue.Remove( 0 );
- if(iEventQueue.Count() > 0)
- {
- iEventQueue[0]->Activate();
- }
- iPastEvents.Append( event );
- eventFound = ETrue;
-
- *aQueuedEvent = event;
-
- VCXLOGLO1("*Match*");
- }
- }
-
- // Check if the event is in the dump, meaning it can happen any time.
-
- VCXLOGLO1("Event dump:");
-
- if(!eventFound)
- {
- for(TInt i=0; i<iEventDump.Count();i++)
- {
- CIptvTestEvent* event = iEventDump[i];
-
- TBuf<32> name;
- event->GetName(name);
- VCXLOGLO2(" - %S", &name);
-
- if( !eventFound && event->Compare( *aEvent ) )
- {
- iEventDump.Remove( i );
- iPastEvents.Append( event );
- eventFound = ETrue;
- *aQueuedEvent = event;
- VCXLOGLO1("*Match*");
- }
- }
- }
-
- // Event was found and there's no more events in queues. Message observer that all events are validated.
-
- if( eventFound && iEventQueue.Count() == 0 && iEventDump.Count() == 0 )
- {
- iObserver.EventWaiterAllEventsValidated();
- }
-
- if( !eventFound )
- {
- VCXLOGLO1("CIptvTestEventWaiter:: Event not found from queues.");
-
- if(iEventQueue.Count() > 0)
- {
- CIptvTestEvent* event = iEventQueue[0];
- *aQueuedEvent = event;
- }
-
- VCXLOGLO1("<<<CIptvTestEventWaiter::EventHappened");
- return KErrNotFound;
- }
-
- VCXLOGLO1("<<<CIptvTestEventWaiter::EventHappened");
- return KErrNone;
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::Reset
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CIptvTestEventWaiter::Reset()
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::Reset");
- iEventQueue.ResetAndDestroy();
- iEventDump.ResetAndDestroy();
- iPastEvents.ResetAndDestroy();
- VCXLOGLO1("<<<CIptvTestEventWaiter::Reset");
- return KErrNone;
-}
-
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::GetEventCount
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CIptvTestEventWaiter::GetEventCount()
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::GetEventCount");
- TInt count = 0;
- count += iEventQueue.Count();
- count += iEventDump.Count();
- VCXLOGLO2("<<<CIptvTestEventWaiter:: events in queue: %d", count);
-
- VCXLOGLO1("<<<CIptvTestEventWaiter::GetEventCount");
- return count;
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::CIptvTestEventWaiter
-// -----------------------------------------------------------------------------
-//
-CIptvTestEventWaiter::CIptvTestEventWaiter(MIptvTestEventWaiterObserver& aObserver)
- : CActive(CActive::EPriorityStandard), iObserver(aObserver)
-{
-
-}
-
-// -----------------------------------------------------------------------------
-// CIptvTestEventWaiter::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CIptvTestEventWaiter::ConstructL()
-{
- VCXLOGLO1(">>>CIptvTestEventWaiter::ConstructL");
- User::LeaveIfError(iTimer.CreateLocal());
- CActiveScheduler::Add(this);
- VCXLOGLO1("<<<CIptvTestEventWaiter::ConstructL");
-}
-
-// ---------------------------------------------------------------------------
-// CTestUtilConnectionWaiter::RunL()
-//
-// Handle request completion events
-// ---------------------------------------------------------------------------
-//
-void CIptvTestEventWaiter::RunL()
- {
- //VCXLOGLO1(">>>CIptvTestEventWaiter::RunL");
-
-// TInt statusCode = iStatus.Int();
-
- CheckTimeouts();
-
- // Start timer again if waiting for events
-
- if(iEventQueue.Count() > 0 || iEventDump.Count() > 0)
- {
-
- if( !IsActive() )
- {
- iTimer.After(iStatus, 1000000); // once in second
- SetActive();
- }
- }
-
-
- //VCXLOGLO1("<<<CIptvTestEventWaiter::RunL");
- }
-
-// ---------------------------------------------------------------------------
-// CIptvTestEventWaiter::DoCancel()
-//
-// Cancels ongoing requests
-// ---------------------------------------------------------------------------
-//
-void CIptvTestEventWaiter::DoCancel()
- {
- VCXLOGLO1(">>>CIptvTestEventWaiter::DoCancel");
- iTimer.Cancel();
- VCXLOGLO1("<<<CIptvTestEventWaiter::DoCancel");
- }
-
-
-// End of File