#!/usr/bin/perl =head1 NAME JMX::Jmx4Perl::Response - A jmx4perl response =head1 SYNOPSIS my $jmx_response = $jmx_agent->request($jmx_request); my $value = $jmx_response->value(); =head1 DESCRIPTION A L is the result of an JMX request and encapsulates the answer as returned by a L backend. Depending on the C it either contains the result of a valid request or a error message. The status is modelled after HTTP response codes (see L). For now, only the codes C<200> and C<400 .. 599> codes are used to specified successful request and errors respectively. =head1 METHODS =over =cut package JMX::Jmx4Perl::Response; use strict; use vars qw(@EXPORT); =item $response = JMX::Jmx4Perl::Response->new($status,$request,$value,$error,$stacktrace) Internal constructor for creating a response which is use withing requesting the backend. C<$error> and C<$stacktrace> are optional and should only provided when C<$status != 200>. =cut sub new { my $class = shift; my $self = { @_ }; return bless $self,(ref($class) || $class); } =item $status = $response->status() Return the status code of this response. Status codes are modelled after HTTP return codes. C<200> is the code for a suceeded request. Any code in the range 500 - 599 specifies an error. =cut sub status { return shift->{status}; } =item $timestamp = $response->timestamp() Get the timestamp (i.e. epoch seconds) when the request was executed on the serverside. =cut sub timestamp { return shift->{timestamp}; } =item $history = $response->history() Get the history if history tracking is switched on. History tracking is switchen on by executing a certain JMX operation on the C MBean. See the alias C and L for details. The returned arrayref (if any) contains hashes with two values: C contains the historical value and C the timestamp when this value was recorded. =cut sub history { return shift->{history}; } =item $ok = $response->is_ok() Return true if this object contains a valid response (i.e. the status code is equal 200) =cut sub is_ok { return shift->{status} == 200; } =item $fault = $response->is_error() Opposite of C, i.e. return true if the status code is B equal to 200 =cut sub is_error { return shift->{status} != 200;; } =item $error = $response->error_text() Return the error text. Set only if C is C =cut sub error_text { return shift->{error}; } =item $error = $response->stacktrace() Returns the stacktrace of an Java error if any. This is only set when C is C B and Java exception occured on the Java agent's side. =cut sub stacktrace { return shift->{stacktrace}; } =item $content = $response->value() Return the content of this response, which is a represents the JSON response as returned by the Java agent as a hash reference value. This is set only when C is true. =cut sub value { return shift->{value}; } =item $request = $response->request() Return the L which lead to this response =cut sub request { return shift->{request}; } =back =head1 LICENSE This file is part of jmx4perl. Jmx4perl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. jmx4perl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with jmx4perl. If not, see . A commercial license is available as well. Please contact roland@cpan.org for further details. =head1 AUTHOR roland@cpan.org =cut 1;