+Accumulator *Engine::createAccumulator(const std::string &name) throw(anna::RuntimeException) {
+ Accumulator *result = getAccumulator(name);
+
+ if (result)
+ throw anna::RuntimeException(anna::functions::asString("Cannot register another accumulator with the same name: %s", name.c_str()), ANNA_FILE_LOCATION);
+
+ result = new Accumulator(name);
+ a_accumulators[name] = result;
+ return result;
+}
+
+Accumulator* Engine::getAccumulator(const std::string &name) throw() {
+ Accumulator *result = NULL;
+
+ _accumulator_map_nc_it it = a_accumulators.find(name);
+ if (it != a_accumulators.end())
+ result = it->second;