Net::LDAP::Control::VLV

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
Net::LDAP::Control::VUser)Contributed Perl DocumentNet::LDAP::Control::VLV(3)



NAME
       Net::LDAP::Control::VLV - LDAPv3 Virtual List View control object

SYNOPSIS
	use Net::LDAP;
	use Net::LDAP::Control::VLV;
	use Net::LDAP::Constant qw( LDAP_CONTROL_VLVRESPONSE );

	$ldap = Net::LDAP->new( "ldap.mydomain.eg" );

	# Get the first 20 entries
	$vlv  = Net::LDAP::Control::VLV->new(
		  before  => 0,	       # No entries from before target entry
		  after	  => 19,       # 19 entries after target entry
		  content => 0,	       # List size unknown
		  offset  => 1,	       # Target entry is the first
		);
	$sort = Net::LDAP::Control::Sort->new( order => ’cn’ );

	@args = ( base	   => "o=Ace Industry, c=us",
		  scope	   => "subtree",
		  filter   => "(objectClass=inetOrgPerson)",
		  callback => \&process_entry, # Call this sub for each entry
		  control  => [ $vlv, $sort ],
	);

	$mesg = $ldap->search( @args );

	# Get VLV response control
	($resp)	 = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die;
	$vlv->response( $resp );

	# Set the control to get the last 20 entries
	$vlv->end;

	$mesg = $ldap->search( @args );

	# Get VLV response control
	($resp)	 = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die;
	$vlv->response( $resp );

	# Now get the previous page
	$vlv->scroll_page( -1 );

	$mesg = $ldap->search( @args );

	# Get VLV response control
	($resp)	 = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die;
	$vlv->response( $resp );

	# Now page with first entry starting with "B" in the middle
	$vlv->before(9);       # Change page to show 9 before
	$vlv->after(10);       # Change page to show 10 after
	$vlv->assert("B");     # assert "B"

	$mesg = $ldap->search( @args );

DESCRIPTION
       "Net::LDAP::Control::VLV" provides an interface for the creation and
       manipulation of objects that represent the Virtual List View as
       described by draft-ietf-ldapext-ldapv3-vlv-03.txt.

       When using a Virtual List View control in a search, it must be accom-
       panied by a sort control. See Net::LDAP::Control::Sort

CONSTRUCTOR ARGUMENTS
       In addition to the constructor arguments described in Net::LDAP::Con-
       trol the following are provided.

       after
	   Set the number of entries the server should return from the list
	   after the target entry.

       assert
	   Set the assertion value user to locate the target entry. This
	   value should be a legal value to compare with the first attribute
	   in the sort control that is passed with the VLV control. The tar-
	   get entry is the first entry in the list which is greater than or
	   equal the assert value.

       before
	   Set the number of entries the server should return from the list
	   before the target entry.

       content
	   Set the number of entries in the list. On the first search this
	   value should be set to zero. On subsequent searches it should be
	   set to the length of the list, as returned by the server in the
	   VLVResponse control.

       context
	   Set the context identifier.	On the first search this value should
	   be set to zero. On subsequent searches it should be set to the
	   context value returned by the server in the VLVResponse control.

       offset
	   Set the offset of the target entry.

       METHODS

       As with Net::LDAP::Control each constructor argument described above
       is also avaliable as a method on the object which will return the cur-
       rent value for the attribute if called without an argument, and set a
       new value for the attribute if called with an argument.

       The "offset" and "assert" attributes are mutually exclusive. Setting
       one or the other will cause previous values set by the other to be
       forgotten. The "content" attribute is also associated with the "off-
       set" attribute, so setting "assert" will cause any "content" value to
       be forgotten.

       end Set the target entry to the end of the list. This method will
	   change the "before" and "after" attributes so that the target
	   entry is the last in the page.

       response VLV_RESPONSE
	   Set the attributes in the control as per VLV_RESPONSE.
	   VLV_RESPONSE should be a control of type Net::LDAP::Con-
	   trol::VLVResponse returned from the server. "response" will popu-
	   late the "context", "offset" and "content" attibutes of the con-
	   trol with the values from VLV_RESPONSE. Because this sets the
	   "offset" attribute, any previous setting of the "assert" attribute
	   will be forgotten.

       scroll NUM
	   Move the target entry by NUM entries. A positive NUM will move the
	   target entry towards the end of the list and a negative NUM will
	   move the target entry towards the start of the list. Returns the
	   index of the new target entry, or "undef" if the current target is
	   identified by an assertion.

	   "scroll" may change the "before" and "after" attributes if the
	   scroll value would cause the page to go off either end of the
	   list. But the page size will be maintained.

       scroll_page NUM
	   Scroll by NUM pages. This method simple calculates the current
	   page size and calls "scroll" with "NUM * $page_size"

       start
	   Set the target entry to the start of the list. This method will
	   change the "before" and "after" attributes to the the target entry
	   is the first entry in the page.

SEE ALSO
       Net::LDAP, Net::LDAP::Control, Net::LDAP::Control::Sort,
       Net::LDAP::Control::VLVResponse

AUTHOR
       Graham Barr <gbarr@pobox.com>

       Please report any bugs, or post any suggestions, to the perl-ldap
       mailing list <perl-ldap@perl.org>

COPYRIGHT
       Copyright (c) 2000-2004 Graham Barr. All rights reserved. This program
       is free software; you can redistribute it and/or modify it under the
       same terms as Perl itself.



perl v5.8.8			  2008-10-27	   Net::LDAP::Control::VLV(3)