The shell command simulator in LPC. These lfuns are used in the interaction of the command objects. status help(string arg); Called in the master object to get help. If there is help on this subject written out, this should return 1 else 0; object command_object(string * arg); Called in the master object with the argument vector. It returns a newly created or old reusable command object. The choise is left to the master. status start(string * arg, object previous_object); Called in the object returned by command_object, to initiate the program. This is the only way to determin what object I shall call to get my input from. If previous_object is 0 then there is no input. When this is called all commands are initializes so I could choose to read all input now if I want to. This does command line parsing. If this goes wrong it sets notify_fail and returns 0. string output(); Called in the previous object to get output from that command (i.e. input to myself). The output is returned. This could be a string of any length. Zero length is possible! Several lines is also possible. When we don't have any more output to give return 0; meaning end of file. status exit_status(); Called in the previous object if we want to know the exit_status. Usually 0 or not existant meaning, all went well. void done(); Signals that the process is done, the object can selfdestruct.