What are the rules regarding cursors for use with list_folder/continue?
As a concrete case, say that I do the following sequence of calls:
1. list_folder => obtaining in response batch "a" of entries and cursor "A"
2. list_folder/continue, supplying cursor "A", and obtaining in response batch "b" of entries and cursor "B"
If there is a need for it, am I at this point allowed to go back ("rewind") and do a call:
3. list_folder/continue, supplying cursor "A", obtaining in response batch "c" of entries and cursor "C"
I did a quick test with the API explorer, and it seemed that no error message was obtained. However, as already indicated by my use of characters above, the batch of results "c" does not seem to exactly match the batch "b", nor does the cursor "C" exactly match the cursor "B". It is fine for me that they do not match, but I am wondering if the above sequence of calls is allowed/supported, i.e. is it ok to use an "old" cursor value, and continue from there as if one had never done call 2?
(The reason one might want to do this is if one is paginating the results, but the following happens: The list_folder/continue call completes, but the app does not succeed in storing the newly received cursor before something bad happens, for example the app crashes, or something else, so it only has available the previous cursor. It would be nice to be able to safely continue without having to start over from scratch.)
If the answer is: "Yes, it is ok", then it would be interesting to know (at least purely out of curiosity): How old cursors can be used? Does the cursor string (which is pretty long) encode everything needed (the relevant timestamp, folder and all settings) so that an arbitrary cursor can be used? Or does Dropbox store (somewhere on the server) the various cursor values as keys to some data that it uses to continue the pagination (in this latter case one would expect that Dropbox does not want to keep around all cursor values ever created)?
Thanks!
Patrik