110            string procName = 
"Socket::setName";
 
 
  131    const string procName = 
"Socket::setDirection";
 
  135        format text = textGenerator.
text(
 
 
  167    const string procName = 
"Socket::attachBus";
 
  192            string errorMsg = 
"Direction of the socket cannot be set.";
 
  194                __FILE__, __LINE__, procName, errorMsg);
 
 
  215        string procName = 
"Socket::detachBus";
 
 
  246    for (
int i = 0; i < segments; i++) {
 
 
  268        string procName = 
"Socket::port";
 
  269        throw OutOfRange(__FILE__, __LINE__, procName);
 
 
  279    PortTable::iterator iter = 
ports_.begin();
 
  280    while (iter != 
ports_.end()) {
 
  282        (*iter)->detachSocket(*
this);
 
 
  304    ConnectionTable::const_iterator iter = 
busses_.begin();
 
  305    while (iter != 
busses_.end()) {
 
  306        if ((*iter)->bus() == &bus) {
 
  313    string errorMsg = 
"The requested Connection object does not exist in " 
  315    string procName = 
"Socket::connection";
 
 
  334    for (
int i = 0; i < segments; i++) {
 
 
  352    ConnectionTable::const_iterator iter = 
busses_.begin();
 
  353    while (iter != 
busses_.end()) {
 
  354        if ((*iter)->bus() == &bus) {
 
 
  371        result.insert(conn->bus()->parentBus());
 
 
  384        result.insert(conn->bus()->parentBus());
 
 
  403        string procName = 
"Socket::segment";
 
  404        throw OutOfRange(__FILE__, __LINE__, procName);
 
 
  480    ConnectionTable::const_iterator iter = 
busses_.begin();
 
  481    while (iter != 
busses_.end()) {
 
 
  503    string procName = 
"Socket::loadState";
 
  517        for (
int childIndex = 0; childIndex < state->
childCount();
 
  528                    format text = textGenerator.
text(
 
  532                        __FILE__, __LINE__, procName, text.str());
 
  540                    bus = busNav.
item(busName);
 
  542                    format text = textGenerator.
text(
 
  544                    text % busName % 
name();
 
  546                        __FILE__, __LINE__, procName, text.str());
 
  552                    format text = textGenerator.
text(
 
  554                    text % 
name() % segmentName % busName;
 
  556                        __FILE__, __LINE__, procName, text.str());
 
  563                    __FILE__, __LINE__, procName);
 
  569            __FILE__, __LINE__, procName, exception.
errorMessage());
 
  582                format text = textGenerator.
text(
 
  584                    TXT_UNKNOWN_SOCKET_DIR_AND_SEGMENT_CONN);
 
  586                    __FILE__, __LINE__, procName, text.str());
 
  595            __FILE__, __LINE__, procName, exception.
errorMessage());
 
 
#define assert(condition)
static void abortProgram() __attribute__((noreturn))
static void writeToErrorLog(const std::string fileName, const int lineNumber, const std::string functionName, const std::string message, const int neededVerbosity=0)
std::string errorMessage() const
@ TXT_SOCKET_REF_LOAD_ERR_BUS
@ TXT_SET_DIR_SOCKET_NOT_REGISTERED
@ TXT_SOCKET_REF_LOAD_ERR
@ TXT_SOCKET_REF_LOAD_ERR_SEGMENT
static std::string socketDirectionSettingError(const TTAMachine::Socket &socket, TTAMachine::Socket::Direction, const MachineTester &tester)
static std::string socketSegmentConnectionError(const TTAMachine::Socket &socket, const TTAMachine::Segment &segment, const MachineTester &tester)
virtual bool canConnect(const TTAMachine::Socket &socket, const TTAMachine::Segment &segment)
virtual bool canSetDirection(const TTAMachine::Socket &socket, TTAMachine::Socket::Direction direction)
void setName(const std::string &name)
void setAttribute(const std::string &name, const std::string &value)
ObjectState * child(int index) const
void addChild(ObjectState *child)
std::string stringAttribute(const std::string &name) const
virtual Segment * segment(int index) const
virtual int segmentCount() const
void internalUnsetMachine()
virtual void setName(const std::string &name)
virtual Machine * machine() const
virtual void loadState(const ObjectState *state)
void internalSetMachine(Machine &machine)
virtual bool isRegistered() const
virtual void ensureRegistration(const Component &component) const
virtual TCEString name() const
virtual ObjectState * saveState() const
static const std::string OSKEY_SEGMENT
ObjectState attribute key for segment name.
static const std::string OSKEY_BUS
ObjectState attribute key for bus name.
ObjectState * saveState() const
static const std::string OSNAME_CONNECTION
ObjectState name for Connection.
ComponentType * item(int index) const
MachineTester & machineTester() const
virtual BusNavigator busNavigator() const
virtual void removeSocket(Socket &socket)
virtual void addSocket(Socket &socket)
void detachSocket(Socket &socket)
bool isConnectedTo(const Socket &socket) const
void attachSocket(Socket &socket)
std::string dataPortWidth_
Dataport width.
void setDirection(Direction direction)
static const std::string OSVALUE_INPUT
ObjectState attribute value for input direction.
virtual void unsetMachine()
@ OUTPUT
Data goes from port to bus.
@ INPUT
Data goes from bus to port.
@ UNKNOWN
Unknown direction.
bool isConnectedTo(const Bus &bus) const
void removeConnection(const Connection *connection)
static const std::string OSNAME_SOCKET
ObjectState name for socket.
static const std::string OSKEY_DIRECTION
ObjectState attribute key for socket direction.
void detachBus(Segment &bus)
Direction direction() const
ConnectionTable busses_
Contains all connections to busses.
static const std::string OSVALUE_OUTPUT
ObjectState attribute value for output direction.
bool hasDataPortWidth() const
const Connection & connection(const Segment &bus) const
void detachPort(const Port &port)
void setDataPortWidth(const std::string &width)
std::set< Bus * > connectedBuses()
Port * port(int index) const
virtual void loadState(const ObjectState *state)
void attachBus(Segment &bus)
virtual ObjectState * saveState() const
Socket(const std::string &name)
virtual void setName(const std::string &name)
PortTable ports_
Contains all connections to ports.
Segment * segment(int index) const
virtual void setMachine(Machine &mach)
static const std::string OSVALUE_UNKNOWN
ObjectState attribute value for unknown direction.
Direction direction_
Direction of the socket.
const std::string & dataPortWidth() const
void attachPort(Port &port)
virtual boost::format text(int textId)