peo modified
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@927 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
ae13202c0a
commit
240685493b
15 changed files with 103 additions and 244 deletions
|
|
@ -42,7 +42,7 @@
|
|||
#include "messaging.h"
|
||||
|
||||
|
||||
template <class EOT> void pack (const eoPop <EOT> & __pop)
|
||||
template <class EOT> void pack (eoPop <EOT> & __pop)
|
||||
{
|
||||
|
||||
pack ((unsigned) __pop.size ());
|
||||
|
|
@ -61,4 +61,23 @@ template <class EOT> void unpack (eoPop <EOT> & __pop)
|
|||
unpack (__pop [i]);
|
||||
}
|
||||
|
||||
template <class MOEOT> void pack (moeoArchive < MOEOT > & __pop)
|
||||
{
|
||||
|
||||
pack ((unsigned) __pop.size ());
|
||||
for (unsigned i = 0; i < __pop.size (); i ++)
|
||||
pack (__pop [i]);
|
||||
}
|
||||
|
||||
template <class MOEOT> void unpack (moeoArchive < MOEOT > & __pop)
|
||||
{
|
||||
|
||||
unsigned n;
|
||||
|
||||
unpack (n);
|
||||
__pop.resize (n);
|
||||
for (unsigned i = 0; i < n; i ++)
|
||||
unpack (__pop [i]);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ template< class TYPESELECT , class TYPEREPLACE> void peoAsyncIslandMig< TYPESELE
|
|||
{
|
||||
lock ();
|
||||
::pack( coop_em.front()->getKey() );
|
||||
em.front().pack();
|
||||
::pack(em.front());
|
||||
coop_em.pop();
|
||||
em.pop();
|
||||
unlock();
|
||||
|
|
@ -140,7 +140,7 @@ template< class TYPESELECT, class TYPEREPLACE> void peoAsyncIslandMig< TYPESELE
|
|||
{
|
||||
lock ();
|
||||
TYPEREPLACE mig;
|
||||
mig.unpack();
|
||||
::unpack(mig);
|
||||
imm.push( mig );
|
||||
unlock();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,59 +40,6 @@
|
|||
#include "core/eoVector_mesg.h"
|
||||
#include "core/messaging.h"
|
||||
|
||||
/**************************************************************************************/
|
||||
/************************** DEFINE A DATA ******************************************/
|
||||
/**************************************************************************************/
|
||||
|
||||
//! @class peoData
|
||||
//! @brief Abstract class for a data exchanged by migration
|
||||
//! @version 1.0
|
||||
//! @date january 2008
|
||||
class peoData
|
||||
{
|
||||
public:
|
||||
|
||||
//! @brief Function realizing packages
|
||||
virtual void pack ()
|
||||
{}
|
||||
|
||||
//! @brief Function reconstituting packages
|
||||
virtual void unpack ()
|
||||
{}
|
||||
|
||||
};
|
||||
|
||||
//! @class peoPop
|
||||
//! @brief Specific class for a migration of a population
|
||||
//! @see peoData eoPop
|
||||
//! @version 1.0
|
||||
//! @date january 2008
|
||||
template<class EOT>
|
||||
class peoPop: public eoPop<EOT>, public peoData
|
||||
{
|
||||
public:
|
||||
|
||||
//! @brief Function realizing packages
|
||||
virtual void pack ()
|
||||
{
|
||||
::pack ((unsigned) this->size ());
|
||||
for (unsigned i = 0; i < this->size (); i ++)
|
||||
::pack ((*this)[i]);
|
||||
}
|
||||
|
||||
//! @brief Function reconstituting packages
|
||||
virtual void unpack ()
|
||||
{
|
||||
unsigned n;
|
||||
::unpack (n);
|
||||
this->resize (n);
|
||||
for (unsigned i = 0; i < n; i ++)
|
||||
::unpack ((*this)[i]);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**************************************************************************************/
|
||||
/************************** DEFINE A CONTINUATOR ***********************************/
|
||||
/**************************************************************************************/
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ template< class TYPESELECT, class TYPEREPLACE > peoSyncIslandMig< TYPESELECT,TYP
|
|||
template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT, TYPEREPLACE > :: pack()
|
||||
{
|
||||
::pack( coop_em.front()->getKey() );
|
||||
em.front().pack();
|
||||
::pack(em.front());
|
||||
coop_em.pop();
|
||||
em.pop();
|
||||
}
|
||||
|
|
@ -161,7 +161,7 @@ template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELEC
|
|||
template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT, TYPEREPLACE > :: unpack()
|
||||
{
|
||||
TYPEREPLACE mig;
|
||||
mig.unpack();
|
||||
::unpack(mig);
|
||||
imm.push( mig );
|
||||
explicitPassive = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue