[cig-commits] commit: Rejigged EscapedRoutine component.
Mercurial
hg at geodynamics.org
Mon Feb 1 15:31:07 PST 2010
changeset: 341:608b2fd79d49
branch: pcu_rejig
parent: 338:7793c0c646c9
user: JericoRevote
date: Tue Dec 01 13:31:48 2009 +1100
files: PopulationControl/src/EscapedRoutine.c PopulationControl/src/EscapedRoutine.h
description:
Rejigged EscapedRoutine component.
diff -r 7793c0c646c9 -r 608b2fd79d49 PopulationControl/src/EscapedRoutine.c
--- a/PopulationControl/src/EscapedRoutine.c Mon Nov 30 15:47:43 2009 +1100
+++ b/PopulationControl/src/EscapedRoutine.c Tue Dec 01 13:31:48 2009 +1100
@@ -103,12 +103,15 @@ void* _EscapedRoutine_DefaultNew( Name n
}
void _EscapedRoutine_Init(
- EscapedRoutine* self,
- Dimension_Index dim,
- Particle_Index particlesToRemoveDelta )
+ void* escapedRoutine,
+ DomainContext* context,
+ Dimension_Index dim,
+ Particle_Index particlesToRemoveDelta )
{
- self->isConstructed = True;
- self->dim = dim;
+ EscapedRoutine* self = (EscapedRoutine*)escapedRoutine;
+
+ self->context = context;
+ self->dim = dim;
self->particlesToRemoveDelta = particlesToRemoveDelta;
self->debug = Journal_Register( Debug_Type, EscapedRoutine_Type ); /* TODO Register Child */
@@ -123,12 +126,9 @@ void _EscapedRoutine_Delete( void* escap
void _EscapedRoutine_Delete( void* escapedRoutine ) {
EscapedRoutine* self = (EscapedRoutine*)escapedRoutine;
- Memory_Free( self->particlesToRemoveList );
-
/* Delete parent */
_Stg_Component_Delete( self );
}
-
void _EscapedRoutine_Print( void* escapedRoutine, Stream* stream ) {
EscapedRoutine* self = (EscapedRoutine*)escapedRoutine;
@@ -136,7 +136,6 @@ void _EscapedRoutine_Print( void* escape
/* Print parent */
_Stg_Component_Print( self, stream );
}
-
void* _EscapedRoutine_Copy( void* escapedRoutine, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
EscapedRoutine* self = (EscapedRoutine*)escapedRoutine;
@@ -148,37 +147,41 @@ void* _EscapedRoutine_Copy( void* escape
}
void _EscapedRoutine_AssignFromXML( void* escapedRoutine, Stg_ComponentFactory* cf, void* data ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
- Dimension_Index dim;
- Particle_Index particlesToRemoveDelta;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ Dimension_Index dim;
+ Particle_Index particlesToRemoveDelta;
+ DomainContext* context;
- self->context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", DomainContext, False, data );
- if( !self->context )
- self->context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
+ context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", DomainContext, False, data );
+ if( !context )
+ context = Stg_ComponentFactory_ConstructByName( cf, "context", DomainContext, True, data );
dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
particlesToRemoveDelta = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "particlesToRemoveDelta", 20 );
- _EscapedRoutine_Init( self, dim, particlesToRemoveDelta );
+ _EscapedRoutine_Init( self, context, dim, particlesToRemoveDelta );
}
void _EscapedRoutine_Build( void* escapedRoutine, void* data ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
self->particlesToRemoveAlloced = self->particlesToRemoveDelta * 10;
- self->particlesToRemoveList = Memory_Alloc_Array( unsigned, self->particlesToRemoveAlloced,
- "particlesToRemoveList" );
+ self->particlesToRemoveList = Memory_Alloc_Array( unsigned, self->particlesToRemoveAlloced, "particlesToRemoveList" );
}
void _EscapedRoutine_Initialise( void* escapedRoutine, void* data ) {
}
+
void _EscapedRoutine_Execute( void* escapedRoutine, void* data ) {
- Swarm* swarm = Stg_CheckType( data, Swarm );
+ Swarm* swarm = Stg_CheckType( data, Swarm );
EscapedRoutine_RemoveFromSwarm( escapedRoutine, swarm );
}
void _EscapedRoutine_Destroy( void* escapedRoutine, void* data ) {
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+
+ Memory_Free( self->particlesToRemoveList );
}
/*--------------------------------------------------------------------------------------------------------------------------
@@ -186,15 +189,14 @@ void _EscapedRoutine_Destroy( void* esca
*/
void EscapedRoutine_Select( void* escapedRoutine, void* _swarm ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
self->_select( self, _swarm );
}
-
void _EscapedRoutine_Select( void* escapedRoutine, void* _swarm ) {
EscapedRoutine* self = (EscapedRoutine*)escapedRoutine;
- Swarm* swarm = (Swarm*)_swarm;
+ Swarm* swarm = (Swarm*)_swarm;
unsigned p_i;
assert( self );
@@ -212,8 +214,8 @@ void _EscapedRoutine_Select( void* escap
void EscapedRoutine_RemoveFromSwarm( void* escapedRoutine, void* _swarm ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
- Swarm* swarm = (Swarm*) _swarm;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ Swarm* swarm = (Swarm*) _swarm;
EscapedRoutine_InitialiseParticleList( self );
@@ -225,24 +227,22 @@ void EscapedRoutine_RemoveFromSwarm( voi
}
void EscapedRoutine_InitialiseParticleList( void* escapedRoutine ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
self->particlesToRemoveCount = 0;
memset( self->particlesToRemoveList, 0, sizeof(unsigned) * self->particlesToRemoveAlloced );
}
void EscapedRoutine_SetParticleToRemove( void* escapedRoutine, Swarm* swarm, Particle_Index lParticle_I ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
/* Check memory */
if ( self->particlesToRemoveCount >= self->particlesToRemoveAlloced ) {
self->particlesToRemoveAlloced += self->particlesToRemoveDelta;
- self->particlesToRemoveList =
- Memory_Realloc_Array( self->particlesToRemoveList, unsigned, self->particlesToRemoveAlloced );
+ self->particlesToRemoveList = Memory_Realloc_Array( self->particlesToRemoveList, unsigned, self->particlesToRemoveAlloced );
}
self->particlesToRemoveList[ self->particlesToRemoveCount ] = lParticle_I;
-
self->particlesToRemoveCount++;
}
@@ -254,12 +254,11 @@ void EscapedRoutine_SortParticleList( vo
void EscapedRoutine_SortParticleList( void* escapedRoutine ) {
EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
- qsort( self->particlesToRemoveList, self->particlesToRemoveCount,
- sizeof(unsigned), _EscapedRoutine_CompareParticles );
+ qsort( self->particlesToRemoveList, self->particlesToRemoveCount, sizeof(unsigned), _EscapedRoutine_CompareParticles );
}
void EscapedRoutine_RemoveParticles( void* escapedRoutine, Swarm* swarm ) {
- EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
+ EscapedRoutine* self = (EscapedRoutine*) escapedRoutine;
Index array_I;
StandardParticle* particleToRemove;
Particle_Index particleToRemove_I;
@@ -294,8 +293,8 @@ void EscapedRoutine_RemoveParticles( voi
#endif
for ( array_I = self->particlesToRemoveCount - 1 ; array_I < self->particlesToRemoveCount ; array_I-- ) {
- particleToRemove_I = self->particlesToRemoveList[ array_I ];
- particleToRemove = Swarm_ParticleAt( swarm, particleToRemove_I );
+ particleToRemove_I = self->particlesToRemoveList[ array_I ];
+ particleToRemove = Swarm_ParticleAt( swarm, particleToRemove_I );
Journal_DPrintfL( self->debug, 2, "Removing particle %u\n", particleToRemove_I );
diff -r 7793c0c646c9 -r 608b2fd79d49 PopulationControl/src/EscapedRoutine.h
--- a/PopulationControl/src/EscapedRoutine.h Mon Nov 30 15:47:43 2009 +1100
+++ b/PopulationControl/src/EscapedRoutine.h Tue Dec 01 13:31:48 2009 +1100
@@ -45,7 +45,7 @@
** Assumptions:
**
** Comments:
-**
+*
** $Id: EscapedRoutine.h 189 2005-10-20 00:39:29Z RobertTurnbull $
**
**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@@ -62,17 +62,17 @@
#define __EscapedRoutine \
/* General info */ \
__Stg_Component \
- DomainContext* context; \
+ DomainContext* context; \
/* Virtual Info */\
- EscapedRoutine_SelectFunction* _select; \
+ EscapedRoutine_SelectFunction* _select; \
/* Other Info */\
- Stream* debug; \
- Dimension_Index dim; \
+ Stream* debug; \
+ Dimension_Index dim; \
/* Removal Info */ \
- Particle_Index particlesToRemoveCount; \
- Particle_Index particlesToRemoveAlloced; \
- Particle_Index particlesToRemoveDelta; \
- unsigned* particlesToRemoveList;
+ Particle_Index particlesToRemoveCount; \
+ Particle_Index particlesToRemoveAlloced; \
+ Particle_Index particlesToRemoveDelta; \
+ unsigned* particlesToRemoveList;
struct EscapedRoutine { __EscapedRoutine };
@@ -95,35 +95,52 @@
EscapedRoutine* _EscapedRoutine_New( ESCAPEDROUTINE_DEFARGS );
void* _EscapedRoutine_DefaultNew( Name name );
+
+ void _EscapedRoutine_Init(
+ void* escapedRoutine,
+ DomainContext* context,
+ Dimension_Index dim,
+ Particle_Index particlesToRemoveDelta );
/* Stg_Class_Delete EscapedRoutine implementation */
void _EscapedRoutine_Delete( void* escapedRoutine );
+
void _EscapedRoutine_Print( void* escapedRoutine, Stream* stream );
+
#define EscapedRoutine_Copy( self ) \
(EscapedRoutine*) Stg_Class_Copy( self, NULL, False, NULL, NULL )
#define EscapedRoutine_DeepCopy( self ) \
(EscapedRoutine*) Stg_Class_Copy( self, NULL, True, NULL, NULL )
+
void* _EscapedRoutine_Copy( void* escapedRoutine, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
- void _EscapedRoutine_AssignFromXML( void* shape, Stg_ComponentFactory* cf, void* data ) ;
- void _EscapedRoutine_Build( void* escapedRoutine, void* data ) ;
- void _EscapedRoutine_Initialise( void* escapedRoutine, void* data ) ;
+ void _EscapedRoutine_AssignFromXML( void* shape, Stg_ComponentFactory* cf, void* data );
+
+ void _EscapedRoutine_Build( void* escapedRoutine, void* data );
+
+ void _EscapedRoutine_Initialise( void* escapedRoutine, void* data );
+
void _EscapedRoutine_Execute( void* escapedRoutine, void* data );
- void _EscapedRoutine_Destroy( void* escapedRoutine, void* data ) ;
+
+ void _EscapedRoutine_Destroy( void* escapedRoutine, void* data );
/*---------------------------------------------------------------------------------------------------------------------
** Public member functions
*/
- void EscapedRoutine_Select( void* escapedRoutine, void* _swarm ) ;
+ void EscapedRoutine_Select( void* escapedRoutine, void* _swarm );
+
void _EscapedRoutine_Select( void* escapedRoutine, void* _swarm );
- void EscapedRoutine_RemoveFromSwarm( void* escapedRoutine, void* _swarm ) ;
- void EscapedRoutine_InitialiseParticleList( void* escapedRoutine ) ;
- void EscapedRoutine_SetParticleToRemove( void* escapedRoutine, Swarm* swarm, Particle_Index lParticle_I ) ;
+ void EscapedRoutine_RemoveFromSwarm( void* escapedRoutine, void* _swarm );
- void EscapedRoutine_SortParticleList( void* escapedRoutine ) ;
- void EscapedRoutine_RemoveParticles( void* escapedRoutine, Swarm* swarm ) ;
+ void EscapedRoutine_InitialiseParticleList( void* escapedRoutine );
+
+ void EscapedRoutine_SetParticleToRemove( void* escapedRoutine, Swarm* swarm, Particle_Index lParticle_I );
+
+ void EscapedRoutine_SortParticleList( void* escapedRoutine );
+
+ void EscapedRoutine_RemoveParticles( void* escapedRoutine, Swarm* swarm );
#endif
More information about the CIG-COMMITS
mailing list