# Standard Input/Output Reference

Transcoder

The `Transcoder` class is a codeset transcoder class. The class is responsible to map a byte character in a given codeset into its associated Unicode character. It should be noted that not all characters can be transcoded.

transcoder-p
Object
DEFAULT

The `DEFAULT` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode. In default mode, each character is not transcoded. This mode is the identity mode.

I8859-01

The `I8859-01` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-6 codeset.

I8859-02

The `I8859-02` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-2 codeset.

I8859-03

The `I8859-03` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-3 codeset.

I8859-04

The `I8859-04` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-4 codeset.

I8859-05

The `I8859-05` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-5 codeset.

I8859-06

The `I8859-06` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-6 codeset.

I8859-07

The `I8859-07` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-7 codeset.

I8859-08

The `I8859-08` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-8 codeset.

I8859-09

The `I8859-09` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-9 codeset.

I8859-10

The `I8859-10` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-10 codeset.

I8859-11

The `I8859-11` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-11 codeset.

I8859-13

The `I8859-13` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-13 codeset.

I8859-14

The `I8859-14` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-14 codeset.

I8859-15

The `I8859-15` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-15 codeset.

I8859-16

The `I8859-16` constant is used by the `set-transcoding-mode` method to specify the class transcoding mode that corresponds to the ISO-8859-16 codeset.

Transcoder
none

The `Transcoder` constructor creates a default transcoder that operates in default mode by using the identity function.

Transcoder
constant

The `Transcoder` constructor creates a transcoder with the argument mode.

set-transcoding-mode
none
constant

The `set-transcoding-mode` method sets the class transcoding mode.

get-transcoding-mode
constant
none

The `get-transcoding-mode` method returns the class transcoding mode.

valid-p
Byte|Character
Boolean

The `valid-p` predicate returns true if character can be transcoded. If the argument is a byte, the method returns true if the byte can be transcoded to a character. If the argument is a character, the method returns true if the character can be transcoded to a byte.

encode
Byte
Character

The `encode` method encodes a byte into a character. If the character cannot be encoded, an exception is raised.

decode
Character
Byte

The `decode` method decodes a character into a byte. If the character cannot be decoded, an exception is raised.

Stream

The `Stream` class is a base class for the standard streams. The class is automatically constructed by a derived class and provides the common methods for all streams.

stream-p
Transcoder
BYTE

The `BYTE` constant is used by the `set-coding-mode` method to specify the stream coding mode. In byte mode, each character is assumed to be coded with one byte. This value affects the `getu` and `write` methods

UTF-8

The `UTF-8` constant is used by the `set-coding-mode` method to specify the stream coding mode. In UTF-8 mode, each character is assumed to be coded in the UTF-8 representation. This value affects the `getu` and `write` methods

set-encoding-mode
none
constant|String

The `set-encoding-mode` method sets the stream coding mode that affects how characters are read or written. In the enumeration form, the method only sets the stream coding mode which is either byte or UTF-8 mode. In the string mode, the method sets the stream encoding mode and the transcoding mode.

get-encoding-mode
constant
none

The `get-coding-mode` method returns the stream coding mode which affects how characters are read or written.

InputStream

The `InputStream` class is a base class for the standard i/o module. The class is automatically constructed by a derived class and provides the common methods for all input streams. The input stream is associated with a timeout value which is used for read operation. By default, timeout is infinite, meaning that any read without data will be a blocking one.

input-stream-p
Stream
flush
none|Character
none

The `flush` method the input stream buffer. In the first form, without argument, the input stream buffer is entirely flushed. In the second form, the input stream buffer is flushed until the character argument is found.

get-timeout
Integer
none

The `get-timeout` method returns the input stream timeout. A negative value is a blocking timeout.

set-timeout
none
Integer

The `set-timeout` method sets the input stream timeout. A negative value is a blocking timeout. Changing the stream timeout does not cancel any pending read operation.

read
Byte
none

The `read` method returns the next byte available from the input stream. If the stream has been closed or consumed, the end-of-stream byte is returned.

read
Buffer
Integer

The `read` method returns a buffer object with at most the number of bytes specified as an argument. The buffer `length` method should be used to check how many bytes have been placed in the buffer.

readln
String
none

The `readln` method returns the next line available from the input stream. If the stream has been closed or consumed, the end-of-stream character is returned.

