Firewall-Config-Content
view release on metacpan or search on metacpan
lib/Firewall/Config/Content/Static.pm view on Meta::CPAN
package Firewall::Config::Content::Static;
#------------------------------------------------------------------------------
# å è½½æ©å±æ¨¡å
#------------------------------------------------------------------------------
use Moose;
use Encode;
use Digest::MD5;
use Firewall::Utils::Date;
use namespace::autoclean;
#------------------------------------------------------------------------------
# å®ä¹ Content::Static éç¨å±æ§
#------------------------------------------------------------------------------
has config => ( is => 'ro', isa => 'ArrayRef[Str]', required => 1, );
has confContent => ( is => 'ro', isa => 'Str', lazy => 1, builder => '_buildConfContent', );
has cursor => ( is => 'ro', isa => 'Int', default => 0, );
#------------------------------------------------------------------------------
# å¼ç¨ Firewall::Config::Content::Role è§è²å±æ§åæ¹æ³çº¦æ
#------------------------------------------------------------------------------
with 'Firewall::Config::Content::Role';
#------------------------------------------------------------------------------
# æ¹å confSign 屿§å¹¶è®¾ç½®æå è½½ï¼æä¾æå»ºæ¹æ³
#------------------------------------------------------------------------------
has '+confSign' => ( required => 0, lazy => 1, builder => '_buildConfSign', );
has '+timestamp' => ( required => 0, lazy => 1, builder => '_buildTimestamp', );
#------------------------------------------------------------------------------
# é
ç½®æä»¶å叿¹æ³
#------------------------------------------------------------------------------
sub _buildConfSign {
my $self = shift;
return Digest::MD5::md5_hex( join( "\n", @{$self->config} ) );
}
#------------------------------------------------------------------------------
# å 载设å¤é
ç½®æ¹æ³
#------------------------------------------------------------------------------
sub _buildConfContent {
my $self = shift;
my $content = join( "\n", @{$self->config} );
return $content;
}
#------------------------------------------------------------------------------
# çæé
ç½®æ¶é´æ³
#------------------------------------------------------------------------------
sub _buildTimestamp {
my $self = shift;
return Firewall::Utils::Date->new->getFormatedDate();
}
#------------------------------------------------------------------------------
# çæé
ç½®è§£ææ å¿ä½ï¼ä¸ºæ¯è¡é
置设置åå§ç¶æä¸º0
#------------------------------------------------------------------------------
sub _buildLineParsedFlags {
my $self = shift;
return ( [ map {0} ( 1 .. @{$self->config} ) ] );
}
#------------------------------------------------------------------------------
# 跳转 Head 头é¨å½æ°ï¼å¼å
¥æ¸¸æ çæ¦å¿µ
#------------------------------------------------------------------------------
sub goToHead {
my $self = shift;
$self->{cursor} = 0;
}
#------------------------------------------------------------------------------
# 跳转 nextLine 彿°ï¼è·³è½¬ä¸ä¸è¡
( run in 0.500 second using v1.01-cache-2.11-cpan-39bf76dae61 )