// IfsMailStatus.bcpl -- telnet interface to mail system
// Copyright Xerox Corporation 1980, 1981
// Last modified October 4, 1981 4:16 PM by Taft
get "Ifs.decl"
get "IfsSystemInfo.decl"
get "IfsRs.decl"
get "IfsMail.decl"
external
[
// outgoing procedures
MailStatus
// incoming procedures
PutTemplate; Ws; Plural; WritePackedDT; MoveBlock; Div32x16
VFileReadPage; LockCell; UnlockCell
// incoming statics
infoVMD; dsp
]
//----------------------------------------------------------------------------
let MailStatus() be
//----------------------------------------------------------------------------
[
let ms = VFileReadPage(infoVMD, msPage)
LockCell(lv ms)
PutTemplate(dsp, "*N*NThe mail system is $Sabled",
(ms>>MS.enabled? "en", "dis"))
if ms>>MS.enabled then
[
PutTemplate(dsp, "; forwarding is $Sabled.*nStatistics reset at $P",
(ms>>MS.forward? "en", "dis"), WritePackedDT, lv ms>>MS.timeReset)
Ws("*N*N Samples Avg Histogram")
DoMailStat(lv ms>>MS.mseLen,
"Length (characters) <64 <128 <256 <512 <1024 <2048 <4096 >4096")
DoMailStat(lv ms>>MS.mseMlbx,
"Recipients 0-1 2-3 4-7 8-15 <32 <64 <128 >128")
DoMailStat(lv ms>>MS.mseSort,
"Sort delay (sec) 0 1-2 2-3 4-7 8-15 <32 <64 >64")
DoMailStat(lv ms>>MS.mseFwd,
"Fwd delay (sec) 0 1-2 2-3 4-7 8-15 <32 <64 >64")
DoMailStat(lv ms>>MS.mseRetr,
"Retrieve delay (min) <4 <16 <1 hr <4 <16 <3 day <11 >11")
let discard = lv ms>>MS.discard
unless discard!0 eq 0 & discard!1 eq 0 do
PutTemplate(dsp, "*N$EUD message$S discarded",
discard, Plural(discard!0 % discard!1))
]
UnlockCell(lv ms)
]
//----------------------------------------------------------------------------
and DoMailStat(realMSE, text) be
//----------------------------------------------------------------------------
[
let mse = vec lenMSE; MoveBlock(mse, realMSE, lenMSE)
while mse>>MSE.calls↑0 ne 0 do
[ Div32x16(lv mse>>MSE.calls, 2); Div32x16(lv mse>>MSE.total, 2) ]
if mse>>MSE.calls↑1 ne 0 then Div32x16(lv mse>>MSE.total, mse>>MSE.calls↑1)
PutTemplate(dsp, "*N$S*N$9ED$7ED", text, lv realMSE>>MSE.calls,
lv mse>>MSE.total)
for i = 0 to 7 do PutTemplate(dsp, "$7ED", lv mse>>MSE.histogram↑i)
]