## seek.pkg
# Compiled by:
#
src/app/makelib/stuff/makelib-stuff.sublib# Seek in an Input_Stream.
api Seek {
#
exception UNABLE_TO_SEEK;
seek: (data_file__premicrothread::Input_Stream, file_position::Int)
->
Void;
};
package seek
: Seek # Seek is from
src/app/makelib/stuff/seek.pkg{
exception UNABLE_TO_SEEK;
empty_vector
=
vector_of_one_byte_unts::from_list [];
fun seek (stream, position)
=
{ fs = data_file__premicrothread::get_instream stream;
#
my (reader, _)
=
data_file__premicrothread::pur::get_reader fs;
reader -> winix_base_data_file_io_driver_for_posix__premicrothread::FILEREADER { set_file_position, ... };
case set_file_position
#
THE set_file_position
=>
{ set_file_position position;
#
fs' = data_file__premicrothread::pur::make_instream (reader, empty_vector);
#
data_file__premicrothread::set_instream (stream, fs');
};
#
NULL => raise exception UNABLE_TO_SEEK;
esac;
};
};
## (C) 1999 Lucent Technologies, Bell Laboratories
## Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.