#include <inbus.h>
Inheritance diagram for lcs::InputBus< bits >:

lcs::Module object. A client can only read the data lines and cannot set/modify them. Use the class lcs::Bus in order to obtain lines whose levels can be set by a client.
| bits | The number of data lines in the bus. |
Public Member Functions | |
| InputBus (void) | |
| InputBus (const InputBus< bits > &bus) | |
| virtual | ~InputBus () |
| int | width (void) |
| void | drive (Module *mod) |
| void | unDrive (Module *mod) |
| const LineState | operator[] (int i) const |
| template<int w> | |
| const InputBus< w+bits > | operator * (const InputBus< w > &bus) const |
| const InputBus< bits+1 > | operator * (const Line &line) const |
Protected Attributes | |
| DataPtr< Line > * | dataPtr |
Friends | |
| class | InputBus |
| lcs::InputBus< bits >::InputBus | ( | void | ) |
The default constructor. The data lines are all initialised to the lcs::UNKNOWN state.
| lcs::InputBus< bits >::InputBus | ( | const InputBus< bits > & | bus | ) |
| lcs::InputBus< bits >::~InputBus | ( | ) | [virtual] |
Destructor.
| void lcs::InputBus< bits >::drive | ( | Module * | mod | ) |
Registers the module which has to be driven. Every module which intends to be driven by an InputBus will have to register itself using this function.
| mod | A pointer to the lcs::Module object which has to be driven. |
Reimplemented in lcs::Bus< bits >, lcs::Bus< outBits >, lcs::Bus< inBits >, and lcs::Bus< 1 >.
| const InputBus< bits+1 > lcs::InputBus< bits >::operator * | ( | const Line & | line | ) | const |
The overloaded operator to join a data line to a bus to form a new bus. The line to be joined will have to be the right operand. The joined line takes the MSB location in the resulting InputBus object.
| line | The right operand lcs::Line object. |
Reimplemented in lcs::Bus< bits >, lcs::Bus< outBits >, lcs::Bus< inBits >, and lcs::Bus< 1 >.
| const InputBus< w+bits > lcs::InputBus< bits >::operator * | ( | const InputBus< w > & | bus | ) | const |
| const LineState lcs::InputBus< bits >::operator[] | ( | int | i | ) | const |
Overloaded operator which returns a const lcs::LineState variable corresponding to the state if the line at index i. The returned value is only a copy of the line state.
| void lcs::InputBus< bits >::unDrive | ( | Module * | mod | ) |
De-registers a module from the list of modules which have to be driven. See InputBus::drive for more details.
Reimplemented in lcs::Bus< bits >, lcs::Bus< outBits >, lcs::Bus< inBits >, and lcs::Bus< 1 >.
| int lcs::InputBus< bits >::width | ( | void | ) | [inline] |
Returns the bus width. Bus width is the same as the number of data lines in the bus.
friend class InputBus [friend] |
InputBus classes of other sizes are friends of this class.
DataPtr<Line>* lcs::InputBus< bits >::dataPtr [protected] |
1.4.7