getu
Character
none

The `getu` method returns the next available Unicode character from the input stream. If the stream has been closed or consumed, the end-of-stream character is returned. During the read process, if the character decoding operation fails, an exception is raised.

valid-p
Boolean
none|Integer

The `valid-p` method returns true if the input stream is in a valid state. By valid state, we mean that the input stream can return a byte with a call to the read method. With one argument, the method timeout after the specified time in milliseconds. If the timeout is null, the method returns immediately. With -1, the method blocks indefinitely if no byte is available.

eos-p
Boolean
none

The `eos-p` predicate returns true if the input stream has been closed or all bytes consumed.

pushback
Integer
Byte|Character|String

The `pushback` method push-back a byte, an Unicode character or a string in the input stream. Subsequent calls to read will return the last pushed bytes. Pushing a string is equivalent to push each encoded bytes of the string. The method returns the number of bytes pushed back.

get-buffer-length
Integer
none

The `get-buffer-length` method returns the length of the push-back buffer.

to-string
String
none

The `to-string` method returns a string representation of the input stream buffer.

InputFile

The `InputFile` class provide the facility for an input file stream. An input file instance is created with a file name. If the file does not exist or cannot be opened, an exception is raised. The `InputFile` class is derived from the `InputStream` class.

input-file-p
InputStream
Nameable
InputFile
String

The `InputFile` constructor create an input file by name. If the file cannot be created, an exception is raised. The first argument is the file name to open.

InputFile
String String

The `InputFile` constructor create an input file by name and encoding mode. If the file cannot be created, an exception is raised. The first argument is the file name to open.The second argument is the encoding mode to use.

close
Boolean
none

The `close` method close the input file and returns true on success, false otherwise. In case of success, multiple calls return true.

lseek
none
Integer

The `lseek` set the input file position to the integer argument. Note that the push-back buffer is reset after this call.

length
Integer
none

The `length` method returns the length of the input file. The length is expressed in bytes.

get-modification-time
Integer
none

The `get-modification-time` method returns the modification time of the file. The returned argument is suitable for the `Time` and `Date` system classes.

InputMapped

The `InputMapped` class is an input stream class that provides the facility for reading a mapped input stream. The input stream is mapped at construction given a file name, a size and a file offset. An anonymous mapped input stream can also be designed with a buffer object. Finally, without any information an always valid null input stream is constructed.

input-mapped-p
InputStream
InputMapped
none

The `InputMapped` constructor create a null input stream. This stream acts as a null character generator.

InputMapped
String|Buffer

The `InputMapped` constructor create a mapped input stream by name or buffer. In the first form, a string is used as file name to be mapped an input stream. In the second form, a buffer is mapped as an input stream.

InputMapped
String Integer Integer

The `InputMapped` constructor create a mapped input stream by name, size and offset. The string argument is the file name to map. The second argument is the desired mapped size. The third argument is the offset inside the file before mapping it.

lseek
none
Integer

The `lseek` set the input mapped file position to the integer argument. Note that the push-back buffer is reset after this call.

length
Integer
none

The `length` method returns the length of the input mapped file. The length is expressed in bytes.

InputString

The `InputString` class provide the facility for an input string stream. The class is initialized or set with a string and then behaves like a stream. This class is very useful to handle generic stream method without knowing what kind of stream is behind it.

input-string-p
InputStream
InputString
none

The `InputString` constructor creates an empty input string.

InputString
String

The `InputString` constructor creates an input string by value.

get
Byte
none

The `get` method returns the next available byte from the input stream but do not remove it.

set
none
String

The `set` method sets the input string by first resetting the push-back buffer and then initializing the input string with the argument value.

InputTerm

The `InputTerm` class provide the facility for an input terminal stream. The input terminal reads byte from the standard input stream. No line editing facility is provided with this class This is a low level class, and normally, the `Terminal` class should be used instead.

input-term-p
InputStream
OutputStream
InputTerm
none

The `InputTerm` constructor creates a default input terminal.

set-ignore-eos
none
Boolean

The `set-ignore-eos` method set the input terminal end-of-stream ignore flag. When the flag is on, any character that match a ctrl-d is changed to the end-of-stream mapped character returned by a read. This method is useful to prevent a reader to exit when the ctrl-d byte is generated.

