The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package MonitisMonitorManager::M3PluginCommon;
use strict;
use Carp;
use Sys::Syslog;

# returns the parameter specified or croaks on an error
sub get_mandatory_parameter {
	my ($self, $plugin_xml_base, $parameter_name) = @_;
	# if $parameter_name is undefined, we'll return the string referenced
	# by $plugin_xml_base
	my $xml_path;
	if (defined($parameter_name)) {
		$xml_path = $plugin_xml_base->{$parameter_name}[0];
	} else {
		$xml_path = $plugin_xml_base;
	}

	if (!defined($xml_path)) {
		croak "Parameter '$parameter_name' undefined in plugin '" . $self->name() . "'";
	} else {
		return $xml_path;
	}
}

# returns an optional parameter or undef
sub get_optional_parameter {
	my ($self, $plugin_xml_base, $parameter_name, $default_value) = @_;
	my $return_value = $plugin_xml_base->{$parameter_name}[0];
	if(not defined($return_value) and defined($default_value)) {
		return $default_value;
	} else {
		return $return_value;
	}
}

sub log_message {
	my ($priority, $message) = @_;
	MonitisMonitorManager::M3Logger->instance()->log_message($priority, $message);
}

1;