Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

CProducer.hpp

Go to the documentation of this file.
00001 
00002 #ifndef CProducer_h
00003 #define CProducer_h 1
00004 
00005 #include "jic/exc/CCreateException.hpp"
00006 
00007 // CFnProducer
00008 #include "jic/task/CFnProducer.hpp"
00009 // CChainTask
00010 #include "jic/task/CChainTask.hpp"
00011 
00012 namespace TASK {
00013 
00014   //    Produce mensajes (solo hace puts).
00015   //    El trabajo lo realizará un objeto función.
00016 
00017   template <class MessageType>
00018   class CProducer : public CChainTask<MessageType>  
00019   {
00020 
00021     public:
00022         CProducer();
00023 
00024         //      El task no libera el objeto funcion, solo se queda con
00025         //      su "referencia".
00026         //      Es necesario pasarle un controlador.
00027         CProducer (const CFnProducer<MessageType> *fnProducer, CTasksChainControler<MessageType> *pTaskControler, std::string strName = "Productor", int nThreads = 1) throw (CCreateException);
00028 
00029         ~CProducer();
00030 
00031       // Additional Public Declarations
00032 
00033     protected:
00034 
00035         virtual void specificStep () /*throw (CTaskException)*/;
00036 
00037       // Additional Protected Declarations
00038 
00039     private:
00040         CProducer(const CProducer< MessageType > &right);
00041 
00042         CProducer< MessageType > & operator=(const CProducer< MessageType > &right);
00043 
00044       // Additional Private Declarations
00045 
00046     private: 
00047       // Data Members for Class Attributes
00048 
00049         CFnProducer<MessageType> *m_fnProducer;
00050 
00051       // Data Members for Associations
00052 
00053       // Additional Implementation Declarations
00054 
00055   };
00056 
00057   // Parameterized Class TASK::CProducer 
00058 
00059 } // namespace TASK
00060 
00061 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00062 #include "CProducer.cpp"
00063 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00064 
00065 #endif

Generated on Wed Mar 5 21:31:47 2003 for JIC by doxygen1.3-rc3