set-mapped-eos
none
Byte

The `set-mapped-eos` method set the input terminal end-of-stream mapped character. By default the character is set to end-of-line. This method should be used in conjunction with the `set-ignore-eos` method.

OutputStream

The `OutputStream` class is a base class for the standard i/o module. The class is automatically constructed by a derived class and provide the common methods for all output streams.

output-stream-p
Stream
write
Integer
Literal+

The `write` method write one or more literal arguments on the output stream. This method returns the number of characters written.

writeln
none
Literal+

The `writeln` method write one or more literal argument to the output stream and finish with a newline. This method return nil.

errorln
none
Literal+

The `errorln` method write one or more literal argument to the associated output error stream and finish with a newline. Most of the time, the output stream and error stream are the same except for an output terminal.

newline
none
none

The `newline` method writes a new line byte to the output stream. The method returns nil.

write-soh
none
none

The `write-soh` method writes a start-of-heading character to the output stream.

write-stx
none
none

The `write-stx` method writes a start-of-transmission character to the output stream.

write-etx
none
none

The `write-etx` method writes an end-of-transmission character to the output stream.

write-eos
none
none

The `write-eos` method writes an end-of-stream character to the output stream.

OutputFile

The `OutputFile` class provide the facility for an output file stream. An output file instance is created with a file name. If the file does not exist, it is created. If the file cannot be created, an exception is raised. Once the file is created, it is possible to write literals. The class is derived from the `OutputStream` class. By default an output file is created if it does not exist. If the file already exist, the file is truncated to 0. Another constructor for the output file gives more control about this behavior. It takes two boolean flags that defines the truncate and append mode. The t-flag is the truncate flag. The a-flag is the append flag.

output-file-p
OutputStream
Nameable
OutputFile
String

The `OutputFile` constructor create an output file by name. If the file cannot be created, an exception is raised. The first argument is the file name to create.

OutputFile
String String

The `OutputFile` constructor create an output file by name and encoding mode. If the file cannot be created, an exception is raised. The first argument is the file name to create. The second argument is the encoding mode to use.

OutputFile
String Boolean Boolean

The `OutputFile` constructor create an output file by name. If the file cannot be created, an exception is raised. The first argument is the file name to create. The second argument is the truncate flag. If the file already exists and the truncate flag is set, the file is truncated to 0. The third argument is the append mode. If set to true, the file is open in append mode.

close
Boolean
none

The `close` method closes the output file and returns true on success, false otherwise. In case of success, multiple calls returns true.

OutputString

The `OutputString` class provide the facility for an output string stream. The class is initially empty and acts as a buffer which accumulate the write method bytes. The `to-string` method can be used to retrieve the buffer content.

output-string-p
OutputStream
OutputString
none

The `OutputString` constructor creates a default output string.

OutputString
String

The `OutputString` constructor creates an output string by value. The output string stream is initialized with the string value.

flush
none
none

The `flush` method flushes the output stream by resetting the stream buffer.

length
Integer
none

The `length` method returns the length of the output string buffer.

to-string
String
none

The `to-string` method returns a string representation of the output string buffer.

OutputBuffer

The `OutputBuffer` class provide the facility for an output byte stream. The class is initially empty and acts as a buffer which accumulate the write method bytes. The `to-string` method can be used to retrieve the buffer content as a string. The `format` method can be used to retrieve the buffer content as an octet string. content.

output-buffer-p
OutputStream
OutputBuffer
none

The `OutputBuffer` constructor creates a default output buffer.

OutputBuffer
String

The `OutputBuffer` constructor creates an output buffer by value. The output buffer stream is initialized with the string value.

flush
none
none

The `flush` method flushes the output stream by resetting the stream buffer.

length
Integer
none

The `length` method returns the length of the output buffer.

to-string
String
none

The `to-string` method returns a string representation of the output buffer.

format
String
none

The `format` method returns an octet string representation of the output buffer.

OutputTerm

The `OutputTerm` class provide the facility for an output terminal. The output terminal is defined as the standard output stream. If the standard error stream needs to be used, the `ErrorTerm` class is more appropriate.

output-term-p
OutputStream
OutputTerm
none

The `OutputTerm` constructor creates a default output terminal

ErrorTerm
none

The `ErrorTerm` constructor creates a default error terminal

Terminal

