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

FreeBSD Manual Pages

  
 
  

home | help
Graph::Reader(3)      User Contributed Perl Documentation     Graph::Reader(3)

NAME
       Graph::Reader - base class for Graph file format	readers

SYNOPSIS
	 package Graph::Reader::MyFormat;
	 use Graph::Reader;
	 use vars qw(@ISA);
	 @ISA =	qw(Graph::Reader);

	 sub _read_graph
	 {
	   my ($self, $graph, $FILE) = @_;

	   # read $FILE	and populate $graph
	 }

DESCRIPTION
       Graph::Reader is	a base class for Graph file format readers.  A
       particular subclass of Graph::Reader will handle	a specific file
       format, and generate a Graph, represented using Jarkko Hietaniemi's
       Graph class.

       You should never	create an instance of this class yourself, it is only
       meant for subclassing. If you try to create an instance of
       Graph::Reader, the constructor will throw an exception.

METHODS
   new()
       Constructor - generate a	new reader instance. This is a virtual method,
       or whatever the correct lingo is.  You're not meant to call this	on the
       base class, it is inherited by the subclasses. Ie if you	do something
       like:

	 $reader = Graph::Reader->new();

       It will throw an	exception.

   read_graph()
       Read a graph from the specified file:

	 $graph	= $reader->read_graph($file);

       The $file argument can either be	a filename, or a filehandle for	a
       previously opened file.

SUBCLASSING
       To create your own graph	format reader, create a	module which
       subclasses Graph::Reader. For example, suppose DGF is a directed	graph
       format -	create a Graph::Reader::DGF module, with the following
       structure:

	 package Graph::Reader::DGF;

	 use Graph::Reader;
	 use vars qw(@ISA);
	 @ISA =	qw(Graph::Reader);

	 sub _read_graph
	 {
	   my $self  = shift;
	   my $graph = shift;
	   my $FILE  = shift;

	   while (<$FILE>)
	   {
	   }

	   return 1;
	 }

	 1;

       Note the	leading	underscore on the _read_graph()	method.	 The base
       class provides the public method, and invokes the private method	which
       you're expected to provide, as above.

       If you want to perform additional initialisation	at construction	time,
       you can provide an _init() method, which	will be	invoked	by the base
       class's constructor.  You should	invoke the superclass's	initialiser as
       well, as	follows:

	 sub _init
	 {
	   my $self = shift;

	   $self->SUPER::_init();

	   # your initialisation here
	 }

       Someone can then	use your class as follows:

	 use Graph::Reader::DGF;

	 $reader = Graph::Reader::DGF->new();
	 $graph	= $reader->read_graph('foo.dgf');

SEE ALSO
       Graph
	   Jarkko Hietaniemi's modules for representing	directed graphs,
	   available from CPAN under modules/by-module/Graph/

       Algorithms in Perl
	   This	O'Reilly book has a chapter on directed	graphs,	which is based
	   around Jarkko's modules.

       Graph::Reader::XML
	   A simple subclass of	this class for reading a simple	XML format for
	   directed graphs.

       Graph::Writer
	   A baseclass for Graph file format writers.

REPOSITORY
       <https://github.com/neilb/Graph-ReadWrite>

AUTHOR
       Neil Bowers <neil@bowers.com>

COPYRIGHT
       Copyright (c) 2001-2012,	Neil Bowers. All rights	reserved.  Copyright
       (c) 2001, Canon Research	Centre Europe. All rights reserved.

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

perl v5.32.0			  2016-08-05		      Graph::Reader(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | SUBCLASSING | SEE ALSO | REPOSITORY | AUTHOR | COPYRIGHT

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

home | help