cvs commit: p5ee/App-Repository/lib/App/SessionObject RepositoryObjectSet.pm

[email protected] (Stephen Adkins)
Newsgroups perl.cvs.p5ee
Message-ID <[email protected]>
cvsuser     05/03/28 13:23:43

  Modified:    App-Repository/lib/App/SessionObject RepositoryObjectSet.pm
  Log:
  fix max_age to be per call
  
  Revision  Changes    Path
  1.3       +36 -13    p5ee/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm
  
  Index: RepositoryObjectSet.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RepositoryObjectSet.pm	28 Mar 2005 20:32:22 -0000	1.2
  +++ RepositoryObjectSet.pm	28 Mar 2005 21:23:43 -0000	1.3
  @@ -1,6 +1,6 @@
   
   #############################################################################
  -## $Id: RepositoryObjectSet.pm,v 1.2 2005/03/28 20:32:22 spadkins Exp $
  +## $Id: RepositoryObjectSet.pm,v 1.3 2005/03/28 21:23:43 spadkins Exp $
   #############################################################################
   
   package App::SessionObject::RepositoryObjectSet;
  @@ -53,13 +53,21 @@
       delete $self->{index};
       delete $self->{unique_index};
       delete $self->{column_values};
  +    delete $self->{max_age_time};
       &App::sub_exit() if ($App::trace);
   }
   
  -sub set_max_age {
  +sub _check_age {
       &App::sub_entry if ($App::trace);
  -    my ($self, $max_age) = @_;
  -    $self->{max_age} = $max_age;
  +    my ($self, $options) = @_;
  +    if (defined $options->{max_age} && $self->{objects}) {
  +        my $max_age = $options->{max_age};
  +        my $max_age_time = $self->{max_age_time};
  +        my $time = time();
  +        if (defined $max_age_time && $max_age_time <= $time - $max_age) {
  +            $self->_clear_cache();
  +        }
  +    }
       &App::sub_exit() if ($App::trace);
   }
   
  @@ -103,14 +111,6 @@
   sub _get_all_objects {
       &App::sub_entry if ($App::trace);
       my ($self) = @_;
  -    if (defined $self->{max_age}) {
  -        my $max_age = $self->{max_age};
  -        my $max_age_time = $self->{max_age_time};
  -        my $time = time();
  -        if (defined $max_age_time && $max_age_time <= $time - $max_age) {
  -            $self->_clear_cache();
  -        }
  -    }
       my $objects = $self->{objects};
       if (!$objects) {
           my $context = $self->{context};
  @@ -133,9 +133,13 @@
   sub get_index {
       &App::sub_entry if ($App::trace);
       my $self = shift;
  +    my $options = (ref($_[0]) eq "HASH") ? shift : {};
       my $key_name = ref($_[0]) ? "ie1" : shift;
       $key_name ||= "ie1";
       my $key_columns = shift;
  +
  +    $self->_check_age($options) if (defined $options->{max_age} && $self->{objects});
  +
       my $index = $self->{index}{$key_name};
       if (!$index) {
           if ($self->{key}{$key_name}) {
  @@ -166,10 +170,13 @@
   sub get_unique_index {
       &App::sub_entry if ($App::trace);
       my $self = shift;
  +    my $options = (ref($_[0]) eq "HASH") ? shift : {};
       my $key_name = ref($_[0]) ? "ak1" : shift;
       $key_name ||= "ak1";
       my $key_columns = shift;
   
  +    $self->_check_age($options) if (defined $options->{max_age} && $self->{objects});
  +
       my $unique_index = $self->{unique_index}{$key_name};
       if (!$unique_index) {
           if ($self->{key}{$key_name}) {
  @@ -191,7 +198,10 @@
   
   sub get_column_values {
       &App::sub_entry if ($App::trace);
  -    my ($self, $column) = @_;
  +    my ($self, $column, $options) = @_;
  +
  +    $self->_check_age($options) if (defined $options->{max_age} && $self->{objects});
  +
       my $values = $self->{column_values}{$column};
       if (!$values) {
           $values = [];
  @@ -213,28 +223,41 @@
       return($values);
   }
   
  +# $self->get_object($options, $key, $key_columns);
   # $self->get_object($key, $key_columns);
   # $self->get_object($key, $key_name, $key_columns);
   # $self->get_object($key, $key_name);
   sub get_object {
       &App::sub_entry if ($App::trace);
       my $self = shift;
  +    my $options = (ref($_[0]) eq "HASH") ? shift : {};
       my $key = shift;
       my $key_name = ref($_[0]) ? "ak1" : shift;
       my $key_columns = shift;
  +
  +    $self->_check_age($options) if (defined $options->{max_age} && $self->{objects});
  +
       my $unique_index = $self->get_unique_index($key_name, $key_columns);
       my $object = $unique_index->{$key};
       &App::sub_exit($object) if ($App::trace);
       return($object);
   }
   
  +# $self->get_objects($key, $options, $key_name);
  +# $self->get_objects($key, $key_columns);
  +# $self->get_objects($key, $key_name, $key_columns);
  +# $self->get_objects($key, $key_name);
   sub get_objects {
       &App::sub_entry if ($App::trace);
       my $self = shift;
  +    my $options = (ref($_[0]) eq "HASH") ? shift : {};
       my $key = shift;
       die "key not scalar" if (ref($key));
       my $key_name = ref($_[0]) ? "ie1" : shift;
       my $key_columns = shift;
  +
  +    $self->_check_age($options) if (defined $options->{max_age} && $self->{objects});
  +
       my ($objects);
       if ($key) {
           $key_name ||= "ie1";
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.