aboutsummaryrefslogtreecommitdiff
path: root/NodeOutput.h
blob: 9110e93b66b36cd311779295991dab8a49453428 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include "Node.h"

class NodeOutput : public Node {
	using Node::Node;

public:
	NodeOutput();
	virtual ~NodeOutput() = default;
	virtual NodeOutput * clone() const;

	virtual void sim();
	//! override: throw exception
	virtual void setOutput(Net *);

public:
	virtual SignalLevel level();

private:
	NodeOutput(const NodeOutput * prototype);
	constexpr static const char * type = "probe";
	static NodeOutput instance;

private:
	SignalLevel input;

public:
	virtual void accept(NodeVisitor & visitor) { visitor.visit(*this); }
};