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";
  
  
  

Reply via email to