145 |
145 |
146 //Update Status |
146 //Update Status |
147 if(status!=CFsNotifyRequest::EOutstandingOverflow) |
147 if(status!=CFsNotifyRequest::EOutstandingOverflow) |
148 { |
148 { |
149 notifyRequest->SetActive(CFsNotifyRequest::EActive); |
149 notifyRequest->SetActive(CFsNotifyRequest::EActive); |
|
150 // RDebug::Print(_L("TFsNotificationRequest::DoRequestL Not-OutOver- iClientHead==%d, iClientTail==%d"),notifyRequest->iClientHead,notifyRequest->iClientTail); |
|
151 } |
|
152 else |
|
153 { |
|
154 notifyRequest->SetActive(CFsNotifyRequest::EInactive); |
150 |
155 |
151 // DEF140387: |
156 // RDebug::Print(_L("TFsNotificationRequest::DoRequestL OutOver- iClientHead==%d, iClientTail==%d"),notifyRequest->iClientHead,notifyRequest->iClientTail); |
152 // If this is not the first call to RequestNotifications then if the |
157 |
153 // user just got an overflow notification (and requested again) |
158 // If the user is in OutstandingOverflow notification state, |
154 // then its possible that iClientTail is not zero now. |
159 // then we can set iClientHead to be equal to iServerTail now. |
155 |
160 // That way if the client requests again and the state will go |
156 // We should set iClientHead to iClientTail, otherwise the client |
161 // back to active, the server will see that buffer as empty |
157 // can receive another overflow straight away. |
162 // rather than full/overflow. |
|
163 |
158 notifyRequest->iClientHead = notifyRequest->iClientTail; |
164 notifyRequest->iClientHead = notifyRequest->iClientTail; |
159 } |
|
160 else |
|
161 { |
|
162 notifyRequest->SetActive(CFsNotifyRequest::EInactive); |
|
163 } |
165 } |
164 FsNotificationManager::Unlock(); |
166 FsNotificationManager::Unlock(); |
165 return r; |
167 return r; |
166 } |
168 } |
167 |
169 |