english
version "1.0"
identify "xyz"
#: Copyright (c) 1997-2005 by Wayne C. Gramlich.
#, All rights reserved.
#: This procedure implements a "file descriptor set". It is basically
#, a bit set that is constrained by the max. file descriptor number
#, allowed by the system.
module file_set
define file_set #: A set of file descriptors
external
#: {file_set
} procedures:
procedure address_get@file_set
takes
file_set file_set
returns address
external file_set__address_get
#: This procedure will return the {address
} of {file_set
}.
procedure and@file_set
takes
to_file_set file_set
from_file_set1 file_set
from_file_set2 file_set
returns_nothing
external file_set__and
#: This procedure will store into {to_file_set
} the result of bitwise
#, AND'ing {from_file_set1
} and {from_file_set2
}.
procedure create@file_set
takes_nothing
returns file_set
external file_set__create
#: This procedure will create and return an empty {file_set
} object.
procedure clear@file_set
takes
file_set file_set
returns_nothing
external file_set__clear
#: This procedure will clear the contents of {file_set
}.
procedure contents_copy@file_set
takes
to_file_set file_set
from_file_set file_set
returns_nothing
external file_set__contents_copy
#: This procedure will copy the file set in {from_file_set
} to
#, {to_file_set
}.
procedure enter@file_set
takes
file_set file_set
file_descriptor_number unsigned
returns_nothing
external file_set__enter
#: This procedure will add {file_descriptor_number
} to {file_set
}.
procedure identical@file_set
takes
file_set1 file_set
file_set2 file_set
returns logical
#: This procedure will return the {true
}@{logical
} if {file_set1
}
#, is identical to {file_set2
} and {false
} otherwise.
procedure is_in@file_set
takes
file_set file_set
file_descriptor_number unsigned
returns logical
external file_set__is_in
#: This procedure will return {true
} if {file_descriptor_number
}
#, is in {file_set
} and {false
} otherwise.
procedure maximum@file_set
takes
file_set file_set
returns integer
external file_set__maximum
#: This procedure will return the maximum file descriptor number
#, in {file_set
}. If no file descriptor numbers are in {file_set
},
#, -1 is returned.
procedure maximum_possible@file_set
takes_nothing
returns unsigned
external file_set__maximum_possible
#: This procedure returns the maximum possible number that can be set
#, in a {file_set
} object
procedure print@file_set
takes
file_set file_set
out_stream out_stream
returns_nothing
#: This procedure will print {file_set
} to {out_stream
}.
procedure remove@file_set
takes
file_set file_set
file_descriptor_number unsigned
returns_nothing
external file_set__remove
#: This procedure will remove {file_descriptor_number
} from {file_set
}.