aboutsummaryrefslogtreecommitdiff
path: root/GateAnd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'GateAnd.cpp')
-rw-r--r--GateAnd.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/GateAnd.cpp b/GateAnd.cpp
new file mode 100644
index 0000000..dc65353
--- /dev/null
+++ b/GateAnd.cpp
@@ -0,0 +1,39 @@
+#include "GateAnd.h"
+
+GateAnd GateAnd::instance(GateAnd::type);
+
+GateAnd::GateAnd(const char * type) : Node(type) { }
+
+// Concrete Nodes:
+void GateAnd::compare() {
+ SignalLevel new_out = HIGH;
+// TODO fix segfault somewhere below
+// for (int i = 0; i < this->inputs.size(); i++){
+// switch (this->inputs[i]->getLevel()){
+// case LOW:
+// new_out = LOW;
+// break;
+// case HIGH:
+// continue;
+// break;
+// case UNDEFINED:
+// default:
+// new_out = UNDEFINED;
+// exit;
+// break;
+// }
+// }
+
+// if (this->output->getLevel() == new_out){
+// /* do nothing */
+// } else {
+// this->output->setLevel(new_out);
+// }
+}
+
+GateAnd::GateAnd(const GateAnd * prototype) : Node() { }
+
+GateAnd * GateAnd::clone() const {
+ return new GateAnd(this);
+}
+