Project 4

In this project you need to continue working on the shell program. This time you need to implement the features:

Some details of the implementation. You need to create an abstract class TTask that keeps all information about a task (process or thread) currently running by the shell program, some common methods like Print(), and virtual method Kill(). The classes TProcess and TThread should be the derived classes from the class TTask. In this classes you need to implement the method Kill.
Please also implement class TParser that parses a given string returning; that is, does the same job as the old function ParseCommandLine. However, implementing this as a class, you may get rid of passing the parameters back and forth between the functions (I mean ParseCommandLine and NexeWord) and also create a convenient interface to the result of the parsing.
Please also write a function StartTask that takes all needed information to start a task (either a process or a thread) and creates an instance of the corresponding object. This function should return a pointer to the newly create element of the TTask object. Do not forget to do all redirection for processes and threads.

Due day is Sunday, April 27, 2003 at 11:59pm.