// ----------------------------------------------------------------------------- // CPosLmDbManEventHandler::HandleRequestForEventL // // (other items were commented in a header). // ----------------------------------------------------------------------------- // void CPosLmDbManEventHandler::HandleRequestForEventL( const RMessagePtr2& aMessage) { // check that descriptor parameters are OK so that server // won't panic when trying to write. TPckgBuf<TPosLmDatabaseEvent> event; TPckgBuf<TInt> length; TInt eventMaxLength = aMessage.GetDesMaxLength(KPosLmServerDbManEventArg); TInt lengthMaxLength = aMessage.GetDesMaxLength(KPosLmServerUriLengthArg); if (eventMaxLength != event.Length() || lengthMaxLength != length.Length()) { PanicClient(aMessage, EPosUnableToReadOrWriteDataToClient); return; } if (iEventQueue.Count() > 0) { // Send the first event in the queue to the client. WriteEventAndComplete(aMessage); } else { // No events in queue. Put the message on hold. if (!iHoldingMessage.IsNull()) { PanicClient(aMessage, EPosEventNotifierAlreadyHasOutstandingRequest); } else { iHoldingMessage = aMessage; } } }
// ----------------------------------------------------------------------------- // CPosLmEventHandler::HandleRequestForEventL // // (other items were commented in a header). // ----------------------------------------------------------------------------- // void CPosLmEventHandler::HandleRequestForEventL( const RMessagePtr2& aMessage) { TPckgBuf<TPosLmEvent> event; TInt desMaxLength = aMessage.GetDesMaxLength(KPosLmServerEventArg); if (desMaxLength != event.Length()) { PanicClient(aMessage, EPosUnableToReadOrWriteDataToClient); return; } if (iEventQueue.Count() > 0) { // Send the first event in the queue to the client. WriteEventAndComplete(aMessage, iEventQueue[0]); iEventQueue.Remove(0); } else { // No events in queue. Put the message on hold. if (!iHoldingMessage.IsNull()) { PanicClient(aMessage, EPosEventNotifierAlreadyHasOutstandingRequest); } else { iHoldingMessage = aMessage; } } }