Diff for /loncom/interface/loncoursedata.pm between versions 1.55 and 1.56

version 1.55, 2003/03/03 21:52:24 version 1.56, 2003/03/05 14:39:08
Line 1580  sub get_current_state { Line 1580  sub get_current_state {
     #      #
     $courseid = $ENV{'request.course.id'} if (! defined($courseid));      $courseid = $ENV{'request.course.id'} if (! defined($courseid));
     #      #
   #    my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.
   #                                                $ENV{'user.domain'}.'_'.
   #                                                $courseid.'_student_data.db';
     my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.      my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.
                                                 $ENV{'user.domain'}.'_'.                                                  $ENV{'user.domain'}.'_'.
                                                 $courseid.'_student_data.db';                                                  $courseid.'_'.
                                                   $sname.'_'.$sdom.
                                                       '_student_data.db';
     my %cache;      my %cache;
     #      #
     my %student_data; # return values go here      my %student_data; # return values go here
Line 1594  sub get_current_state { Line 1599  sub get_current_state {
     if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {      if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {
         if (exists($cache{$key.'time'})) {          if (exists($cache{$key.'time'})) {
             $updatetime = $cache{$key.'time'};              $updatetime = $cache{$key.'time'};
 #            &Apache::lonnet::logthis('got updatetime of '.$updatetime);  
         }          }
         untie(%cache);          untie(%cache);
     }      }
     # timestamp/devalidation       # timestamp/devalidation check should go here.
     my $modifiedtime = 1;      my $modifiedtime = 1;
     # Take whatever steps are neccessary at this point to give $modifiedtime a      # Take whatever steps are neccessary at this point to give $modifiedtime a
     # new value      # new value
     #      #
     if (($updatetime < $modifiedtime) ||       if (($updatetime < $modifiedtime) || 
         (defined($forcedownload) && $forcedownload)) {          (defined($forcedownload) && $forcedownload)) {
 #        &Apache::lonnet::logthis("loading data");  
         # Get all the students current data          # Get all the students current data
         my $time_of_retrieval = time;          my $time_of_retrieval = time;
         my @tmp = &Apache::lonnet::currentdump($courseid,$sdom,$sname);          my @tmp = &Apache::lonnet::currentdump($courseid,$sdom,$sname);
Line 1627  sub get_current_state { Line 1630  sub get_current_state {
         #         keys instead of unescaping every key.          #         keys instead of unescaping every key.
         #          #
         if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_WRCREAT(),0640)) {          if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_WRCREAT(),0640)) {
 #            &Apache::lonnet::logthis("writing data");  
             while (my ($current_symb,$param_hash) = each(%student_data)) {              while (my ($current_symb,$param_hash) = each(%student_data)) {
                 my @Parameters = %{$param_hash};                  my @Parameters = %{$param_hash};
                 my $value = join(':',map { &Apache::lonnet::escape($_); }                   my $value = join(':',map { &Apache::lonnet::escape($_); } 
Line 1639  sub get_current_state { Line 1641  sub get_current_state {
             untie(%cache);              untie(%cache);
         }          }
     } else {      } else {
         &Apache::lonnet::logthis('retrieving cached data ');  
         if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {          if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {
             if (defined($symb)) {              if (defined($symb)) {
                 my  $searchkey = $key.&Apache::lonnet::escape($symb);                  my  $searchkey = $key.&Apache::lonnet::escape($symb);
Line 1652  sub get_current_state { Line 1653  sub get_current_state {
                     if ($testkey =~ /$searchkey/) { # \Q \E?  May be necc.                      if ($testkey =~ /$searchkey/) { # \Q \E?  May be necc.
                         my $tmpsymb = $1;                          my $tmpsymb = $1;
                         next if ($tmpsymb =~ 'time');                          next if ($tmpsymb =~ 'time');
 #                        &Apache::lonnet::logthis('found '.$tmpsymb.':');  
                         $student_data{&Apache::lonnet::unescape($tmpsymb)} =                           $student_data{&Apache::lonnet::unescape($tmpsymb)} = 
                             &make_into_hash($params);                              &make_into_hash($params);
                     }                      }
Line 1662  sub get_current_state { Line 1662  sub get_current_state {
         }          }
     }      }
     if (! defined($symb)) {      if (! defined($symb)) {
 #        &Apache::lonnet::logthis("returning all data");  
         return %student_data;          return %student_data;
     } elsif (exists($student_data{$symb})) {      } elsif (exists($student_data{$symb})) {
 #        &Apache::lonnet::logthis("returning data for symb=".$symb);  
         return %{$student_data{$symb}};          return %{$student_data{$symb}};
     } else {      } else {
         return ();          return ();

Removed from v.1.55  
changed lines
  Added in v.1.56


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>