Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.173 and 1.178

version 1.173, 2001/11/20 17:58:05 version 1.178, 2001/11/29 18:54:16
Line 1 Line 1
 # The LearningOnline Network  # The LearningOnline Network
 # TCP networking package  # TCP networking package
 #  #
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
 # 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30,  # 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30,
 # 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19,  # 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19,
 # 11/8,11/16,11/18,11/22,11/23,12/22,  # 11/8,11/16,11/18,11/22,11/23,12/22,
Line 35 Line 59
 # 8/4,8/7,8/8,8/9,8/11,8/16,8/17,8/18,8/20,8/23,9/20,9/21,9/26,  # 8/4,8/7,8/8,8/9,8/11,8/16,8/17,8/18,8/20,8/23,9/20,9/21,9/26,
 # 10/2 Gerd Kortemeyer  # 10/2 Gerd Kortemeyer
 # 10/5,10/10,11/13,11/15 Scott Harrison  # 10/5,10/10,11/13,11/15 Scott Harrison
 # 11/17 Gerd Kortemeyer  # 11/17,11/20,11/22 Gerd Kortemeyer
 #  #
 # $Id$  # $Id$
 #  #
Line 2232  sub EXT { Line 2256  sub EXT {
 # ---------------------------------------------------------------- Get metadata  # ---------------------------------------------------------------- Get metadata
   
 sub metadata {  sub metadata {
     my ($uri,$what,$liburi,$prefix)=@_;      my ($uri,$what,$liburi,$prefix,$depthcount)=@_;
   
     $uri=&declutter($uri);      $uri=&declutter($uri);
     my $filename=$uri;      my $filename=$uri;
     $uri=~s/\.meta$//;      $uri=~s/\.meta$//;
 #  #
 # Is the metadata already cached?  # Is the metadata already cached?
 # If "keys" are set, the assumption is that everything is already cached.  # Look at timestamp of caching
 # Everything is cached by the main uri, libraries are never directly cached  # Everything is cached by the main uri, libraries are never directly cached
 #  #
     unless ($metacache{$uri.':keys'}) {      unless (abs($metacache{$uri.':cachedtimestamp'}-time)<600) {
 #  #
 # Is this a recursive call for a library?  # Is this a recursive call for a library?
 #  #
Line 2301  sub metadata { Line 2325  sub metadata {
 #  #
 # This is not a package - some other kind of start tag  # This is not a package - some other kind of start tag
 #   # 
      my $entry=$token->[1];                my $entry=$token->[1];
              if ($entry eq 'import') {                my $unikey;
 #                if ($entry eq 'import') {
 # Importing a library here                   $unikey='';
 #                } else {
                 my $libid=$token->[2]->{'id'};                   $unikey=$entry;
         }
                 
              } else {   
               my $unikey=$entry;  
               if ($prefix) {                if ($prefix) {
   $unikey.='_'.$prefix;    $unikey.=$prefix;
               } else {                } else {
                 if (defined($token->[2]->{'part'})) {                   if (defined($token->[2]->{'part'})) { 
                    $unikey.='_'.$token->[2]->{'part'};                      $unikey.='_'.$token->[2]->{'part'}; 
Line 2321  sub metadata { Line 2342  sub metadata {
               if (defined($token->[2]->{'id'})) {                 if (defined($token->[2]->{'id'})) { 
                  $unikey.='_'.$token->[2]->{'id'};                    $unikey.='_'.$token->[2]->{'id'}; 
       }        }
   
                if ($entry eq 'import') {
   #
   # Importing a library here
   #                
    if (defined($depthcount)) { $depthcount++; } else 
                                              { $depthcount=0; }
                    if ($depthcount<20) {
        map {
                            $metathesekeys{$_}=1;
        } split(/\,/,&metadata($uri,'keys',
                                     $parser->get_text('/import'),$unikey,
                                     $depthcount));
    }
                } else { 
   
               if (defined($token->[2]->{'name'})) {                 if (defined($token->[2]->{'name'})) { 
                  $unikey.='_'.$token->[2]->{'name'};                    $unikey.='_'.$token->[2]->{'name'}; 
       }        }
Line 2334  sub metadata { Line 2371  sub metadata {
       $metacache{$uri.':'.$unikey.'.default'};        $metacache{$uri.':'.$unikey.'.default'};
       }        }
 # end of not-a-package not-a-library import  # end of not-a-package not-a-library import
      }     }
 # end of not-a-package start tag  # end of not-a-package start tag
   }    }
 # the next is the end of "start tag"  # the next is the end of "start tag"
  }   }
        }         }
        $metacache{$uri.':keys'}=join(',',keys %metathesekeys);         $metacache{$uri.':keys'}=join(',',keys %metathesekeys);
          $metacache{$uri.':cachedtimestamp'}=time;
   # this is the end of "was not already recently cached
     }      }
     return $metacache{$uri.':'.$what};      return $metacache{$uri.':'.$what};
 }  }

Removed from v.1.173  
changed lines
  Added in v.1.178


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