english
version "1.0"
identify "%Z%%M% %I% %E%"
#: Copyright (c) 1991-2005 by Wayne C. Gramlich.
#, All rights reserved.
module directory
#: This module declares and implements the {directory
} abstraction.
define directory
external
procedure address_get@directory
takes
directory directory
returns address
external directory__address_get
#: This procedure will return the address of {directory
}
procedure child_open@directory
takes
directory directory
child_name string
returns directory
#: This procedure will open the child directory of {directory
}
#, named {child_name
}. If any errors occur ??#{directory
} is returned.
procedure close@directory
takes
directory directory
returns_nothing
external directory__close
#: This procedure will close {directory
}.
procedure current_open@directory
takes
file_system file_system
returns directory
#: This procedure will create and return a directory object for
#, the current directory allocated from {file_system
}. If any errors
#, occur, ??@{directory
} is returned.
procedure file_name_next@directory
takes
directory directory
returns file_name
#: This procedure will return the next {file_name
} object from
#, {directory
}. If there are no more {file_name
} objects to be
#, has, ??@{file_name
} is returned.
procedure file_name_string_next@directory
takes
directory directory
file_name string
returns logical
external directory__file_name_string_next
#: This procedure will return the next file name from {directory
}
#, and store it into {file_name
}. {file_name
} must be a string that
#, is in {read_write
} mode. If there are no more file names,
#, {false
} is returned; otherwise {true
} is returned. For Unix,
#, the file names ".." and "." are not returned.
procedure file_system_get@directory
takes
directory directory
returns file_system
external directory__file_system_get
#; This procedure will return the {file_system
} object associated
#, with {directory
}.
procedure identical@directory
takes
directory1 directory
directory2 directory
returns logical
#: This procedure will return {true
} if {directory1
} is identical to
#, {directory2
}.
procedure is_root_get@directory
takes
directory directory
returns logical
external directory__is_root_get
#: This procedure will return {true
} if {directory
} is the root
#, directory and {false
} otherwise.
procedure is_open_get@directory
takes
directory directory
returns logical
external directory__is_open_get
#: This procedure will return {true
} if {directory
} is open and
#, {false
} otherwise.
procedure name_get@directory
takes
directory directory
returns string
external directory__name_get
#: This procedure will return the directory name used to create
#, {directory
}.
procedure open@directory
takes
directory_name string
file_system file_system
returns directory
external directory__open
#: This procedure will open {directory_name
} and return it as a
#, {directory
}. If {directory_name
} does not exist,
#, {??
}@{directory
} is returned.
procedure parent_name_get@directory
takes
directory directory
returns string
external directory__parent_name_get
#: This procedure will return the parent name of {directory
}.
procedure parent_open@directory
takes
directory directory
returns directory
#: This procedure will open and return the parent directory for
#, {directory
}. If any error occurs, ??@{directory
} is returned.
procedure print@directory
takes
directory directory
out_stream out_stream
returns_nothing
#: This procedure will print {directory
} to {out_stream
}.
procedure temporary_get@directory
takes
directory directory
returns string
external directory__temporary_get
#: This procedure will return a temporary string associated with
#, {directory
} that is in read/write mode.