Files
uni/ws2019/ipi/uebungen/cpp_headers/WireImp.cc
T

40 lines
748 B
C++

Wire::Wire ()
{
// Initialisiere mit unbekanntem Zustand
q = unknown;
}
inline State Wire::GetState ()
{
return q;
}
void Wire::ChangeState (int t, State s)
{
Sim.StoreWireEvent(*this,t,s);
}
void Wire::Action (State s)
{
if (s==q) return; // nix zu tun
q = s; // neuer Zustand
c->ChangeInput(q,pin); // Nachricht an angeschlossen Baustein
}
void Wire::ConnectInput (Circuit& cir, int i)
{
// Merke NICHT an wen ich angeschlossen bin
// aber Baustein muss mich kennen.
cir.ConnectOutput(*this,i);
}
void Wire::ConnectOutput (Circuit& cir, int i)
{
// Merke Baustein, an den der Ausgang angeschlossen ist
c = ○
pin = i;
// Rueckverbindung Baustein an Draht
c->ConnectInput(*this,pin);
}