X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FReplicated.pm;h=27136b17be907a1ea280ed696cec566f1b527186;hb=d1b264d3e650a18228410a9fa9b1657f0d97f5b1;hp=7323b42c9475c2d3dae9da894121028d11055125;hpb=7edf5f1cd3b097de79d262ed02d65128336f5893;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Replicated.pm b/lib/DBIx/Class/Storage/DBI/Replicated.pm index 7323b42..27136b1 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated.pm +++ b/lib/DBIx/Class/Storage/DBI/Replicated.pm @@ -75,16 +75,20 @@ has 'pool_type' => ( =head2 pool_args -Contains a hashref of initialized information to pass to the Pool object. See -L for available arguments. +Contains a hashref of initialized information to pass to the Balancer object. +See L for available arguments. =cut has 'pool_args' => ( is=>'ro', isa=>'HashRef', + lazy=>1, + required=>1, + default=>sub { {} }, ); + =head2 balancer_type The replication pool requires a balance class to provider the methods for @@ -101,6 +105,21 @@ has 'balancer_type' => ( }, ); +=head2 balancer_args + +Contains a hashref of initialized information to pass to the Balancer object. +See L for available arguments. + +=cut + +has 'balancer_args' => ( + is=>'ro', + isa=>'HashRef', + lazy=>1, + required=>1, + default=>sub { {} }, +); + =head2 pool Is a or derived class. This is a @@ -116,9 +135,6 @@ has 'pool' => ( connect_replicants replicants has_replicants - num_replicants - delete_replicant - validate_replicants /], ); @@ -133,6 +149,7 @@ has 'balancer' => ( is=>'ro', isa=>'DBIx::Class::Storage::DBI::Replicated::Balancer', lazy_build=>1, + handles=>[qw/auto_validate_every/], ); =head2 master @@ -272,7 +289,7 @@ Lazy builder for the L attribute. sub _build_pool { my $self = shift @_; - $self->create_pool($self->pool_args); + $self->create_pool(%{$self->pool_args}); } =head2 _build_balancer_type @@ -282,7 +299,7 @@ Lazy builder for the L attribute. =cut sub _build_balancer_type { - return 'DBIx::Class::Storage::DBI::Replicated::Balancer'; + return 'DBIx::Class::Storage::DBI::Replicated::Balancer::First'; } =head2 _build_balancer @@ -296,7 +313,8 @@ sub _build_balancer { my $self = shift @_; $self->create_balancer( pool=>$self->pool, - master=>$self->master); + master=>$self->master, + %{$self->balancer_args},); } =head2 _build_write_handler