[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: LAST CALL draft-ietf-ldapext-ldapv3-vlv-03.txt
There seem to be some errors in the example. See comments below.
> 6. Protocol Example
>
> Here we walk through the client-server interaction for a specific vir-
> tual list view example: The task is to display a list of all 78564 peo-
> ple in the US company "Ace Industry". This will be done by creating a
> graphical user interface object to display the list contents, and by
> repeatedly sending different versions of the same virtual list view
> search request to the server. The list view displays 20 entries on the
> screen at a time.
>
> We form a search with baseDN "o=Ace Industry, c=us"; search scope sub-
> tree; filter "objectClass=inetOrgPerson". We attach a server sort order
> control to the search, specifying ascending sort on attribute "cn". To
> this base search, we attach a virtual list view request control with
> contents determined by the user activity and send the search to the
> server. We display the results from each search in the list window and
> update the slider position.
>
> When the list view is first displayed, we want to initialize the con-
> tents showing the beginning of the list. Therefore, we set beforeCount =
> 0, afterCount = 19, contentCount = 0, offset = 1 and send the request to
> the server. The server duly returns the first 20 entries in the list,
> plus the content count = 78564 and targetPosition = 1. We therefore
> leave the scroll bar slider at its current location (the top of its
> range).
>
> Say that next the user drags the scroll bar slider down to the bottom of
> its range. We now wish to display the last 20 entries in the list, so
> we set beforeCount = 19, afterCount = 0, contentCount = 78564, offset =
> 78564 and send the request to the server. The server returns the last 20
> entries in the list, plus the content count = 78564 and targetPosition =
> 78564.
>
> Next the user presses a page up key. Our page size is 20, so we set
> beforeCount = 0, afterCount = 19, contentCount = 78564, offset =
> 78564-19-20 and send the request to the server. The server returns the
> preceeding 20 entries in the list, plus the content count = 78564 and
> targetPosition = 78524.
Requested offset and returned targetPosition are different.
IMHO targetPosition should be 78525.
Request:
offset = 78564-19-20 = 78525
beforeCount = 0
afterCount = 19
contentCount = 78564
Result:
targetPosition = 78525 // was 78524
contentCount = 78564
> Now the user grabs the scroll bar slider and drags it to 68% of the way
> down its travel. 68% of 78564 is 52424 so we set beforeCount = 9, after-
> Count = 10, contentCount = 78564, offset = 52424 and send the request to
> the server. The server returns the preceeding 20 entries in the list,
> plus the content count = 78564 and targetPosition = 78524.
68% of 78564 is 53424, not 52424. "The server returns..." was copied
from the previous step and not modified to match this step.
Request:
offset = 53424 // was 52424
beforeCount = 9
afterCount = 10
contentCount = 78564
Result:
targetPosition = 53424 // was 78524
contentCount = 78564
> Lastly, the user types the letter "B". We set beforeCount = 9, after-
> Count = 10 and greaterThanOrEqual = "B". The server finds the first
> entry in the list not less than "B", let's say "Babs Jensen", and
> returns the nine preceeding entries, the target entry, and the proceed-
> ing 10 entries. The server returns content count = 78564 and targetPo-
> sition = 5234 and so the client updates its scroll bar slider to 6.6% of
> full scale.
5234/78564 = 6.662% -> rounded 6.7%
Rolf Maeule
pc-plus COMPUTING