The `Terminal` class provides the facility for an i/o terminal with line editing capability. The class combines the `InputTerm` and `OutputTerm` methods.

terminal-p
InputTerm
OutputTerm
Terminal
none

The `Terminal` constructor creates a default terminal which combines an input and output terminal with line editing capabilities.

set-primary-prompt
none
String

The `set-primary-prompt` method sets the terminal primary prompt which is used when the `read-line` method is called.

set-secondary-prompt
none
String

The `set-secondary-prompt` method sets the terminal secondary prompt which is used when the `read-line` method is called.

get-primary-prompt
String
none

The `get-primary-prompt` method returns the terminal primary prompt.

get-secondary
String
none

The `get-secondary-prompt` method returns the terminal secondary prompt.

Intercom

The `Intercom` class is the interpreter communication class. The class operates with two streams. One output stream is used to send serialized data while the input stream is used to deserialize data. The `send` method can be used to send the data, while the `recv` can be used to receive them.

intercom-p
Object
Intercom
none

The `Intercom` constructor creates a default interpreter communication object. There is no stream attached to it.

Intercom
InputStream|OutputStream

The `Intercom` constructor creates an interpreter communication object with an input or an output stream. In the first form, the input stream object is used by the `recv` method to read data object. In the second form, the output stream object is used by the `send` method to send data object.

Intercom
InputStream OutputStream

The `Intercom` constructor creates an interpreter communication object with an input and an output stream.

send
none
Object

The `send` method serialize the object argument with the help of the output stream bound to the interpreter communication object. If there is no output stream, nothing is sent.

recv
Object
none

The `recv` method deserialize an object with the help of the input stream bound to the interpreter communication object. If there is no output stream, `nil` is returned.

request
Object
Object

The `request` method perform an atomic send receive operation.

set-input-stream
none
InputStream

The `set-input-stream` method binds an input stream to the interpreter communication object.

get-input-stream
InputStream
none

The `get-input-stream` method returns the input stream bound to the interpreter communication object.

set-output-stream
none
OutputStream

The `set-output-stream` method binds an output stream to the interpreter communication object.

get-output-stream
OutputStream
none

The `get-output-stream` method returns the output stream bound to the interpreter communication object.

InputOutput

The `InputOutput` class implements an input-output stream with a buffer which holds character during the processing of transit between the output stream to the input stream. The theory of operation goes as follow. The internal buffer is filled with characters with the help of the output stream. The characters are consumed from the buffer with the help of the input stream (read method). If the buffer becomes empty the `eos-p` predicate returns true, the `valid-p` predicate false and the `read` method will return the `eos` character. The InputOutput buffer can also be initialized with a buffer. This provides a nice mechanism to use a buffer like an input stream. The i/o operations implemented by this class are non-blocking. As a consequence, it is not possible to suspend a thread with this class and have it awaken when some characters are available in the input stream.

input-output-p
InputStream
OutputStream
InputOutput
none

The `InputOutput` constructor creates a default input/output stream.

InputOutput
String

The `InputOutput` constructor creates an input/output stream initialized with the string argument. The string argument is used to fill the string buffer.

get
Byte
none

The `get` method returns the next available byte from the input stream but do not remove it.

set
none
String

The `set` method sets the input string by first resetting the push-back buffer and then initializing the input string with the argument value.

Selector

The `Selector` class provides some facilities to perform i/o multiplexing. The constructor takes 0 or several stream arguments.The class manages automatically the differentiation between the `InputStream` and the `OutputStream` objects. Once the class is constructed, it is possible to get the first stream ready for reading or writing or all of them. It is also possible to add more steams after construction with the `add` method. When a call to the `wait` method succeeds, the method returns the first available stream. If the `waitall` method is called, the method returns a vector with all ready steams. The selector can be configured to operate in marking mode. In such mode, the selector can be marked as ready by a thread independently of the bounded streams. This is a useful mechanism which can be used to cancel a select loop. The `mark` method is designed to mark the selector while the `marked-p` predicate returns true if the stream has been marked.

selector
Object
Selector
none

The `Selector` constructor creates a default stream selector.

Selector
[Boolean] [InputStream|OutputStream]*

The `Selector` constructor creates a stream selector with 0 or more stream arguments. If the first argument is a boolean, the selector is constructed marked mode.

