Changeset 3855 in Sophya for trunk/SophyaLib/SysTools/parlex.h


Ignore:
Timestamp:
Aug 12, 2010, 1:02:24 AM (15 years ago)
Author:
ansari
Message:

Ajout attribut nombre de threads ds ParallelTaskInterface, Reza 12/08/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SysTools/parlex.h

    r3718 r3855  
    55
    66// Classes pour execution de taches paralleles en utilisant les threads
    7 //    R. Ansari       UPS+LAL IN2P3/CNRS  2005
     7//    R. Ansari       UPS+LAL IN2P3/CNRS  2009-2010
    88
    99#include "zthread.h"
     
    1717//  s'executer en parallele
    1818//--------------------------------------------------------------------
    19 /*!
    20   \class ParallelTaskInterface
    21   \ingroup SysTools
    22   \brief Interface definition for parallel task object.
    23 
    24   The pure virtual method execute() should be redefined by the classes
    25   inheriting from ParallelTaskInterface
    26 */ 
    2719class ParallelTaskInterface {
    2820public:
    29   explicit       ParallelTaskInterface()  { }
    30   virtual        ~ParallelTaskInterface() { }
     21  explicit       ParallelTaskInterface();
     22  virtual        ~ParallelTaskInterface();
    3123  /*! This method should perform the actual computation. The parameter tid
    3224    is used by the ParallelExecutor class to identify the thread calling the method
    3325  */
    3426  virtual int    execute(int tid) = 0;
     27  //! Define the number of parallel threads running to perform the task (set by ParallelExecutor object)
     28  virtual void   setNbParallelThreads(int nbparthr);
     29  //! Return the number of parallel threads running to perform the task
     30  inline  int    getNbParallelThreads() { return nbparallel_; }
     31protected:
     32  int nbparallel_;   // total number of parallel threads which will perform the job
    3533};
    3634
    3735//---- Implementation de ParallelTaskInterface pour l'execution des fonctions
    38 typedef int (* ParalExFunction) (int);
     36//! Prototype for functions which executed by ParallelTaskFunction objects
     37typedef int (* ParalExFunction) (int,int);
    3938//----
    40 class ParallelTaskFunction {
     39  class ParallelTaskFunction : public ParallelTaskInterface {
    4140public:
    4241  explicit       ParallelTaskFunction(ParalExFunction f);
     
    116115  //! Return RC for the ParalleTask.execute() of thread i
    117116  inline  int     getRC(size_t i) { return vrc_[i]; }
    118   //! Return the execption condition for the ParalleTask.execute() of thread i
     117  //! Return the exception condition for the ParalleTask.execute() of thread i
    119118  inline  bool    IfException(size_t i, string& msg)  { return vpext_[i]->IfException(msg); }
    120119
Note: See TracChangeset for help on using the changeset viewer.