⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cachememory.pm

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PM
字号:
package DBI::Util::CacheMemory;#   $Id: CacheMemory.pm 10086 2007-10-16 12:36:56Z timbo $##   Copyright (c) 2007, Tim Bunce, Ireland##   You may distribute under the terms of either the GNU General Public#   License or the Artistic License, as specified in the Perl README file.use strict;use warnings;=head1 NAMEDBI::Util::CacheMemory - a very fast but very minimal subset of Cache::Memory=head1 DESCRIPTIONLike Cache::Memory (part of the Cache distribution) but doesn't support any fancy features.This module aims to be a very fast compatible strict sub-set for simple cases,such as basic client-side caching for DBD::Gofer.Like Cache::Memory, and other caches in the Cache and Cache::Cachedistributions, the data will remain in the cache until cleared, it expires,or the process dies. The cache object simply going out of scope will I<not>destroy the data.=head1 METHODS WITH CHANGES=head2 newAll options except C<namespace> are ignored.=head2 setDoesn't support expiry.=head2 purgeSame as clear() - deletes everything in the namespace.=head1 METHODS WITHOUT CHANGES=over=item clear=item count=item exists=item remove=back=head1 UNSUPPORTED METHODSIf it's not listed above, it's not supported.=cutour $VERSION = sprintf("0.%06d", q$Revision: 10086 $ =~ /(\d+)/o);my %cache;sub new {    my ($class, %options ) = @_;    $options{namespace} ||= 'Default';    my $self =  bless {        #_cache => \%cache, # can be handy for debugging/dumping        %options,    } => $class;    $self->clear; # init    return $self;}sub set {    my ($self, $key, $value) = @_;    $cache{ $self->{namespace} }->{$key} = $value;}sub get {    my ($self, $key) = @_;    return $cache{ $self->{namespace} }->{$key};}sub exists {    my ($self, $key) = @_;    return exists $cache{ $self->{namespace} }->{$key};}sub remove {    my ($self, $key) = @_;    return delete $cache{ $self->{namespace} }->{$key};}sub purge {    return shift->clear;}sub clear {    $cache{ shift->{namespace} } = {};}sub count {    return scalar keys %{ $cache{ shift->{namespace} } };}sub size {    my $c = $cache{ shift->{namespace} };    my $size = 0;    while ( my ($k,$v) = each %$c ) {        $size += length($k) + length($v);    }    return $size;}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -