[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