equal
deleted
inserted
replaced
20 #include "server.h" |
20 #include "server.h" |
21 #include "wstop.h" |
21 #include "wstop.h" |
22 #include "panics.h" |
22 #include "panics.h" |
23 #include "pointer.h" |
23 #include "pointer.h" |
24 #include "advancedpointereventhelper.h" |
24 #include "advancedpointereventhelper.h" |
25 #include "debughelper.h" |
|
26 |
25 |
27 GLREF_D CDebugLogBase* wsDebugLog; |
26 GLREF_D CDebugLogBase* wsDebugLog; |
28 |
27 |
29 #if defined(_DEBUG) |
28 #if defined(_DEBUG) |
30 #define __CHECK_QUEUE() CheckQueue() |
29 #define __CHECK_QUEUE() CheckQueue() |
99 */ |
98 */ |
100 void CEventBase::EventReadyCheck() |
99 void CEventBase::EventReadyCheck() |
101 { |
100 { |
102 if ((iEventSignalledState&EEventFlagSignalled && !(iEventSignalledState&EEventFlagCancelled)) || !iEventMsg.IsNull()) |
101 if ((iEventSignalledState&EEventFlagSignalled && !(iEventSignalledState&EEventFlagCancelled)) || !iEventMsg.IsNull()) |
103 { |
102 { |
104 #ifdef LOG_WSERV_EVENTS |
|
105 RDebug::Printf("_WSEVENT: CEventBase::EventReadyCheck, Event is not ready"); |
|
106 #endif |
|
107 iWsOwner->PPanic(EWservPanicReadOutstanding); |
103 iWsOwner->PPanic(EWservPanicReadOutstanding); |
108 } |
104 } |
109 } |
105 } |
110 |
106 |
111 void CEventBase::EventReady(const RMessagePtr2& aEventMsg) |
107 void CEventBase::EventReady(const RMessagePtr2& aEventMsg) |
648 case EEventKey: |
644 case EEventKey: |
649 case EEventPointerEnter: |
645 case EEventPointerEnter: |
650 case EEventPointerExit: |
646 case EEventPointerExit: |
651 case EEventDragDrop: |
647 case EEventDragDrop: |
652 breakLoopAndRemoveEvent: |
648 breakLoopAndRemoveEvent: |
653 #ifdef LOG_WSERV_EVENTS |
|
654 RDebug::Print(_L("_WSEVENT: CEventQueue::Purge(), The event to be purged is %S"), &WsEventName(*eventToPurge)); |
|
655 #endif |
|
656 RemoveEvent(indexToPurge); |
649 RemoveEvent(indexToPurge); |
657 return; |
650 return; |
658 case EEventKeyUp: |
651 case EEventKeyUp: |
659 if (iQueueList.First()!=this) |
652 if (iQueueList.First()!=this) |
660 goto breakLoopAndRemoveEvent; |
653 goto breakLoopAndRemoveEvent; |
955 // |
948 // |
956 { |
949 { |
957 TBool ret=ETrue; |
950 TBool ret=ETrue; |
958 Wait(); |
951 Wait(); |
959 if (iCount==iQueueSize && !Expand(aPriority)) |
952 if (iCount==iQueueSize && !Expand(aPriority)) |
960 { |
|
961 ret=EFalse; |
953 ret=EFalse; |
962 #ifdef LOG_WSERV_EVENTS |
|
963 RDebug::Printf("WSEVENT: CEventQueue::QueueEvent(): 0x%X: Queue Full!!!!!, iCount = %d, iQueueSize = %d", this, iCount, iQueueSize); |
|
964 RDebug::Print(_L("WSEVENT: CEventQueue::QueueEvent(): 0x%X: Queue Full!!!!! TWsEvent.Type() = %S"), this, &WsEventName(event)); |
|
965 #endif |
|
966 } |
|
967 else |
954 else |
968 { |
955 { |
969 if (!iEventMsg.IsNull()) |
956 if (!iEventMsg.IsNull()) |
970 { |
957 { |
971 SignalEvent(); |
958 SignalEvent(); |
972 } |
959 } |
973 #ifdef LOG_WSERV_EVENTS |
|
974 RDebug::Printf("_WSEVENT: CEventQueue::QueueEvent, Right before adding the event"); |
|
975 #endif |
|
976 *EventPtr(iCount++)=event; |
960 *EventPtr(iCount++)=event; |
977 #ifdef LOG_WSERV_EVENTS |
|
978 RDebug::Print(_L("_WSEVENT: CEventQueue::QueueEvent, Event %S successfully queued"), &WsEventName(event)); |
|
979 #endif |
|
980 } |
961 } |
981 Signal(); |
962 Signal(); |
982 return(ret); |
963 return(ret); |
983 } |
964 } |
984 |
965 |
1074 { |
1055 { |
1075 if (iCount>0) |
1056 if (iCount>0) |
1076 { |
1057 { |
1077 WS_ASSERT_DEBUG((iEventPtr+iHead)->Type()!=EEventMarkInvalid, EWsPanicCheckEventQueue); |
1058 WS_ASSERT_DEBUG((iEventPtr+iHead)->Type()!=EEventMarkInvalid, EWsPanicCheckEventQueue); |
1078 CEventBase::GetData(iEventPtr+iHead,sizeof(*iEventPtr)); |
1059 CEventBase::GetData(iEventPtr+iHead,sizeof(*iEventPtr)); |
1079 #ifdef LOG_WSERV_EVENTS |
|
1080 RDebug::Printf("_WSEVENT: CEventQueue::GetData(), TWsEvent.Type() = %d", (iEventPtr+iHead)->Type()); |
|
1081 #endif |
|
1082 __ZAP_EVENT(iEventPtr+iHead); |
1060 __ZAP_EVENT(iEventPtr+iHead); |
1083 iHead=(iHead+1)%iQueueSize; |
1061 iHead=(iHead+1)%iQueueSize; |
1084 iCount--; |
1062 iCount--; |
1085 } |
1063 } |
1086 else |
1064 else |
1103 void CEventQueue::RemoveEvent(TInt index) |
1081 void CEventQueue::RemoveEvent(TInt index) |
1104 // |
1082 // |
1105 // Remove event 'index' in the queue, this event MUST exist in the queue |
1083 // Remove event 'index' in the queue, this event MUST exist in the queue |
1106 // |
1084 // |
1107 { |
1085 { |
1108 #ifdef LOG_WSERV_EVENTS |
|
1109 RDebug::Printf("_WSEVENT: CEventQueue::RemoveEvent(index), Remove event index %d in the queue", index); |
|
1110 #endif |
|
1111 WS_ASSERT_DEBUG(index < iCount, EWsPanicCheckEventQueue); |
1086 WS_ASSERT_DEBUG(index < iCount, EWsPanicCheckEventQueue); |
1112 RemoveEvent(EventPtr(index)); |
1087 RemoveEvent(EventPtr(index)); |
1113 } |
1088 } |
1114 |
1089 |
1115 void CEventQueue::RemoveEvent(TWsEvent* aEvToRemove) |
1090 void CEventQueue::RemoveEvent(TWsEvent* aEvToRemove) |
1116 // |
1091 // |
1117 // Remove event in the queue, this event MUST exist in the queue |
1092 // Remove event in the queue, this event MUST exist in the queue |
1118 // |
1093 // |
1119 { |
1094 { |
1120 #ifdef LOG_WSERV_EVENTS |
|
1121 RDebug::Print(_L("_WSEVENT: CEventQueue::RemoveEvent(aEvToRemove), Remove event %S in the queue"), &WsEventName(*aEvToRemove)); |
|
1122 #endif |
|
1123 iCount--; |
1095 iCount--; |
1124 TWsEvent* last = EventPtr(iCount); |
1096 TWsEvent* last = EventPtr(iCount); |
1125 TWsEvent* prev; |
1097 TWsEvent* prev; |
1126 while(aEvToRemove!=last) |
1098 while(aEvToRemove!=last) |
1127 { |
1099 { |