port.hh (13782:9f6654f478e2) | port.hh (14189:a363edac6a12) |
---|---|
1/* 2 * Copyright (c) 2011-2012,2015,2017 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 58 unchanged lines hidden (view full) --- 67 68 protected: 69 70 /** 71 * A numeric identifier to distinguish ports in a vector, and set 72 * to InvalidPortID in case this port is not part of a vector. 73 */ 74 const PortID id; | 1/* 2 * Copyright (c) 2011-2012,2015,2017 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 58 unchanged lines hidden (view full) --- 67 68 protected: 69 70 /** 71 * A numeric identifier to distinguish ports in a vector, and set 72 * to InvalidPortID in case this port is not part of a vector. 73 */ 74 const PortID id; |
75 |
|
75 /** | 76 /** |
77 * A pointer to this port's peer. 78 */ 79 Port *_peer; 80 81 82 /** |
|
76 * Whether this port is currently connected to a peer port. 77 */ 78 bool _connected; 79 80 /** 81 * Abstract base class for ports 82 * 83 * @param _name Port name including the owners name 84 * @param _id A port identifier for vector ports 85 */ 86 Port(const std::string& _name, PortID _id); 87 88 /** 89 * Virtual destructor due to inheritance. 90 */ 91 virtual ~Port(); 92 93 public: 94 | 83 * Whether this port is currently connected to a peer port. 84 */ 85 bool _connected; 86 87 /** 88 * Abstract base class for ports 89 * 90 * @param _name Port name including the owners name 91 * @param _id A port identifier for vector ports 92 */ 93 Port(const std::string& _name, PortID _id); 94 95 /** 96 * Virtual destructor due to inheritance. 97 */ 98 virtual ~Port(); 99 100 public: 101 |
102 /** Return a reference to this port's peer. */ 103 Port &getPeer() { return *_peer; } 104 |
|
95 /** Return port name (for DPRINTF). */ 96 const std::string name() const { return portName; } 97 98 /** Get the port id. */ 99 PortID getId() const { return id; } 100 101 /** Attach to a peer port. */ | 105 /** Return port name (for DPRINTF). */ 106 const std::string name() const { return portName; } 107 108 /** Get the port id. */ 109 PortID getId() const { return id; } 110 111 /** Attach to a peer port. */ |
102 virtual void bind(Port &peer) = 0; | 112 virtual void 113 bind(Port &peer) 114 { 115 _peer = &peer; 116 _connected = true; 117 } |
103 104 /** Dettach from a peer port. */ | 118 119 /** Dettach from a peer port. */ |
105 virtual void unbind() = 0; | 120 virtual void 121 unbind() 122 { 123 _peer = nullptr; 124 _connected = false; 125 } |
106 107 /** Is this port currently connected to a peer? */ 108 bool isConnected() const { return _connected; } 109}; 110 111#endif //__SIM_PORT_HH__ | 126 127 /** Is this port currently connected to a peer? */ 128 bool isConnected() const { return _connected; } 129}; 130 131#endif //__SIM_PORT_HH__ |