[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