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)