add
none
InputStream|OutputStream

The `add` method adds an input or output stream to the selector. If the stream is both an input and an output stream, the preference is given to the input stream. If this preference is not acceptable, the `input-add` or the `output-add` methods might be preferable.

input-add
none
InputStream

The `input-add` method adds an input stream to the selector.

output-add
none
OutputStream

The `output-add` method adds an output stream to the selector.

wait
Stream
none|Integer

The `wait` method waits for a status change in the selector and returns the first stream that has change status. With one argument, the selector time-out after the specified time in milliseconds. Note that at the time of the return, several streams may have changed status.

wait-all
Vector
none|Integer

The `wait` method waits for a status change in the selector and returns all streams that has change status in a vector object. With one argument, the selector time-out after the specified time in milliseconds. If the selector has timed-out, the vector is empty.

input-get
InputStream
Integer

The `input-get` method returns the input streams in the selector by index. If the index is out of bound, an exception is raised.

output-get
OutputStream
Integer

The `output-get` method returns the output streams in the selector by index. If the index is out of bound, an exception is raised.

input-length
Integer
none

The `input-length` method returns the number of input streams in the selector.

output-length
Integer
none

The `output-length` method returns the number of output streams in the selector.

mark
none
none

The `mark` method marks a selector object.

marked-p
Boolean
none

The `marked-p` predicate returns true if the selector has been marked.

Logtee

The `Logtee` class provides the facility of a logger object associated with an output stream. When a message is added, the message is written to the output stream depending on an internal flag. By default the tee mode is false and can be activated with the `set-tee` method.

logtee-p
Logger
Logtee
none

The `Logtee` constructor creates a default logger without an output stream.

Logtee
Integer

The `Logtee` constructor creates a logger with a specific size without an output stream. terminal

Logtee
OutputStream

The `Logtee` constructor creates a logger with an output stream. The object is initialized to operate in write mode.

Logtee
Integer OutputStream

The `Logtee` constructor creates a logger with a specific size with an output stream. The first argument is the logger size. The second argument is the output stream.

Logtee
Integer String OutputStream

The `Logtee` constructor creates a logger with a specific size, an information string and an output stream. The first argument is the logger size. The second argument is information string. The third argument is the output stream.

set-tee-stream
none
OutputStream

The `set-tee-stream` method sets the tee output stream. This stream is different from the logger output stream

get-tee-stream
OutputStream
none

The `get-tee-stream` method returns the object output stream.

set-tee
none
Boolean

The `set-tee` method sets the object tee flag. When the flag is true, the logger writes the added message on the output stream.

get-tee
Boolean
none

The `get-tee` method returns the object tee flag. When the flag is true, the logger writes the added message on the output stream.

Pathname

The `Pathname` class is a base class designed to manipulate system i/o paths. The class operates with a directory name and a file name. Both names are kept separated to ease the path manipulation. The path components can be extracted individually. However, it shall be noted that the first component has a special treatment to process the root directory name.

pathname-p
Object
Pathname
none

The `Pathname` constructor creates a default path name without file and directory names.

Pathname
String

The `Pathname` constructor creates a path name with a file name. The first string argument is the file name.

Pathname
String String

The `Pathname` constructor creates a pathname with a file and directory name. The first string argument is the file name. The second string argument is the directory name.

reset
none
none

The `reset` method reset the path name by removing all path and file information.

dir-p
Boolean
none

The `dir-p` predicate returns true if the path is a directory.

file-p
Boolean
none

The `file-p` predicate returns true if the path is a file.

set-file-name
none
String

The `set-file-name` method set the path name file name. The string argument is the file name.

get-file-name
String
none

The `get-file-name` method returns the path name file name.

add-directory-name
none
String

The `add-directory-name` method add the directory name to the directory path component. The string argument is the directory name.

set-directory-name
none
String

The `set-directory-name` method set the directory name file name. The string argument is the directory name.

get-directory-name
String
none

The `get-directory-name` method returns the path name directory name.

length
Integer
none

The `length` method returns the number of directory path elements.

get-path
String
Integer

The `get-path` method returns a directory path element by index.

get-root
String
none

The `get-root` method returns the root component of a directory name.

get-full
String
none

The `get-full` method returns the full path name by combining the directory name with the file name.

add-path
none
String

