Files
Upsilon/apps/shared/function_store.cpp
Émilie Feral 3164939c9d [apps/shared] Move function store class to shared/ to be used by
sequence

Change-Id: I89380d59e3450e9c5af4bf05f520ed1a5205ba29
2017-02-13 17:15:06 +01:00

66 lines
1.4 KiB
C++

#include "function_store.h"
#include <assert.h>
namespace Shared {
FunctionStore::FunctionStore() :
m_numberOfFunctions(0)
{
}
Function * FunctionStore::activeFunctionAtIndex(int i) {
assert(i>=0 && i<m_numberOfFunctions);
int index = 0;
for (int k = 0; k < m_numberOfFunctions; k++) {
if (functionAtIndex(k)->isActive() && functionAtIndex(k)->layout() != nullptr) {
if (i == index) {
return functionAtIndex(k);
}
index++;
}
}
assert(false);
return nullptr;
}
Function * FunctionStore::definedFunctionAtIndex(int i) {
assert(i>=0 && i<m_numberOfFunctions);
int index = 0;
for (int k = 0; k < m_numberOfFunctions; k++) {
if (functionAtIndex(k)->layout() != nullptr) {
if (i == index) {
return functionAtIndex(k);
}
index++;
}
}
assert(false);
return nullptr;
}
int FunctionStore::numberOfFunctions() {
return m_numberOfFunctions;
}
int FunctionStore::numberOfActiveFunctions() {
int result = 0;
for (int i = 0; i < m_numberOfFunctions; i++) {
if (functionAtIndex(i)->layout() != nullptr && functionAtIndex(i)->isActive()) {
result++;
}
}
return result;
}
int FunctionStore::numberOfDefinedFunctions() {
int result = 0;
for (int i = 0; i < m_numberOfFunctions; i++) {
if (functionAtIndex(i)->layout() != nullptr) {
result++;
}
}
return result;
}
}