49 #ifndef ___C_ENVIROMENT_H__
50 #define ___C_ENVIROMENT_H__
73 class cInitEnviroment;
74 class cEndConditionCheck;
76 class cIndividualSelection;
77 class cMaximumReached;
78 class cSelectIndividualToDelete;
79 class cOperatorFitnessAlgorithm;
85 class cIndividualInformation;
90 class cOperationInformation;
107 virtual void individualAdded(
const cIndividual * pIndividual ) = 0;
114 virtual void individualRemoved(
const cIndividual * pIndividual ) = 0;
139 static HANDLE pThreadEnviroment;
449 virtual bool isRunning()
const;
455 unsigned long long getAlgorithmIdentifier();
471 list<const cIndividualInfo*> getIndividualInfos(
short iLive = 0 )
const;
502 const cIndividualInfo * getBestIndividualInfo(
unsigned long lNumber = 1,
503 short iLive = 1 )
const;
537 cIndividual * getBestIndividual(
unsigned long lNumber = 1 )
const;
558 bool insertIndividual(
const cIndividual * pInIndividual,
559 const cOperation * pProducerOperation = NULL );
575 unsigned long getNumberOfIndividuals(
short iLive = 1 );
584 unsigned int getNumberOfRunningOperations();
590 unsigned long getNumberOfCalledOperations();
596 double getCpuRunTime()
const;
602 time_t getLastStartTime()
const;
608 time_t getFirstStartTime()
const;
701 void operationStatusChange(
cOperation * pOperation,
bool isRunning );
725 static void * stopOperation(
void * inputArg );
731 void deleteNotRunningOperations();
742 static void * runTread(
void * inputArg );
750 static void pthread_mutex_lock( HANDLE * pMutexHandle );
757 static void pthread_mutex_unlock( HANDLE * pMutexHandle );
763 static void shortSleep();
770 #endif //___C_ENVIROMENT_H__