The `add-path` method add a new path component by name. The path is separated into individual component and added to the directory path unless it is a root path. If the file name is set, the file name is added as a directory component. If the path is a root path, a new path name is rebuilt. This last case is equivalent to a call to `set-file-name`.

normalize
none
none

The `normalize` method rebuild the path name by determining the full path nature if possible. In case of success, the path structure reflects the actual path type.

Pathlist

The `Pathlist` class is a base class designed to ease the manipulation of a file search path. The class acts like a list of search paths and various facilities are provided to find a valid path for a given name. The path list can be manipulated like any other list.

pathlist-p
Object
Pathlist
none

The `Pathlist` constructor creates a default path list.

Pathlist
Boolean|String

The `Pathlist` constructor creates a path list with a local search flag or with an initial path component. In the first form, a boolean argument controls the local search flag. In the second for, a string argument is used as the initial path component.

reset
none
none

The `reset` method resets the path list by clearing the local search flag and removing all path components.

local-p
Boolean
none

The `local-p` predicate returns true if the local search flag is set.

set-local-search
none
Boolean

The `set-local-search` method sets the local search flag.

length
Integer
none

The `length` method returns the number of directory path elements.

get-path
String
Integer

The `get-path` method returns a directory path element by index.

add-path
none
String

The `add-path` method add a new path component by name. The string argument is the name to add.

file-p
Boolean
String

The `file-p` predicate returns true if the file name argument can be resolved. If the local search flag is set, the local directory is check first.

resolve
String
String

The `resolve` method returns a string representation of the resolved file path. If the local search flag is set and the file name is found locally, the initial name argument is returned.

dir-p
Boolean
String

The `dir-p` function returns true if the argument name is a directory name, false otherwise.

file-p
Boolean
String

The `file-p` function returns true if the argument name is a regular file name, false otherwise.

tmp-name
String
String?

The `tmp-name` function returns a name suitable for the use as a temporary file name. Without argument, a default prefix is used to build the name. An optional string prefix can control the original name.

tmp-path
String
String?

The `tmp-path` function returns a path suitable for the use as a temporary file name. Without argument, a default prefix is used to build the path. An optional string prefix can control the original name.

absolute-path
String
String+

The `absolute-path` function returns an absolute path name from an argument list. Without argument, the command returns the root directory name. With one or several argument, the absolute path is computed from the root directory.

relative-path
String
String+

The `relative-path` function returns a relative path name from an argument list. With one argument, the function returns it. With two or more arguments, the relative path is computed by joining each argument with the previous one.

rmfile
none
String+

The `rmfile` function removes one or several files specified as the arguments. If one file fails to be removed, an exception is raised.

mkdir
none
String+

The `mkdir` function creates one or several directories specified as the arguments. If one directory fails to be created, an exception is raised.

mhdir
none
String+

The `mhdir` function creates hierarchically one or several directories specified as the arguments. If one directory fails to be created, an exception is raised.

rmdir
none
String+

The `rmdir` function removes one or several directories specified as the arguments. If one directory fails to be removed, an exception is raised.

get-base-name
String
String

The `get-base-name` function returns the base name from a path. The base name can be either a file name or a directory name. By definition, a path is made of a base path and a base name.

get-base-path
String
String

The `get-base-path` function returns the base path from a path. The base path is a directory name. By definition, a path is made of a base path and a base name.

get-extension
String
String

The `get-extension` function returns the extension from a path.

remove-extension
String
String

The `remove-extension` function returns the extension from a path. In order to get a base file name from a path, the `get-base-name` function must be called first.

Directory

The `Directory` class provides some facilities to access a directory. By default, a directory object is constructed to represent the current directory. With one argument, the object is constructed from the directory name. Once the object is constructed, it is possible to retrieve its content.

directory-p
Object
Directory
none

The `Directory` constructor creates a directory object those location is the current directory. If the directory cannot be opened, an exception is raised.

Directory
String

The `Directory` constructor create a directory object by name. If the directory cannot be opened, an exception is raised. The first argument is the directory name to open.

mkdir
Directory
String

The `mkdir` method creates a new directory in the current one. The full path is constructed by taking the directory name and adding the argument. Once the directory is created, the method returns a directory object of the newly constructed directory. An exception is thrown if the directory cannot be created.

rmdir
none
String

