MCPcopy Create free account
hub / github.com/devosoft/avida / Process

Method Process

avida-core/source/actions/PopulationActions.cc:104–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102 static const cString GetDescription() { return "Arguments: <string fname> [int cell_id=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0] [string trace_filename]"; }
103
104 void Process(cAvidaContext& ctx)
105 {
106 if (m_filename.GetSize() == 0) {
107 cerr << "error: no organism file specified" << endl;
108 m_world->GetDriver().Abort(AbortCondition::IO_ERROR);
109 }
110 GenomePtr genome;
111 cUserFeedback feedback;
112 genome = Util::LoadGenomeDetailFile(m_filename, m_world->GetWorkingDir(), m_world->GetHardwareManager(), feedback);
113 for (int i = 0; i < feedback.GetNumMessages(); i++) {
114 switch (feedback.GetMessageType(i)) {
115 case cUserFeedback::UF_ERROR:
116 cerr << "error: ";
117 cerr << feedback.GetMessage(i) << endl;
118 m_world->GetDriver().Abort(AbortCondition::GENERIC_ERROR);
119 break;
120 case cUserFeedback::UF_WARNING:
121 cerr << "warning: ";
122 cerr << feedback.GetMessage(i) << endl;
123 break;
124 default: break;
125 };
126 }
127 if (!genome) return;
128 m_world->GetPopulation().Inject(*genome, Systematics::Source(Systematics::DIVISION, "", true), ctx, m_cell_id, m_merit, m_lineage_label, m_neutral_metric, false);
129
130 if (m_trace_filename.GetSize()) {
131 HardwareTracerPtr tracer(new cHardwareStatusPrinter(m_world->GetNewWorld(), (const char*)m_trace_filename));
132 m_world->GetPopulation().GetCell(m_cell_id).GetOrganism()->GetHardware().SetTrace(tracer);
133 }
134 }
135};
136
137

Callers

nothing calls this directly

Calls 11

GetNumMessagesMethod · 0.80
InjectMethod · 0.80
GetNewWorldMethod · 0.80
SetTraceMethod · 0.80
GetHardwareMethod · 0.80
SourceClass · 0.50
GetSizeMethod · 0.45
AbortMethod · 0.45
GetMessageTypeMethod · 0.45
GetOrganismMethod · 0.45
GetCellMethod · 0.45

Tested by

no test coverage detected