diff --git a/eo/test/mpi/template-job.cpp b/eo/test/mpi/template-job.cpp new file mode 100644 index 00000000..3d25e973 --- /dev/null +++ b/eo/test/mpi/template-job.cpp @@ -0,0 +1,104 @@ +# include + +using namespace eo::mpi; + +/* + * This file is a template for a new eo::mpi::Job. You have everything that should be necessary to implement a new + * parallelized algorithm. + * + * Replace __TEMPLATE__ by the name of your algorithm (for instance: MultiStart, ParallelApply, etc.). + */ + +template< class EOT > +struct __TEMPLATE__Data +{ + +}; + +template< class EOT > +class SendTask__TEMPLATE__ : public SendTaskFunction< __TEMPLATE__Data< EOT > > +{ + public: + + using SendTaskFunction< __TEMPLATE__Data< EOT > >::_data; + + void operator()( int wrkRank ) + { + // TODO implement me + } +}; + +template< class EOT > +class HandleResponse__TEMPLATE__ : public HandleResponseFunction< __TEMPLATE__Data< EOT > > +{ + public: + + using HandleResponseFunction< __TEMPLATE__Data< EOT > >::_data; + + void operator()( int wrkRank ) + { + // TODO implement me + } +}; + +template< class EOT > +class ProcessTask__TEMPLATE__ : public ProcessTaskFunction< __TEMPLATE__Data< EOT > > +{ + public: + using ProcessTaskFunction< __TEMPLATE__Data >::_data; + + void operator()() + { + // TODO implement me + } +}; + +template< class EOT > +class IsFinished__TEMPLATE__ : public IsFinishedFunction< __TEMPLATE__Data< EOT > > +{ + public: + + using IsFinishedFunction< __TEMPLATE__Data< EOT > >::_data; + + bool operator()() + { + // TODO implement me + } +}; + +template< class EOT > +class __TEMPLATE__Store : public JobStore< __TEMPLATE__Data< EOT > > +{ + public: + + __TEMPLATE__Data* data() + { + // TODO implement me + return 0; + } +}; + +template< class EOT > +class __TEMPLATE__ : public MultiJob< __TEMPLATE__Data< EOT > > +{ + public: + + __TEMPLATE__( AssignmentAlgorithm & algo, + int masterRank, + __TEMPLATE__Store< EOT > & store ) : + MultiJob< __TEMPLATE__Data< EOT > >( algo, masterRank, store ) + { + // TODO implement me + } +}; + +/* +int main(int argc, char **argv) +{ + Node::init( argc, argv ); + + DynamicAssignmentAlgorithm assignmentAlgo; + __TEMPLATE__Store store; + __TEMPLATE__ job( assignmentAlgo, DEFAULT_MASTER, store ); +} +*/