The `rmdir` method removes an empty directory. The full path is constructed by taking the directory name and adding the argument. An exception is thrown if the directory cannot be removed.

rmfile
none
String

The `rmfile` method removes a file in the current directory. The full path is constructed by taking the directory name and adding the argument. An exception is thrown if the file cannot be removed.

get-name
String
none

The `get-name` method returns the directory name. If the default directory was created, the method returns the full directory path.

get-list
List
none

The `get-list` method returns the directory contents. The method returns a list of strings. The list contains all valid names at the time of the call, including the current directory and the parent directory.

get-files
List
none

The `get-files` method returns the directory contents. The method returns a list of strings of files. The list contains all valid names at the time of the call.

get-subdirs
List
none

The `get-subdirs` method returns the sub directories. The method returns a list of strings of sub-directories. The list contains all valid names at the time of the call, including the current directory and the parent directory.

next-name
String
none

The `next-name` method returns the next available name from the directory stream. This method is useful when operating with a large number of elements.

next-path
String
none

The `next-path` method returns the next available path name from the directory stream. This method is useful when operating with a large number of elements.

next-file-name
String
none

The `next-file-name` method returns the next available file name from the directory stream. This method is useful when operating with a large number of elements.

next-file-path
String
none

The `next-file-path` method returns the next available file path name from the directory stream. This method is useful when operating with a large number of elements.

next-dir-name
String
none

The `next-dir-name` method returns the next available directory name from the directory stream. This method is useful when operating with a large number of elements.

next-dir-path
String
none

The `next-dir-path` method returns the next available directory path name from the directory stream. This method is useful when operating with a large number of elements.

Logtee

The `Logtee` class is a message logger facility associated with an output stream. When a message is added to the logger object, the message is also sent to the output stream, depending on the controlling flags. The name "logtee" comes from the contraction of "logger" and "tee". One particularity of the class is that without a stream, the class behaves like a regular logger.

logtee-p
Logger
Logtee
none

The `Logtee` constructor creates a default logger without an output stream

Logtee
Integer

The `Logtee` constructor creates a logger object with a specific size without an output stream.

Logtee
Output

The `Logtee` constructor creates a logger object with an output stream.

Logtee
Integer Output

The `Logtee` constructor creates a logger object with a specific size and an output stream. The first argument is the logger window size. The second argument is the output stream.

Logtee
Integer String Output

The `Logtee` constructor creates a logger object with a specific size, an information string and an output stream. The first argument is the logger window size. The second argument is the logger information string. The third argument is the output stream.

set-output-stream
none
Output

The `set-output-stream` method attaches the output stream to the logtee object.

get-output-stream
Output
none

The `get-output-stream` method returns the logtee output stream.

set-tee
none
Boolean

The `set-tee` method sets the logtee control flag. The control flag controls the message display to the output stream.

get-tee
Boolean
none

The `get-tee` method returns the logtee output stream.

NamedFifo

The `NameFifo` class is a string vector designed to operate as a stream fifo object. The class provides the facility to read or write the fifo content from a stream. The stream can be created by name for writing, in which case the named fifo operates as a backup object.

named-fifo-p
Strvec
Nameable
NamedFifo
none

The `NamedFifo` constructor creates a default named fifo without a backing name. In this case the fifo cannot be read or written by stream.

NamedFifo
String

The `NamedFifo` constructor creates a named fifo by name. The name is used as a file name for reading or writing the fifo.

NamedFifo
String Boolean

The `NamedFifo` constructor creates a named fifo by name. The name is used as a file name for reading or writing the fifo.If the boolean argument is true, the fifo is read.

read
none
none

The `read` method reads the fifo file name and fill the fifo.

write
none
none

The `write` method writes the fifo contents to the fifo file name.

set-name
none
String

The `set-name` method sets the fifo file name.

FileInfo

The `FileInfo` is a file information class that holds the primary information related to a file, such like its size or its modification time. The file information is set at construction but can be updated with the help of the `update` method.

file-info-p
Nameable
String

The `FileInfo` constructor creates a file information by name. The string argument is the file name to query.

length
Integer
none

The `length` method returns the file size information.

get-modification-time
Integer
none

The `get-modification-time` method returns the file modification time. The time can be used as an argument to the `Time` or `Date` object.

update
none
none

The `update` method the file information data.