#ifndef SHARED_FUNCTION_STORE_H #define SHARED_FUNCTION_STORE_H #include "function.h" #include "expression_model_store.h" #include namespace Shared { /* FunctionStore storse functions and gives them a color. */ class FunctionStore : public ExpressionModelStore { public: FunctionStore() : ExpressionModelStore() {} uint32_t storeChecksum(); // An active function must be defined to be counted int numberOfActiveFunctions() const { return numberOfModelsSatisfyingTest([](ExpressionModelHandle * m) { return m->isDefined() && static_cast(m)->isActive(); }); } Ion::Storage::Record activeRecordAtIndex(int i) const { return recordStatifyingTestAtIndex(i, [](ExpressionModelHandle * m) { return m->isDefined() && static_cast(m)->isActive(); }); } ExpiringPointer modelForRecord(Ion::Storage::Record record) const { return ExpiringPointer(static_cast(privateModelForRecord(record))); } }; } #endif