| Redland documentation | Contained in the Redland distribution. |
RDF::Redland - Redland RDF Class
use RDF::Redland;
my $storage=new RDF::Redland::Storage("hashes", "test", "new='yes',hash-type='memory'");
my $model=new RDF::Redland::Model($storage, "");
...
This class initialises the Redland RDF classes.
See the main classes for full detail: RDF::Redland::Node, RDF::Redland::BlankNode, RDF::Redland::URINode, RDF::Redland::LiteralNode, RDF::Redland::XMLLiteralNode, RDF::Redland::URI, RDF::Redland::Statement, RDF::Redland::Model, RDF::Redland::Storage, RDF::Redland::Parser, RDF::Redland::Query, RDF::Redland::QueryResults, RDF::Redland::Iterator, RDF::Redland::Stream and RDF::Redland::RSS.
Set SUB as the subroutine to be called on any Redland error, warning or log message. The subroutine must have the followign signature:
sub handler ($$$$$$$$$) {
my($code, $level, $facility, $message, $line, $column, $byte, $file, $uri)=@_;
# int error code
# int log level
# int facility causing the error (parsing, serializing, ...)
# string error message
# int line number (<0 if not relevant)
# int column number (<0 if not relevant)
# int byte number (<0 if not relevant)
# string file name or undef
# string URI or undef
# ...do something with the information ...
};
RDF::Redland::set_log_handler(\&handler);
Reset redland to use the default logging handler, typically printing the message to stdout or stderr and exiting on a fatal error.
The method set_log_handler is much more flexible than this and includes this functionality.
Set SUB as the subroutine to be called on a Redland error with the error message as the single argument. For example:
RDF::Redland::set_error_handler(sub {
my $msg=shift;
# Do something with $msg
});
The default if this is not set, is to run die $msg
The method set_log_handler is much more flexible than this and includes this functionality.
Set SUB as the subroutine to be called on a Redland warning with the warning message as the single argument. For example:
RDF::Redland::set_warning_handler(sub {
my $msg=shift;
# Do something with $msg
});
The default if this is not set, is to run warn $msg
RDF::Redland::Node, RDF::Redland::BlankNode, RDF::Redland::URINode, RDF::Redland::LiteralNode, RDF::Redland::XMLLiteralNode, RDF::Redland::URI, RDF::Redland::Statement, RDF::Redland::Model, RDF::Redland::Storage, RDF::Redland::Parser, RDF::Redland::Query, RDF::Redland::QueryResults, RDF::Redland::Iterator, RDF::Redland::Stream and RDF::Redland::RSS.
Dave Beckett - http://purl.org/net/dajobe/
| Redland documentation | Contained in the Redland distribution. |
# -*- Mode: Perl -*- # # Redland.pm - Redland top level Perl module # # $Id: Redland.pm.in 10592 2006-03-05 08:28:27Z cmdjb $ # # Copyright (C) 2000-2005 David Beckett - http://purl.org/net/dajobe/ # Copyright (C) 2000-2005 University of Bristol - http://www.bristol.ac.uk/ # # This package is Free Software or Open Source available under the # following licenses (these are alternatives): # 1. GNU Lesser General Public License (LGPL) # 2. GNU General Public License (GPL) # 3. Mozilla Public License (MPL) # # See LICENSE.html or LICENSE.txt at the top of this package for the # full license terms. # # # use RDF::Redland::Iterator; use RDF::Redland::Model; use RDF::Redland::Node; use RDF::Redland::BlankNode; use RDF::Redland::URINode; use RDF::Redland::LiteralNode; use RDF::Redland::XMLLiteralNode; use RDF::Redland::Parser; use RDF::Redland::Query; use RDF::Redland::QueryResults; use RDF::Redland::Serializer; use RDF::Redland::Statement; use RDF::Redland::Storage; use RDF::Redland::Stream; use RDF::Redland::URI; use RDF::Redland::CORE; package RDF::Redland::World; sub new ($) { my($proto)=@_; my $class = ref($proto) || $proto; my $self = {}; $self->{WORLD}=&RDF::Redland::CORE::librdf_new_world(); &RDF::Redland::CORE::librdf_world_open($self->{WORLD}); &RDF::Redland::CORE::librdf_perl_world_init($self->{WORLD}); bless ($self, $class); $self->{ME}=$self; return $self; } sub DESTROY ($) { warn "RDF::World DESTROY\n" if $RDF::Debug; &RDF::Redland::CORE::librdf_perl_world_finish(); } sub message ($$$$$$$$$) { if(ref $RDF::Redland::Log_Sub) { return $RDF::Redland::Log_Sub->(@_); } my($code, $level, $facility, $message, $line, $column, $byte, $file, $uri)=@_; if($level > 3) { if(ref $RDF::Redland::Error_Sub) { return $RDF::Redland::Error_Sub->($message); } else { die "Redland error: $message\n"; } } else { if(ref $RDF::Redland::Warning_Sub) { return $RDF::Redland::Warning_Sub->($message); } else { warn "Redland warning: $message\n"; } } 1; } package RDF::Redland; use vars qw($VERSION $Debug $World $Error_Sub $Warning_Sub); $VERSION= eval sprintf("%s.%02d_%02d_%02d", split(/\./, "1.0.5.4")); $Debug=0; $World=new RDF::Redland::World; $Error_Sub=undef; $Warning_Sub=undef; $Log_Sub=undef;
sub set_log_handler ($) { $Log_Sub=shift; }
sub reset_log_handler () { $Log_Sub=undef; }
sub set_error_handler ($) { $Error_Sub=shift; }
sub set_warning_handler ($) { $Warning_Sub=shift; }
1;