00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00022 #ifndef __PRODUCER_H__
00023 #define __PRODUCER_H__
00024
00025 #include "globals.h"
00026 #include "queue.h"
00027
00034 class CProducer : public CBase
00035 {
00036 public:
00037 static CProducer* NewL(CConsoleBase* aConsole,CQueue* aTokens);
00038 void ConstructL(CConsoleBase* aConsole,CQueue* aTokens);
00039 static TInt ProdThreadFunc(TAny* aPtr);
00040 void ResumeProd();
00041 void Display();
00042 void Produce();
00043 ~CProducer();
00044 static TInt InsertFunction(TAny* aPtr);
00045 private:
00046 CProducer();
00047 private:
00053 CQueue* iQueue;
00058 RThread iProdThread;
00064 CPeriodic* iPeriodicProd;
00068 CConsoleBase* iConsole;
00069 };
00070
00071 #endif