home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Spezial / SPEZIAL2_97.zip / SPEZIAL2_97.iso / ANWEND / ONLINE / SREFPRC1 / LOOKHITC.SRF < prev    next >
Text File  |  1997-07-06  |  2KB  |  100 lines

  1. /* see if url is in the  "hit cache"  */
  2. sref_look_hit_cache:
  3. parse upper arg thetype, theurl, who , enmadd
  4.  
  5. theurl=translate(theurl,'/','\')
  6.  
  7. lenc=value(enmadd||'HIT_CACHE_LEN',,'OS2ENVIRONMENT')
  8. if lenc=0 then return ' '               /* suppresed */
  9.  
  10. nogi=digits()
  11.  
  12. numeric digits 12
  13. d1=date('b')
  14. t1=time('m')/(24*60)
  15. nowtime=d1+t1
  16.  
  17. if lenc='FILE' then do
  18.   itis=file_lenhitc(thetype,theurl,who,enmadd,nowtime)
  19.    numeric digits nogi
  20.   return itis
  21. end
  22.  
  23.  
  24. /* here to read from enviroment string */
  25.  thec=value(enmadd||'HIT_CACHE',,'OS2ENVIRONMENT')
  26.  if thec=' ' then return ' '               /* empty */
  27.  aa=lastpos(' !;! ',thec)
  28.  if aa=0 then  do
  29.     numeric digits nogi
  30.     return ' '         /* no valid entry */
  31.  end
  32.  thec=delstr(thec,aa)
  33.  
  34.  if thec=' ' then return ' '     /* empty valid entry */
  35.  
  36.  pog=' !;! '
  37.  do until thec=""
  38.  
  39.     parse var thec anent (pog) thec
  40.     parse var anent atype aurl aip  aendtime stuff
  41.     atype=strip(atype) ; aurl=strip(aurl) ; aip=strip(aip)
  42.     aendtime=strip(aendtime)
  43.    if theurl<>aurl | aip<>who | atype<>thetype then iterate
  44.    if aendtime >= nowtime then do
  45.        numeric digits nogi
  46.        return stuff
  47.    end
  48. end
  49.  
  50. numeric digits nogi
  51. return ' '
  52.  
  53.  
  54. /* --------------- */
  55. /* read from cachelist from an .idx file,, slower, but more certain
  56. to catch hits */
  57. file_lenhitc:procedure
  58. parse arg thetype,theurl,who,enmadd,nowtime
  59.  
  60. arf=extract('serverport')
  61. adir=strip(value(enmadd||'TEMPDATA_DIR',,'os2environment'),'t','\')||'\'
  62. theurl=strip(translate(theurl,'/','\'))
  63.  
  64. cfile=adir||'_HITCACH.'||arf
  65. if stream(cfile,'c','query exists')=' ' then do
  66.    call pmprintf_sref("  No hit cache file " cfile)
  67.    return ' '
  68. end
  69.  
  70. /* wait for it to be unlocked */
  71. isnow=time('r')
  72. do until twait>30
  73.   twait=time('e')
  74.   aa=sref_fileread(cfile,'yy')
  75.   if aa>=0 then leave
  76.   ddt=syssleep(0.2)
  77. end
  78. if aa<0 then do
  79.    call pmprintf_sref(" Hit cache file could not be opened: " cfile)
  80.    return ' '
  81. end
  82.  
  83. /* see if a match exists */
  84. do iu=1 to aa
  85.    aline=yy.iu
  86.    if aline=' ' then iterate
  87.    if abbrev(strip(aline),';')=1 then iterate
  88.     parse var aline atype aurl aip  aendtime stuff
  89.     atype=strip(atype) ; aurl=strip(aurl) ; aip=strip(aip)
  90.     aendtime=strip(aendtime)
  91.    if theurl<>aurl | aip<>who | atype<>thetype then iterate
  92.    if aendtime >= nowtime then do
  93.         return stuff
  94.    end
  95. end
  96. return ' '              /* no match */
  97.  
  98.  
  99.  
  100.