From 51ac19f565fa935eec6d9dd1f7119c6227383a3c Mon Sep 17 00:00:00 2001 From: Jacob Mitchell Date: Wed, 7 Sep 2016 13:19:13 -0700 Subject: HTTP Last-Modified: latest modtime of source files See issue #38. --- src/fileio.sml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/fileio.sml (limited to 'src/fileio.sml') diff --git a/src/fileio.sml b/src/fileio.sml new file mode 100644 index 00000000..72e72f6d --- /dev/null +++ b/src/fileio.sml @@ -0,0 +1,34 @@ +structure FileIO :> FILE_IO = struct + +val mostRecentModTimeRef = ref (Time.zeroTime) + +fun checkFileModTime fname = + let val mtime = OS.FileSys.modTime fname in + if Time.compare (mtime, !mostRecentModTimeRef) = GREATER andalso + Time.compare (mtime, Globals.getResetTime ()) = LESS + then mostRecentModTimeRef := mtime + else () + end + +fun mostRecentModTime () = + if Time.compare (!mostRecentModTimeRef, Time.zeroTime) = EQUAL + then Globals.getResetTime () + else !mostRecentModTimeRef + +fun txtOpenIn fname = + let + val inf = TextIO.openIn fname + val () = checkFileModTime fname + in + inf + end + +fun binOpenIn fname = + let + val inf = BinIO.openIn fname + val () = checkFileModTime fname + in + inf + end + +end -- cgit v1.2.3