/*! \mainpage PQueueChannel test program \section into Introduction This application is a tool for testing the PQueueChannel class in pwlib. One use of this class would be as a buffer between a sound card (requiring 320 bytes of data every 20ms) and a codec (which generates 480 bytes of data every 30ms). \section arch Architecture The code contains one class, QueueProcess, which contains three threads of operation. The threads are \li generates data, and places it on the queue \li reads in data, grabbing bytes from the queue \li the core process, which evaluates the command line and launches the generate and read threads. The generate process starts running, and places several blocks of data on the queue. In this way, there is a buffer on the queue of data. The default parameters are such that the number of bytes (per second) placed on the queue is identical to the number of bytes (per second) removed from the queue. Consequently, the read process should never catch up on the write process, (which would empty the queue to zero bytes). \section parms Command line parameters The command line parameters are as you would expect from a pwlib application, \code -h \endcode report help message \code -v \endcode report current version \code -t \endcode specify log level, use more times for more detail \code -o \endcode logfile set the name of the log file. \section typical Sample command line With the command line \code queue -i 1000 -ttt -o log.txt \endcode \li the write process puts (every 20ms) 320 bytes on the queue \li the read process pulls (every 30ms) 480 bytes from the queue and this repeats 1000 times. A log file is written to disk describing when each read and write happens. */