49 class NetlistInternalManager;
66 bool operator==(
const Net& other)
const;
74 bool operator!=(
const Net& other)
const;
81 ssize_t get_hash()
const;
102 const std::string& get_name()
const;
109 void set_name(
const std::string&
name);
131 Endpoint* add_source(
Gate* gate,
const std::string& pin_name);
152 bool remove_source(
Gate* gate,
const std::string& pin_name);
163 bool remove_source(
Gate* gate,
const GatePin* pin);
180 bool is_a_source(
const Gate* gate)
const;
190 bool is_a_source(
const Gate* gate,
const std::string& pin_name)
const;
201 bool is_a_source(
const Gate* gate,
const GatePin* pin)
const;
209 bool is_a_source(
const Endpoint* ep)
const;
218 u32 get_num_of_sources(
const std::function<
bool(
Endpoint* ep)>& filter =
nullptr)
const;
227 std::vector<Endpoint*> get_sources(
const std::function<
bool(
Endpoint* ep)>& filter =
nullptr)
const;
241 Endpoint* add_destination(
Gate* gate,
const std::string& pin_name);
262 bool remove_destination(
Gate* gate,
const std::string& pin_name);
273 bool remove_destination(
Gate* gate,
const GatePin* pin);
282 bool remove_destination(
Endpoint* ep);
290 bool is_a_destination(
const Gate* gate)
const;
300 bool is_a_destination(
const Gate* gate,
const std::string& pin_name)
const;
311 bool is_a_destination(
const Gate* gate,
const GatePin* pin)
const;
319 bool is_a_destination(
const Endpoint* ep)
const;
328 u32 get_num_of_destinations(
const std::function<
bool(
Endpoint* ep)>& filter =
nullptr)
const;
337 std::vector<Endpoint*> get_destinations(
const std::function<
bool(
Endpoint* ep)>& filter =
nullptr)
const;
344 bool is_unrouted()
const;
351 bool is_gnd_net()
const;
358 bool is_vcc_net()
const;
365 bool mark_global_input_net();
372 bool mark_global_output_net();
379 bool unmark_global_input_net();
386 bool unmark_global_output_net();
393 bool is_global_input_net()
const;
400 bool is_global_output_net()
const;
408 Net& operator=(
const Net&) =
delete;
409 Net& operator=(
Net&&) =
delete;
423 std::vector<std::unique_ptr<Endpoint>> m_destinations;
424 std::vector<std::unique_ptr<Endpoint>> m_sources;
425 std::vector<Endpoint*> m_destinations_raw;
426 std::vector<Endpoint*> m_sources_raw;