示例#1
0
TInt CCallDummyBase::AcquireOwnership(const TTsyReqHandle aTsyReqHandle)
//
//	Acquire call Ownership
//
	{
	TInt ret(KErrNone);
	if (CheckOwnership(aTsyReqHandle)==CCallBase::EOwnedUnowned)
		{
		SetOwnership(aTsyReqHandle);
		ReqCompleted(aTsyReqHandle,KErrNone);
		}
	else
		{
		if(iList->iAcquireList.IsEmpty())
			// List is empty. Client is the first one to request ownership of the call.
			{
			CAcquireEntry* entry=NULL;
			TRAP(ret, entry=CAcquireEntry::NewL(aTsyReqHandle));
			if (ret==KErrNone)
				iList->iAcquireList.AddLast(*entry);
			}
		else
			// List is not empty. Another client has already requested to acquire ownership of the call.
			// Only one client can be waiting to acquire ownership at any one time.
			return KErrInUse;
		}
	return ret;
	}
示例#2
0
TInt CCallDummyBase::TransferOwnership(const TTsyReqHandle aTsyReqHandle)
//
//	Transfer Call Ownership
//
	{
	if (CheckOwnership(aTsyReqHandle)!=CCallBase::EOwnedTrue)
		{
		ReqCompleted(aTsyReqHandle,KErrEtelNotCallOwner);
		return KErrNone;
		}

	if(iList->iAcquireList.IsEmpty()) // no one interested in this call !
		{
		ReqCompleted(aTsyReqHandle,KErrEtelNoClientInterestedInThisCall);
		return KErrNone;
		}

	CAcquireEntry* entry=iList->iAcquireList.First();
	if (entry) // someone interested in this call
		{
		SetOwnership(entry->iTsyReqHandle);
		ReqCompleted(entry->iTsyReqHandle,KErrNone);
		iList->Remove(entry);
		ReqCompleted(aTsyReqHandle,KErrNone);
		}
	return KErrNone;
	}
示例#3
0
AudioOutDriver::AudioOutDriver(AudioDriver &driver) {
    driver_=&driver ;
    driver.AddObserver(*this) ;
	primarySoundBuffer_=0 ;
	mixBuffer_=0 ;        
    SetOwnership(false) ;                       
}
bool PessimisticTxnManager::PerformInsert(const oid_t &tile_group_id,
                                          const oid_t &tuple_id) {
  LOG_TRACE("Perform insert");
  SetOwnership(tile_group_id, tuple_id);
  // no need to set next item pointer.

  // Add the new tuple into the insert set
  current_txn->RecordInsert(tile_group_id, tuple_id);
  return true;
}
示例#5
0
文件: item.cpp 项目: ronniwe/Varios
LPITEM CItem::RemoveFromGround()
{
	if (GetSectree())
	{
		SetOwnership(NULL);
		
		GetSectree()->RemoveEntity(this);
		
		ViewCleanup();

		Save();
	}

	return (this);
}
示例#6
0
TInt CCallDummyBase::Dial(const TTsyReqHandle aTsyReqHandle,const TDesC8* /*aParams*/,TDesC* aNumber)
	{
	
	if (CheckOwnership(aTsyReqHandle)==CCallBase::EOwnedUnowned)
		{
		SetOwnership(aTsyReqHandle);
		if(aNumber->Compare(DACQ_PHONE_NUMBER_TO_DIAL)!=KErrNone)
			TsyPanic(KTsyPanicDataCorrupted);
		iFac->QueueTimer(iDial,aTsyReqHandle,DACQ_ASYN_TIMEOUT,
						CCallDummyBase::DialHandler,this);
		}
	else if (CheckOwnership(aTsyReqHandle)==CCallBase::EOwnedFalse)
		ReqCompleted(aTsyReqHandle,KErrEtelNotCallOwner);
	else
		ReqCompleted(aTsyReqHandle,KErrEtelCallAlreadyActive);

	return KErrNone;
	}
示例#7
0
TInt CCallDummyBase::ProcessingOwnership()
	{
	if (iList)
		{	
		if(iList->iAcquireList.IsEmpty()) // no one interested in this call !
			{
			SetUnowned();
			return KErrNone;
			}

		CAcquireEntry* entry=iList->iAcquireList.First();
		if (entry) // someone interested in this call
			{
			SetOwnership(entry->iTsyReqHandle);
			ReqCompleted(entry->iTsyReqHandle,KErrNone);
			iList->Remove(entry);
			}
		return KErrNone;
		}
	else
		return KErrNotFound;
	}