NanoTekSpice
DigitalElectronics
C4069.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2019
3 ** OOP_NanoTekSpice
4 ** File description:
5 ** C4069 class
6 */
7 
15 #ifndef C4069_HPP_
16  #define C4069_HPP_
17 
18 #include "IComponent.hpp"
19 #include "Component.hpp"
20 #include <iostream>
21 #include <string>
22 #include <map>
23 
29 {
30  public:
36  C4069();
40  ~C4069();
50  nts::Tristate compute(std::size_t pin = 1) override;
60  void setLink(std::size_t pin , nts::IComponent &other, std::size_t otherPin) final;
66  void dump() const noexcept override;
76  void setInput(std::size_t pin, nts::IComponent &other, std::size_t otherPin) final;
86  void setOutput(std::size_t pin, nts::IComponent &other, std::size_t otherPin) final;
87 
88  private:
97  void checkSelfLink(std::size_t pin1, std::size_t pin2);
106  nts::Tristate computeInput(nts::Pin &pin);
116  nts::Tristate computeOutput(nts::Door &door);
117 
118  std::map<size_t, nts::Door> _doors;
119 };
120 
121 #endif /* !C4069_HPP_ */
Definition: IComponent.hpp:45
Definition: Component.hpp:19
void dump() const noexcept override
Display information.
Definition: C4069.cpp:164
void setOutput(std::size_t pin, nts::IComponent &other, std::size_t otherPin) final
Set output link method.
Definition: C4069.cpp:149
void setInput(std::size_t pin, nts::IComponent &other, std::size_t otherPin) final
Set input link method.
Definition: C4069.cpp:132
Definition: IComponent.hpp:18
~C4069()
Component 4069 Destructor.
Definition: C4069.cpp:38
C4069()
Component 4069 Constructor.
Definition: C4069.cpp:12
nts::Tristate compute(std::size_t pin=1) override
Compute.
Definition: C4069.cpp:67
Definition: IComponent.hpp:52
Six Inverter circuit.
Definition: C4069.hpp:28
void setLink(std::size_t pin, nts::IComponent &other, std::size_t otherPin) final
Set link method.
Definition: C4069.cpp:92