12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- ============================================================================
- Name : CDelayRuner.cpp
- Author : R. Drutsky
- Version : 1.0
- Copyright : Copyright (c) 2010 Soft Industry
- Description : CCDelayRuner implementation
- ============================================================================
- */
- #include "DelayRuner.h"
- #include "zrtp_iface_system.h"
- void zrtp_internal_delete_task_from_list(zrtp_stream_t* ctx, zrtp_retry_task_t* ztask);
- CDelayRuner::CDelayRuner() :
- CActive(EPriorityLow) // Standard priority
- {
- }
- CDelayRuner* CDelayRuner::NewLC()
- {
- CDelayRuner* self = new (ELeave) CDelayRuner();
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
- CDelayRuner* CDelayRuner::NewL()
- {
- CDelayRuner* self = CDelayRuner::NewLC();
- CleanupStack::Pop(); // self;
- return self;
- }
- void CDelayRuner::ConstructL()
- {
- User::LeaveIfError(iTimer.CreateLocal()); // Initialize timer
- CActiveScheduler::Add(this); // Add to scheduler
- }
- CDelayRuner::~CDelayRuner()
- {
- Cancel(); // Cancel any request, if outstanding
- iTimer.Close(); // Destroy the RTimer object
- // Delete instance variables if any
- }
- void CDelayRuner::DoCancel()
- {
- iTimer.Cancel();
- }
- void CDelayRuner::StartL(zrtp_stream_t *ctx, zrtp_retry_task_t* ztask)
- {
- Cancel(); // Cancel any request, just to be sure
- //iState = EUninitialized;
- iCtx = ctx;
- iZTask = ztask;
- iTimer.After(iStatus, ztask->timeout * 1000); // Set for later
- SetActive(); // Tell scheduler a request is active
- }
- void CDelayRuner::RunL()
- {
- if (iStatus == KErrNone)
- {
- // Do something useful
- iZTask->_is_busy = 1 ; // may be we don't need this
- (iZTask->callback)(iCtx,iZTask);
- iZTask->_is_busy = 0 ; // may be we don't need this
- }
- zrtp_internal_delete_task_from_list(iCtx,iZTask);
- }
- TInt CDelayRuner::RunError(TInt aError)
- {
- return aError;
- }
|