@main[][sDir;sName;tList;hf;i]
$sDir[174]
$sName[data]
# remove previous files first
$tList[^file:list[$sDir]]
^tList.menu{
^file:delete[$sDir/$tList.name]
}
# open hashfile
$hf[^hashfile::open[$sDir/$sName]]
# check hashfile files -- it mustn't exist because of delayed opened
^checkFiles[$sDir;$sName]
<hr />
# add item with key '0' for 2 sec
$hf.0[
$.value[zigi]
$.expires(2/24/60/60)
]
# add more items to hashfile
^for[i](1;9){
$hf.[$i][=$i=]
}
^checkFiles[$sDir;$sName]
^$hf.0: '$hf.0'<br />
<hr />
# wait 2 secs till item with key '0' expired
^sleep(3)
^$hf.0: '$hf.0'<br />
# release before .foreach
^hf.release[]
<hr />
keys: ^hf.foreach[k;]{$k}[, ]
# release before .delete
^hf.release[]
^hf.delete[1]
<hr />
^hf.foreach[k;v]{^$hf.${k}: '$v'<br />}
^hf.delete[2]
<hr />
$s[^hf.foreach[k;v]{^$hf.${k}: '$v'}[<br />]]
$s<br />
# checking for cleanup (just calls: we can't check internals)
^hf.cleanup[]
<hr />
# delete hashfile
^hf.delete[]
# files mustn't exist after .delete[]
^checkFiles[$sDir;$sName]
# try to read not existing hashfile (it must auto opened)
<hr />
^hf.foreach[k;v]{^$hf.${k}: '$v'<br />}
# files must exist now
^checkFiles[$sDir;$sName]
@checkFiles[sDir;sName]
^checkFile[$sDir/${sName}.dir]
^checkFile[$sDir/${sName}.pag]
@checkFile[sFileName]
$sFileName -- ^if(-f $sFileName){exist}{not exist}<br />
E-mail: