package Helm::Log::Channel;
use strict;
use warnings;
use Moose;
use namespace::autoclean;
has uri => (is => 'ro', writer => '_uri', isa => 'URI');
has task => (is => 'ro', writer => '_task', isa => 'Str');
has current_server => (is => 'ro', writer => '_current_server', isa => 'Helm::Server|Undef');
sub initialize {
my ($self, $helm) = @_;
die "You must implement the initialize() method in your child class " . ref($self) . "!";
}
sub finalize {
my ($self, $helm) = @_;
die "You must implement the finalize() method in your child class " . ref($self) . "!";
}
sub parallelize {
my ($self, $helm) = @_;
die "You must implement the parallelize() method in your child class " . ref($self) . "!";
}
sub start_server {
my ($self, $server) = @_;
$self->_current_server($server);
}
sub end_server {
my ($self, $server) = @_;
$self->_current_server(undef);
}
sub debug {
my ($self, $msg) = @_;
die "You must implement the debug() method in your child class " . ref($self) . "!";
}
sub info {
my ($self, $msg) = @_;
die "You must implement the info() method in your child class " . ref($self) . "!";
}
sub warn {
my ($self, $msg) = @_;
die "You must implement the warn() method in your child class " . ref($self) . "!";
}
sub error {
my ($self, $msg) = @_;
die "You must implement the error() method in your child class " . ref($self) . "!";
}
sub forked {
my ($self, $type) = @_;
die "You must implement the forked() method in your child class " . ref($self) . "!";
}
__PACKAGE__->meta->make_immutable;
1;