That is an interesting question.

They are remnants of an implementation of slow response and block transfer.  A 
different approach to handling slow response was implemented and we must have 
neglected to clean up completely.  Recall that slow response is used for 
servers that may not know their response immediately (e.g. must read value from 
ADC, do calculations, averaging, etc.) and cannot immediately return a response 
from the entity handler.  Block transfer was intended to allow for 
requests/responses that were too large to be sent in a single PDU.

Although block transfer was designed, it was never implemented.

The OCCanceResponse API was intended to be used to cancel an on-going block 
transfer of a response.  

But now that you brought it up, is there a use case for a server canceling a 
slow response?  That is, what if a server's entity handler responds with the  
with the OC_EH_SLOW flag but for whatever reason, decides not to send the 
response at a later time?  Should we provide the OCCanceResponse API to handle 
that use case?

If the original request was sent as a Confirmable message, then an 
Acknowledgment must be sent in response.  For a normal (i.e. non-slow) 
response, the response is piggy-backed with the Ack.  For a slow response, the 
Ack is sent and then the response is sent later when the server is able to 
respond.

If we think the above use case is valid, then we should probably keep (and 
implement!) the OCCanceResponse API and maybe the response handle if it is 
needed for the cancelation.  

Thanks,
Doug

---
Doug Hudson
Intel Corporation
Platform Engineering Group (PEG) / Intel Communications and Devices Group 
(iCDG) / Louisville



-----Original Message-----
From: iotivity-dev-bounces at lists.iotivity.org 
[mailto:iotivity-dev-boun...@lists.iotivity.org] On Behalf Of Lenahan, Charlie
Sent: Tuesday, May 5, 2015 2:42 PM
To: iotivity-dev at lists.iotivity.org
Subject: [dev] OCResponseHandle

In the OCEntityHandlerResponse struct there is a

    OCResponseHandle  *responseHandle;

That isn?t used anywhere. Also there is a
OCCanceResponse(OCResponseHandle) that doesn?t do anything.

Can these be culled?


_______________________________________________
iotivity-dev mailing list
iotivity-dev at lists.iotivity.org
https://lists.iotivity.org/mailman/listinfo/iotivity-dev

Reply via email to