3 * Communication of the server with the outside world and its client via input,
4 * output and world state files.
12 /* Return single \0-terminated string read from input queue (world.queue); or,
13 * if queue is empty and world.do_update is set, update world state file (and
14 * unset world.do_update) and write a single dot line to server out file, then
15 * read server in file for the next load of bytes to put onto the input queue.
17 * Reading the server in file may put many \0-terminated strings on the queue at
18 * once. Successive calls of io_round() will make these available one by one.
19 * Each such call cuts off bytes from the beginning of world.queue, up to and
20 * including the last \0 byte that is followed by a non-\0 byte or ends the
21 * queue. If the queue starts with a \0 byte, it and its \0 followers are cut
22 * and a NULL pointer is returned. Reading from the input file stops only when
23 * one or more byte were read and the next read returns 0 bytes. If the
24 * re-filled queue does not end in a \0 byte, a \0 byte is appended to it.
26 extern char * io_round();
28 /* Write to savefile (atomically) god commands (one per line) to rebuild the
29 * current world state.
31 extern void save_world();