Firewall-Config-Element
view release on metacpan or search on metacpan
lib/Firewall/Config/Element/Interface/Role.pm view on Meta::CPAN
package Firewall::Config::Element::Interface::Role;
#------------------------------------------------------------------------------
# å è½½æ©å±æ¨¡å
#------------------------------------------------------------------------------
use Carp;
use Moose::Role;
#------------------------------------------------------------------------------
# å¼ç¨ Firewall::Config::Element::Interface::Role è§è²
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::Role';
#------------------------------------------------------------------------------
# Firewall::Config::Element::Route::Role éç¨å±æ§
#------------------------------------------------------------------------------
has name => ( is => 'ro', isa => 'Str', required => 1, );
has ipAddress => ( is => 'ro', isa => 'Str', required => 0, );
has mask => ( is => 'ro', isa => 'Int', required => 0, );
# æ¥å£ç±»åæ¯äºå±è¿æ¯ä¸å±
has interfaceType => ( is => 'ro', isa => 'Str', default => 'layer2', );
has range => ( is => 'ro', isa => 'Firewall::Utils::Set', default => sub { Firewall::Utils::Set->new() } );
# æ¥å£è·¯ç±
has routes => ( is => 'ro', isa => 'HashRef', lazy => 1, default => sub { {} }, );
# æ¥å£å®å
¨åº
has zoneName => ( is => 'ro', isa => 'Str', required => 0, );
#------------------------------------------------------------------------------
# Moose BUILD ç¨äºå¯¹è±¡å建åï¼è¿è¡å±æ§æ£æ¥é»è¾
# https://metacpan.org/pod/Moose::Manual::Construction
#------------------------------------------------------------------------------
sub BUILD {
my $self = shift;
my @ERROR;
if ( $self->interfaceType ne 'layer2' and $self->interfaceType ne 'layer3' ) {
push @ERROR, "Attribute (interfaceType) 's value must be 'layer2' or 'layer3' at constructor " . __PACKAGE__;
}
if ( @ERROR > 0 ) {
confess join( ', ', @ERROR );
}
}
#------------------------------------------------------------------------------
# æ°å¢æ¥å£è·¯ç±å½æ°
#------------------------------------------------------------------------------
sub addRoute {
my ( $self, $route ) = @_;
$self->routes->{$route->sign} = $route;
$self->range->mergeToSet( $route->range );
}
1;
( run in 2.558 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )