MFMv2.0.10
Movable Feast Machine Simulator 2.0.10
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Protected Types | Protected Member Functions
MFM::AbstractHeadlessDriver< GC > Class Template Reference

#include <AbstractHeadlessDriver.h>

Inheritance diagram for MFM::AbstractHeadlessDriver< GC >:
MFM::AbstractDriver< GC >

Protected Types

typedef Super::OurGrid OurGrid
 
typedef Super::CC CC
 
- Protected Types inherited from MFM::AbstractDriver< GC >
enum  { W = GC::GRID_WIDTH }
 
enum  { H = GC::GRID_HEIGHT }
 
enum  { R = P::EVENT_WINDOW_RADIUS }
 
typedef GC::CORE_CONFIG CC
 
typedef CC::PARAM_CONFIG P
 
typedef CC::ATOM_TYPE T
 
typedef ElementRegistry< CCOurElementRegistry
 
typedef StdElements< CCOurStdElements
 
typedef Grid< GC > OurGrid
 
typedef ElementTable< CCOurElementTable
 

Protected Member Functions

virtual void AddDriverArguments ()
 
virtual void OnceOnly (VArguments &args)
 
virtual void PostUpdate ()
 
- Protected Member Functions inherited from MFM::AbstractDriver< GC >
void NeedElement (Element< CC > *element)
 
void WriteTimeBasedData (FileByteSink &fp, bool exists)
 
void SetIgnoreThreadingProblems (bool value)
 
void WriteTimeBasedData ()
 
void UpdateGrid (OurGrid &grid)
 
void DecrementAEPSPerFrame (u32 amount)
 
void IncrementAEPSPerFrame (u32 amount)
 
virtual void PostReinit (VArguments &args)
 
virtual void ReinitEden ()=0
 
void ReinitPhysics ()
 
virtual void PostReinitPhysics ()
 
virtual void DefineNeededElements ()=0
 
virtual void RunHelper ()
 
void SetAEPSPerEpoch (u32 aeps)
 
u32 GetAEPSPerEpoch () const
 

Additional Inherited Members

- Public Member Functions inherited from MFM::AbstractDriver< GC >
void AutosaveGrid (u32 epochs)
 
void SaveGrid (const char *filename)
 
void LoadFromConfigurationPath ()
 
const char * GetSimDirPathTemporary (const char *format,...) const
 
void ReloadCurrentConfigurationPath ()
 
virtual void DoEpochEvents (OurGrid &grid, u32 epochs, u32 epochAEPS)
 
void Init (u32 argc, const char **argv)
 
VArgumentsGetVArguments ()
 
void RegisterArgument (const char *description, const char *filter, VArgumentHandleValue func, void *handlerArg, bool runFunc)
 
void RegisterSection (const char *sectionLabel)
 
virtual void ReinitUs ()
 
u32 GetHaltAfterAEPS ()
 
double GetAEPS ()
 
double GetAER ()
 
void SetAER (double aer)
 
double GetRecentAER ()
 
void SetRecentAER (double aer)
 
u32 GetAEPSPerFrame ()
 
double GetOverheadPercent ()
 
OurGridGetGrid ()
 
void SetSeed (u32 seed)
 
void Reinit ()
 
void Run ()
 
- Protected Attributes inherited from MFM::AbstractDriver< GC >
Element< CC > * m_neededElements [MAX_NEEDED_ELEMENTS]
 
u32 m_neededElementCount
 
- Static Protected Attributes inherited from MFM::AbstractDriver< GC >
static const u32 EVENT_WINDOW_RADIUS = R
 
static const u32 GRID_WIDTH = W
 
static const u32 GRID_HEIGHT = H
 

Detailed Description

template<class GC>
class MFM::AbstractHeadlessDriver< GC >

A class representing a headless driver, i.e. a driver which works only on the command line without input.

Member Function Documentation

template<class GC >
virtual void MFM::AbstractHeadlessDriver< GC >::AddDriverArguments ( )
inlineprotectedvirtual

Adds any command-line arguments desired, by calling #RegisterArgument with appropriate arguments. Note: (Sub-)subclasses of AbstractDriver should always override this method, even if they do not wish to add command-line arguments, and begin their overriding method with Super::AddDriverArguments(). Such chaining lets all levels of abstraction define command-line arguments, with the most abstract going first.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC >
virtual void MFM::AbstractHeadlessDriver< GC >::OnceOnly ( VArguments args)
inlineprotectedvirtual

To be run during first initialization, only once. This runs after all standard argument parsing and is available to extend that behavior. Any overrides of this method should be certain to call Super::OnceOnly (probably at the beginning, but in any case, sometime) during their execution, so more abstract levels can do any processing they need to.

Parameters
argsThe VArguments , which should have been gotten from the command line. These allow this method to configure itself properly from the command line arguments.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC >
virtual void MFM::AbstractHeadlessDriver< GC >::PostUpdate ( )
inlineprotectedvirtual

To be run at the end of a frame update.

Reimplemented from MFM::AbstractDriver< GC >.


The documentation for this class was generated from the following file: