Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Padre::DB::LastPositioUseriContributed Perl DoPadre::DB::LastPositionInFile(3)

NAME
       Padre::DB::LastPositionInFile - Storage class for stateful cursor
       positions

SYNOPSIS
	 Padre::DB::LastPositionInFile->set_last_pos($file, $pos);
	 my $pos = Padre::DB::LastPositionInFile->get_last_pos($file);

DESCRIPTION
       This class allows storing in Padre's database the last cursor position
       in a file. This is useful in order to put the cursor back to where it
       was when	re-opening this	file later on.

       Please note that	due to limitations in the way we generate the class,
       imposed by ORLite, automatic translation	for Portable Perl is only
       applied if you use the "set_last_pos" and "get_last_pos"	methods.

METHODS
   set_last_pos
	 set_last_pos( $file, $pos )

       Record $pos as the last known cursor position in	$file.

       Applies appropriate path	translation if we are running in Portable
       Perl.

   get_last_pos
	 get_last_pos( $file )

       Return the last known cursor position for $file.	Return "undef" if no
       position	was recorded for this file.

       Applies appropriate path	translation if we are running in Portable
       Perl.

   base
	 # Returns 'Padre::DB'
	 my $namespace = Padre::DB::LastPositionInFile->base;

       Normally	you will only need to work directly with a table class,	and
       only with one ORLite package.

       However,	if for some reason you need to work with multiple ORLite
       packages	at the same time without hardcoding the	root namespace all the
       time, you can determine the root	namespace from an object or table
       class with the "base" method.

   table
	 # Returns 'last_position_in_file'
	 print Padre::DB::LastPositionInFile->table;

       While you should	not need the name of table for any simple operations,
       from time to time you may need it programatically. If you do need it,
       you can use the "table" method to get the table name.

   load
	 my $object = Padre::DB::LastPositionInFile->load( $name );

       If your table has single	column primary key, a "load" method will be
       generated in the	class. If there	is no primary key, the method is not
       created.

       The "load" method provides a shortcut mechanism for fetching a single
       object based on the value of the	primary	key. However it	should only be
       used for	cases where your code trusts the record	to already exists.

       It returns a "Padre::DB::LastPositionInFile" object, or throws an
       exception if the	object does not	exist.

   select
	 # Get all objects in list context
	 my @list = Padre::DB::LastPositionInFile->select;

	 # Get a subset	of objects in scalar context
	 my $array_ref = Padre::DB::LastPositionInFile->select(
	     'where name > ? order by name',
	     1000,
	 );

       The "select" method executes a typical SQL "SELECT" query on the
       last_position_in_file table.

       It takes	an optional argument of	a SQL phrase to	be added after the
       "FROM last_position_in_file" section of the query, followed by
       variables to be bound to	the placeholders in the	SQL phrase. Any	SQL
       that is compatible with SQLite can be used in the parameter.

       Returns a list of Padre::DB::LastPositionInFile objects when called in
       list context, or	a reference to an "ARRAY" of
       Padre::DB::LastPositionInFile objects when called in scalar context.

       Throws an exception on error, typically directly	from the DBI layer.

   iterate
	 Padre::DB::LastPositionInFile->iterate( sub {
	     print $_->name . "\n";
	 } );

       The "iterate" method enables the	processing of large tables one record
       at a time without loading having	to them	all into memory	in advance.

       This plays well to the strength of SQLite, allowing it to do the	work
       of loading arbitrarily large stream of records from disk	while
       retaining the full power	of Perl	when processing	the records.

       The last	argument to "iterate" must be a	subroutine reference that will
       be called for each element in the list, with the	object provided	in the
       topic variable $_.

       This makes the "iterate"	code fragment above functionally equivalent to
       the following, except with an O(1) memory cost instead of O(n).

	 foreach ( Padre::DB::LastPositionInFile->select ) {
	     print $_->name . "\n";
	 }

       You can filter the list via SQL in the same way you can with "select".

	 Padre::DB::LastPositionInFile->iterate(
	     'order by ?', 'name',
	     sub {
		 print $_->name	. "\n";
	     }
	 );

       You can also use	it in raw form from the	root namespace for better
       control.	 Using this form also allows for the use of arbitrarily
       complex queries,	including joins. Instead of being objects, rows	are
       provided	as "ARRAY" references when used	in this	form.

	 Padre::DB->iterate(
	     'select name from last_position_in_file order by name',
	     sub {
		 print $_->[0] . "\n";
	     }
	 );

   count
	 # How many objects are	in the table
	 my $rows = Padre::DB::LastPositionInFile->count;

	 # How many objects
	 my $small = Padre::DB::LastPositionInFile->count(
	     'where name > ?',
	     1000,
	 );

       The "count" method executes a "SELECT COUNT(*)" query on	the
       last_position_in_file table.

       It takes	an optional argument of	a SQL phrase to	be added after the
       "FROM last_position_in_file" section of the query, followed by
       variables to be bound to	the placeholders in the	SQL phrase. Any	SQL
       that is compatible with SQLite can be used in the parameter.

       Returns the number of objects that match	the condition.

       Throws an exception on error, typically directly	from the DBI layer.

   new
	 TO BE COMPLETED

       The "new" constructor is	used to	create a new abstract object that is
       not (yet) written to the	database.

       Returns a new Padre::DB::LastPositionInFile object.

   create
	 my $object = Padre::DB::LastPositionInFile->create(

	     name => 'value',

	     position => 'value',

	 );

       The "create" constructor	is a one-step combination of "new" and
       "insert"	that takes the column parameters, creates a new
       Padre::DB::LastPositionInFile object, inserts the appropriate row into
       the last_position_in_file table,	and then returns the object.

       If the primary key column "name"	is not provided	to the constructor (or
       it is false) the	object returned	will have "name" set to	the new	unique
       identifier.

       Returns a new last_position_in_file object, or throws an	exception on
       error, typically	from the DBI layer.

   insert
	 $object->insert;

       The "insert" method commits a new object	(created with the "new"
       method) into the	database.

       If a the	primary	key column "name" is not provided to the constructor
       (or it is false)	the object returned will have "name" set to the	new
       unique identifier.

       Returns the object itself as a convenience, or throws an	exception on
       error, typically	from the DBI layer.

   delete
	 # Delete a single instantiated	object
	 $object->delete;

	 # Delete multiple rows	from the last_position_in_file table
	 Padre::DB::LastPositionInFile->delete('where name > ?', 1000);

       The "delete" method can be used in a class form and an instance form.

       When used on an existing	Padre::DB::LastPositionInFile instance,	the
       "delete"	method removes that specific instance from the
       "last_position_in_file",	leaving	the object intact for you to deal with
       post-delete actions as you wish.

       When used as a class method, it takes a compulsory argument of a	SQL
       phrase to be added after	the "DELETE FROM last_position_in_file"
       section of the query, followed by variables to be bound to the
       placeholders in the SQL phrase. Any SQL that is compatible with SQLite
       can be used in the parameter.

       Returns true on success or throws an exception on error,	or if you
       attempt to call delete without a	SQL condition phrase.

   truncate
	 # Delete all records in the last_position_in_file table
	 Padre::DB::LastPositionInFile->truncate;

       To prevent the common and extremely dangerous error case	where deletion
       is called accidentally without providing	a condition, the use of	the
       "delete"	method without a specific condition is forbidden.

       Instead,	the distinct method "truncate" is provided to delete all
       records in a table with specific	intent.

       Returns true, or	throws an exception on error.

ACCESSORS
   name
	 if ( $object->name ) {
	     print "Object has been inserted\n";
	 } else	{
	     print "Object has not been	inserted\n";
	 }

       Returns true, or	throws an exception on error.

       REMAINING ACCESSORS TO BE COMPLETED

SQL
       The last_position_in_file table was originally created with the
       following SQL command.

	 CREATE	TABLE last_position_in_file (
	     name varchar(255) not null	primary	key,
	     position integer not null
	 )

SUPPORT
       Padre::DB::LastPositionInFile is	part of	the Padre::DB API.

       See the documentation for Padre::DB for more information.

AUTHOR
       Adam Kennedy <adamk@cpan.org>

COPYRIGHT
       Copyright 2008-2013 The Padre development team as listed	in Padre.pm.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full	text of	the license can	be found in the	LICENSE	file included
       with this module.

perl v5.24.1			  2013-11-09  Padre::DB::LastPositionInFile(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | ACCESSORS | SQL | SUPPORT | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Padre::DB::LastPositionInFile&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help