From 9d0f5beb74f77932741cbb418816fcaee47317fb Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Mon, 10 Apr 2017 19:38:54 -0400 Subject: [PATCH] add some functionality to andGate class --- src/andGate.cpp | 11 +++++++++++ src/andGate.h | 5 +++-- src/event.cpp | 1 + src/radec.cpp | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/andGate.cpp b/src/andGate.cpp index e69de29..9984fea 100644 --- a/src/andGate.cpp +++ b/src/andGate.cpp @@ -0,0 +1,11 @@ +#include "andGate.h" + +using namespace std; + +andGate::andGate(wire* wire1 = nullptr, wire* wire2 = nullptr, + wire* wire3 = nullptr) : in1(wire1), in2(wire2), out(wire3) {} + +int andGate::evaluate(int evTime) { + int bool1 = in1 -> getValue(); + return ( in1 -> getValue(evTime) ) && ( in2 -> getValue(evTime) ); +} diff --git a/src/andGate.h b/src/andGate.h index f2ab0fd..384360d 100644 --- a/src/andGate.h +++ b/src/andGate.h @@ -3,8 +3,9 @@ class andGate : public gate { public: - andGate(wire* wire1 = nullptr, wire* wire2 = nullptr, wire* wire3 = nullptr); - int evaluate(); + andGate(wire* wire1 = nullptr, wire* wire2 = nullptr, + wire* wire3 = nullptr); + int evaluate(int evTime); }; #endif // !AND diff --git a/src/event.cpp b/src/event.cpp index d5a29a5..065c71c 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -5,6 +5,7 @@ using namespace std; event::event(event, value, setTime, wire) : evNum(event), evValue(value), evTime(setTime), wireNum(wire) {} +// operator overload so that priority_queue will function correctly bool event::operator<(const event &e1, const event &e2) { if(e1.evTime == e2.evTime) { return e1.evNum > e2.evNum; diff --git a/src/radec.cpp b/src/radec.cpp index 465e11b..47930d1 100644 --- a/src/radec.cpp +++ b/src/radec.cpp @@ -23,7 +23,7 @@ int main() { if(parseSuccess) { // 2. Parse the vector file to initialize the simulation Queue with initial // Wire state (i.e., value) changes - queue e; + priority_queue< e; parseSuccess = e.parseVector(fileName); // 3. Simulate the circuit using Event-driven control