blob: db1e04a2cf25248c84b4a7ff094bce70abfee4fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include "GateOr.h"
GateOr GateOr::instance(GateOr::type);
SignalLevel GateOr::level() {
if (this->inputs.size() < 1) throw CircuitException("Or-gate input size error");
SignalLevel new_level = LOW;
for (int i = 0; i < this->inputs.size(); i++){
SignalLevel l = this->inputs[i]->getLevel();
if (l == UNDEFINED) return UNDEFINED;
if (l == HIGH) new_level = HIGH;
}
return new_level;
}
GateOr::GateOr(const GateOr * prototype) : Node() { }
GateOr * GateOr::clone() const {
return new GateOr(this);
}
|