Net::DBus::Binding::Message::Error - a message encoding a method call error


Net-DBus documentation Contained in the Net-DBus distribution.

Index


Code Index:

NAME

Top

Net::DBus::Binding::Message::Error - a message encoding a method call error

SYNOPSIS

Top

  use Net::DBus::Binding::Message::Error;

  my $error = Net::DBus::Binding::Message::Error->new(
      replyto => $method_call,
      name => "org.example.myobject.FooException",
      description => "Unable to do Foo when updating bar");

  $connection->send($error);

DESCRIPTION

Top

This module is part of the low-level DBus binding APIs, and should not be used by application code. No guarentees are made about APIs under the Net::DBus::Binding:: namespace being stable across releases.

This module provides a convenience constructor for creating a message representing an error condition.

METHODS

Top

my $error = Net::DBus::Binding::Message::Error->new( replyto => $method_call, name => $name, description => $description);

Creates a new message, representing an error which occurred during the handling of the method call object passed in as the replyto parameter. The name parameter is the formal name of the error condition, while the description is a short piece of text giving more specific information on the error.

my $name = $error->get_error_name

Returns the formal name of the error, as previously passed in via the name parameter in the constructor.

AUTHOR

Top

Daniel P. Berrange.

COPYRIGHT

Top

SEE ALSO

Top

Net::DBus::Binding::Message


Net-DBus documentation Contained in the Net-DBus distribution.
# -*- perl -*-
#
# Copyright (C) 2004-2006 Daniel P. Berrange
#
# This program is free software; You can redistribute it and/or modify
# it under the same terms as Perl itself. Either:
#
# a) the GNU General Public License as published by the Free
#   Software Foundation; either version 2, or (at your option) any
#   later version,
#
# or
#
# b) the "Artistic License"
#
# The file "COPYING" distributed along with this file provides full
# details of the terms and conditions of the two licenses.

package Net::DBus::Binding::Message::Error;

use 5.006;
use strict;
use warnings;

use Net::DBus;
use base qw(Net::DBus::Binding::Message);

sub new {
    my $proto = shift;
    my $class = ref($proto) || $proto;
    my %params = @_;

    my $replyto = exists $params{replyto} ? $params{replyto} : die "replyto parameter is required";

    my $msg = exists $params{message} ? $params{message} : 
	Net::DBus::Binding::Message::Error::_create
	(
	 $replyto->{message},
	 ($params{name} ? $params{name} : die "name parameter is required"),
	 ($params{description} ? $params{description} : die "description parameter is required"));

    my $self = $class->SUPER::new(message => $msg);

    bless $self, $class;
    
    return $self;
}

sub get_error_name {
    my $self = shift;
    
    return $self->{message}->dbus_message_get_error_name;
}

1;

__END__