home *** CD-ROM | disk | FTP | other *** search
- // the declaration of class NET_ITEM
- // Copyright (C) 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
-
- #ifndef _NETITEM_H_
- #define _NETITEM_H_
-
- #include "../kbandata/lineelem.h"
- #include "../kbandata/pinelem.h"
-
- class NET_ITEM {
- public:
- enum ITEM_TYPE { ITEM_PIN, ITEM_LINE };
- private:
- ITEM_TYPE m_type;
- uint m_layer_number;
- int m_net_number;
- PIN_ELEMENT* m_pin_elem_ref;
- PIN_ELEMENT m_pin_elem;
- LINE_ELEMENT m_line_elem;
- public:
- NET_ITEM() {}
- NET_ITEM(uint layer_number, const PIN_ELEMENT& pin_elem, PIN_ELEMENT* pin_elem_ref)
- : m_type(ITEM_PIN),
- m_layer_number(layer_number),
- m_pin_elem_ref(pin_elem_ref),
- m_pin_elem(pin_elem),
- m_line_elem() {}
- NET_ITEM(uint layer_number, const LINE_ELEMENT& line_elem)
- : m_type(ITEM_LINE),
- m_layer_number(layer_number),
- m_pin_elem_ref(NULL),
- m_pin_elem(),
- m_line_elem(line_elem) {}
-
- bool operator==(const NET_ITEM& rval) const; // illegal (undefined)
- bool operator!=(const NET_ITEM& rval) const; // illegal (undefined)
- bool operator<(const NET_ITEM& rval) const; // illegal (undefined)
- bool operator>(const NET_ITEM& rval) const; // illegal (undefined)
-
- ITEM_TYPE type() const { return m_type; }
- uint layer_number() const { return m_layer_number; }
- uint net_number() const { return m_net_number; }
- const PIN_ELEMENT& get_pin_element () const { return m_pin_elem; }
- const LINE_ELEMENT& get_line_element() const { return m_line_elem; }
-
- void set_net_number(uint net_number) {
- m_net_number = net_number;
- }
- void set_final_net_number(uint net_number) {
- m_net_number = net_number;
- if(m_type == ITEM_PIN) {
- m_pin_elem_ref->set_net_number(net_number);
- }
- }
- };
-
- #endif /* _NETITEM_H_ */
-