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

📄 base.pm

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PM
字号:
package DBD::Gofer::Policy::Base;#   $Id: Base.pm 10087 2007-10-16 12:42:37Z 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;use Carp;our $VERSION = sprintf("0.%06d", q$Revision: 10087 $ =~ /(\d+)/o);our $AUTOLOAD;my %policy_defaults = (    # force connect method (unless overridden by go_connect_method=>'...' attribute)    # if false: call same method on client as on server    connect_method => 'connect',    # force prepare method (unless overridden by go_prepare_method=>'...' attribute)    # if false: call same method on client as on server    prepare_method => 'prepare',    skip_connect_check => 0,    skip_default_methods => 0,    skip_prepare_check => 0,    skip_ping => 0,    dbh_attribute_update => 'every',    dbh_attribute_list => ['*'],    locally_quote => 0,    locally_quote_identifier => 0,    cache_parse_trace_flags => 1,    cache_parse_trace_flag => 1,    cache_data_sources => 1,    cache_type_info_all => 1,    cache_tables => 0,    cache_table_info => 0,    cache_column_info => 0,    cache_primary_key_info => 0,    cache_foreign_key_info => 0,    cache_statistics_info => 0,    cache_get_info => 0,    cache_func => 0,);my $base_policy_file = $INC{"DBD/Gofer/Policy/Base.pm"};__PACKAGE__->create_policy_subs(\%policy_defaults);sub create_policy_subs {    my ($class, $policy_defaults) = @_;    while ( my ($policy_name, $policy_default) = each %$policy_defaults) {         my $policy_attr_name = "go_$policy_name";        my $sub = sub {            # $policy->foo($attr, ...)            #carp "$policy_name($_[1],...)";            # return the policy default value unless an attribute overrides it            return (ref $_[1] && exists $_[1]->{$policy_attr_name})                ? $_[1]->{$policy_attr_name}                : $policy_default;        };        no strict 'refs';        *{$class . '::' . $policy_name} = $sub;    }}sub AUTOLOAD {    carp "Unknown policy name $AUTOLOAD used";    # only warn once    no strict 'refs';    *$AUTOLOAD = sub { undef };    return undef;}sub new {    my ($class, $args) = @_;    my $policy = {};    bless $policy, $class;}sub DESTROY { };1;=head1 NAMEDBD::Gofer::Policy::Base - Base class for DBD::Gofer policies=head1 SYNOPSIS  $dbh = DBI->connect("dbi:Gofer:transport=...;policy=...", ...)=head1 DESCRIPTIONDBD::Gofer can be configured via a 'policy' mechanism that allows you tofine-tune the number of round-trips to the Gofer server.  The policies aregrouped into classes (which may be subclassed) and referenced by the name ofthe class.The L<DBD::Gofer::Policy::Base> class is the base class for all the policyclasses and describes all the individual policy items.The Base policy is not used directly. You should use a policy class derived from it.=head1 POLICY CLASSESThree policy classes are supplied with DBD::Gofer:    L<DBD::Gofer::Policy::pedantic> is most 'transparent' but slowest because itmakes more  round-trips to the Gofer server.L<DBD::Gofer::Policy::classic> is a reasonable compromise - it's the default policy.    L<DBD::Gofer::Policy::rush> is fastest, but may require code changes in your applications.Generally the default C<classic> policy is fine. When first testing an existingapplication with Gofer it is a good idea to start with the C<pedantic> policyfirst and then switch to C<classic> or a custom policy, for final testing.=head1 POLICY ITEMSThese are temporary docs: See the source code for list of policies and their defaults.In a future version the policies and their defaults will be defined in the pod and parsed out at load-time.See the source code to this module for more details.=head1 POLICY CUSTOMIZATIONXXX This area of DBD::Gofer is subject to change.There are three ways to customize policies:Policy classes are designed to influence the overall behaviour of DBD::Goferwith existing, unaltered programs, so they work in a reasonably optimal waywithout requiring code changes. You can implement new policy classes assubclasses of existing policies.In many cases individual policy items can be overridden on a case-by-case basiswithin your application code. You do this by passing a correspondingC<<go_<policy_name>>> attribute into DBI methods by your application code.This let's you fine-tune the behaviour for special cases.The policy items are implemented as methods. In many cases the methods arepassed parameters relating to the DBD::Gofer code being executed. This meansthe policy can implement dynamic behaviour that varies depending on theparticular circumstances, such as the particular statement being executed.=head1 AUTHORTim Bunce, L<http://www.tim.bunce.name>=head1 LICENCE AND COPYRIGHTCopyright (c) 2007, Tim Bunce, Ireland. All rights reserved.This module is free software; you can redistribute it and/ormodify it under the same terms as Perl itself. See L<perlartistic>.=cut

⌨️ 快捷键说明

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