torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::generic::Net Class Referenceabstract

Represents an EDIF Net. More...

#include <Net.hpp>

+ Inheritance diagram for torc::generic::Net:
+ Collaboration diagram for torc::generic::Net:

Public Types

typedef std::list
< NetSharedPtr >::iterator 
Connection
 
typedef
boost::signals2::signal< void(const
NetSharedPtr &)> 
Connected
 
typedef
boost::signals2::signal< void(const
NetSharedPtr &)> 
Disconnected
 
typedef std::string Name
 
typedef Net Type
 
typedef boost::shared_ptr< TypePointer
 
typedef boost::weak_ptr< TypeWeakPointer
 
typedef std::vector< PointerList
 
typedef size_t SizeType
 

Public Member Functions

void addSubnet (const NetSharedPtr &inSubnet) throw (Error)
 
NetSharedPtr findSubnet (const std::string &inName) throw (Error)
 
void removeSubnet (const std::string &inName) throw (Error)
 
void getSubnets (std::vector< NetSharedPtr > &outSubnets) const
 
void setSubnets (const std::vector< NetSharedPtr > &inSource) throw (Error)
 
template<typename _Action >
void applyOnAllSubnets (const _Action &action) throw (Error)
 
NetSharedPtr getParentNet () const
 
void setParentNet (const NetSharedPtr &inParent)
 
const NetAttributesSharedPtr getAttributes () const
 
void setAttributes (const NetAttributesSharedPtr &inSource)
 
PortSharedPtr findConnectedPort (const std::string &inName) throw (Error)
 
virtual void getConnectedPorts (std::vector< PortSharedPtr > &outPort, bool inSkipChildConnections=false) const
 
template<typename _Action >
void applyOnAllConnectedPorts (const _Action &action) throw (Error)
 
virtual void getConnectedPortLists (std::vector< PortListSharedPtr > &outPortList) const
 
template<typename _Action >
void applyOnAllConnectedPortLists (const _Action &action) throw (Error)
 
virtual void disconnect () throw (Error)
 
PortReferenceSharedPtr findConnectedPortReference (const std::string &inName) throw (Error)
 
virtual void getConnectedPortRefs (std::vector< PortReferenceSharedPtr > &outPortRefs, bool inSkipChildConnections=false) const
 
template<typename _Action >
void applyOnAllConnectedPortRefs (const _Action &action) throw (Error)
 
virtual ~Net () throw ()
 
void addComment (const std::string &comment)
 
const std::vector< std::string > & getComments () const
 
void setComments (const std::vector< std::string > &inSource)
 
ConnectedsignalNetConnected ()
 
DisconnectedsignalNetDisconnected ()
 
virtual void getConnectedNets (std::vector< NetSharedPtr > &outNets, bool inSkipChildConnections=false) const throw (Error)
 
virtual Connection connect (const NetSharedPtr &inNet)=0 throw (Error)
 
virtual void disconnect (const Connection &inConnection)=0 throw (Error)
 
void disconnect (const std::string &inName) throw (Error)
 
void disconnect (const NetSharedPtr &net) throw (Error)
 
virtual const std::string getName () const
 
void setName (const std::string &inSource) throw (Error)
 
PropertySharedPtr getProperty (const std::string &inName)
 
bool setProperty (const std::string &inName, const PropertySharedPtr &inProperty)
 
void getProperties (std::map< std::string, PropertySharedPtr > &outProperties) const
 
void setProperties (const std::map< std::string, PropertySharedPtr > &inSource)
 
template<typename _Action >
void applyOnAllProperties (const _Action &action) throw (Error)
 
virtual Name getOriginalName () const
 
virtual void setOriginalName (const Name &inSource)
 
virtual void accept (BaseVisitor &inoutVisitor)=0 throw (Error)
 
virtual CompositionType getCompositionType () const =0
 
virtual size_t getSize () const =0
 
virtual void getChildren (List &outChildren) const =0 throw (Error)
 
virtual const Pointer get (const std::vector< SizeType > &inIndices) const =0 throw (Error)
 
virtual void setParentCollection (const Pointer &inParentCollection)
 
virtual Pointer getParentCollection () const
 
void setWeakThis (const WeakPointer &inWeakThis)
 
Pointer getSharedThis () const
 
const boost::shared_ptr< ViewgetParent () const
 
virtual void setParent (const boost::shared_ptr< View > &inSource)
 
void getUserData (std::list< std::string > &outUserData) const
 
void setUserData (const std::list< std::string > &inSource)
 
void addUserData (const std::string &inSource)
 

Protected Member Functions

void addConnectedPort (const PortSharedPtr &inPort) throw (Error)
 
void removeConnectedPort (const PortSharedPtr &inPort) throw (Error)
 
void addConnectedPortList (const PortListSharedPtr &inPort) throw (Error)
 
void removeConnectedPortList (const PortListSharedPtr &inList) throw (Error)
 
void setConnectedPorts (const std::vector< PortSharedPtr > &inSource) throw (Error)
 
void addConnectedPortReference (const PortReferenceSharedPtr &portRef) throw (Error)
 
void removeConnectedPortReference (const PortReferenceSharedPtr &inPortRef) throw (Error)
 
 Net ()
 
void setConnectedPortRefs (const std::vector< PortReferenceSharedPtr > &inSource) throw (Error)
 
virtual void onConnect () throw (Error)
 
virtual void onDisconnect () throw (Error)
 

Private Member Functions

 Net (const Net &source)
 
Netoperator= (const Net &source)
 

Private Attributes

SymTab< std::string,
NetSharedPtr, true > 
mSubnets
 
std::list< PortSharedPtrmConnectedPorts
 
std::list< PortListSharedPtrmConnectedPortLists
 
std::list< PortReferenceSharedPtrmConnectedPortRefs
 
NetSharedPtr mParentNet
 
NetAttributesSharedPtr mAttributes
 

Friends

class ConnectionHandler
 

Detailed Description

Represents an EDIF Net.

The Net class is an interface to EDIF nets. Net is an interface for scalar nets, vector nets, vector nets bits and net bundles. This class provides a simplified view of all three types of nets. To get a handle to an actual net, the client will have to use a Visitor with proper overloads of the visit() function, or dynamic_cast can be used. The latter method is however not recommended. A net object supports storing properties for storing different EDIF properties. See documentation of the Property and PropertyContainer classes for more details.

Definition at line 58 of file generic/Net.hpp.

Member Typedef Documentation

typedef boost::signals2::signal<void(const NetSharedPtr&)> torc::generic::Connectable::Connected
inherited

A signal to indicate that a new connection has been made

Definition at line 57 of file Connectable.hpp.

typedef std::list<NetSharedPtr>::iterator torc::generic::Connectable::Connection
inherited

A connection between a net and this object

Definition at line 52 of file Connectable.hpp.

typedef boost::signals2::signal<void(const NetSharedPtr&)> torc::generic::Connectable::Disconnected
inherited

A signal to indicate that a connection has been removed

Definition at line 62 of file Connectable.hpp.

typedef std::vector<Pointer> torc::generic::Composite< Net >::List
inherited

List of Shared Pointers to objects of type Type

Definition at line 61 of file Composite.hpp.

typedef std::string torc::generic::Renamable::Name
inherited

Definition at line 40 of file generic/Renamable.hpp.

typedef boost::shared_ptr<Type> torc::generic::Composite< Net >::Pointer
inherited

Shared Pointer to object of type Type

Definition at line 55 of file Composite.hpp.

typedef size_t torc::generic::Composite< Net >::SizeType
inherited

Definition at line 62 of file Composite.hpp.

typedef Net torc::generic::Composite< Net >::Type
inherited

Definition at line 50 of file Composite.hpp.

typedef boost::weak_ptr<Type> torc::generic::Composite< Net >::WeakPointer
inherited

Definition at line 56 of file Composite.hpp.

Constructor & Destructor Documentation

torc::generic::Net::Net ( )
protected

Definition at line 43 of file generic/Net.cpp.

43  :
std::list< PortReferenceSharedPtr > mConnectedPortRefs
std::list< PortSharedPtr > mConnectedPorts
NetAttributesSharedPtr mAttributes
SymTab< std::string, NetSharedPtr, true > mSubnets
std::list< PortListSharedPtr > mConnectedPortLists
NetSharedPtr mParentNet
torc::generic::Net::~Net ( )
throw (
)
virtual

Definition at line 47 of file generic/Net.cpp.

47  {
48  try {
49  disconnect();
50  } catch(Error& e) {
51  log("Cannot propagate received error\n");
52  }
53 }
void log(const char *fmt,...)
Definition: Log.cpp:89
virtual void disconnect()

+ Here is the call graph for this function:

torc::generic::Net::Net ( const Net source)
private

Member Function Documentation

virtual void torc::generic::Visitable::accept ( BaseVisitor inoutVisitor)
throw (Error
)
pure virtualinherited

Receive an inoutVisitor to this class. The visit method of the inoutVisitor is called and a reference to this object is passed as a parameter. It has to be noted however, that a dynamic_cast is performed inside this method. If the cast fails, an appropriate exception is thrown by this method. This situation can arise when the passed Visitor object does not inherit from the appropriate inoutVisitor specialization. See Visitor documentation for more details.

Parameters
[in,out]inoutVisitorA reference to the inoutVisitor object
Exceptions
ErrorVisitor type inappropriate for visiting this object or any other error thrown by the Visitor::throw() method.

Implemented in torc::generic::Root, torc::generic::Permutable, torc::generic::PortBundle, torc::generic::Status, torc::generic::VectorPort, torc::generic::View, torc::generic::InterfaceJoinedInfo, torc::generic::LogicElement, torc::generic::ParameterArray, torc::generic::InstanceArray, torc::generic::Cell, torc::generic::VectorPortReference, torc::generic::VectorNet, torc::generic::Library, torc::generic::LogicValue, torc::generic::Simulate, torc::generic::Property, torc::generic::SingleParameter, torc::generic::Design, torc::generic::SimulationInfo, torc::generic::NetBundle, torc::generic::PortBundleReference, torc::generic::ScalarPort, torc::generic::ScalarNet, torc::generic::ScalarPortReference, torc::generic::SingleInstance, torc::generic::LogicalResponse, torc::generic::InstanceArrayMember, torc::generic::ParameterArrayElement, torc::generic::Event, torc::generic::VectorNetBit, torc::generic::VectorPortBit, torc::generic::Timing, torc::generic::ForbiddenEvent, torc::generic::VectorPortBitReference, and torc::generic::Apply.

void torc::generic::Commentable::addComment ( const std::string &  comment)
inherited

Add a comment to the object

Parameters
[in]commentThe comment to add to an existing list of comments

Definition at line 36 of file Commentable.cpp.

36  {
37  mComments.push_back(comment);
38 }
std::vector< std::string > mComments
Definition: Commentable.hpp:77
void torc::generic::Net::addConnectedPort ( const PortSharedPtr inPort)
throw (Error
)
protected

Connect a port to this net.

Parameters
[in]inPortport to be added. Empty pointer is ignored.
Exceptions
ErrorCould not add Port, because Port name is empty
ErrorCould not add Port, because Port name is already exists

Definition at line 147 of file generic/Net.cpp.

147  {
148  if(!inPort) {
149  return;
150  }
151  std::string name = inPort->getName();
152  if(name.empty()) {
153  Error e(eMessageIdErrorEmptyItemName, __FUNCTION__, __FILE__, __LINE__);
154  e.saveContextData("Port name", name);
155  throw e;
156  }
157  mConnectedPorts.push_back(inPort);
158  return;
159 }
std::list< PortSharedPtr > mConnectedPorts
std::string string

+ Here is the call graph for this function:

void torc::generic::Net::addConnectedPortList ( const PortListSharedPtr inPort)
throw (Error
)
protected

Definition at line 218 of file generic/Net.cpp.

218  {
219  if(!inPortList) {
220  return;
221  }
222  mConnectedPortLists.push_back(inPortList);
223  return;
224 }
std::list< PortListSharedPtr > mConnectedPortLists
void torc::generic::Net::addConnectedPortReference ( const PortReferenceSharedPtr inPortRef)
throw (Error
)
protected

Connect a port reference to this net.

Parameters
[in]inPortRefPort reference to be added
Exceptions
ErrorCould not add port reference

Definition at line 247 of file generic/Net.cpp.

247  {
248  if(!inPortRef) {
249  return;
250  }
251  std::string name = inPortRef->getName();
252  if(name.empty()) {
253  Error e(eMessageIdErrorEmptyItemName, __FUNCTION__, __FILE__, __LINE__);
254  e.saveContextData("PortReference name", name);
255  throw e;
256  }
257  mConnectedPortRefs.push_back(inPortRef);
258  return;
259 }
std::list< PortReferenceSharedPtr > mConnectedPortRefs
std::string string

+ Here is the call graph for this function:

void torc::generic::Net::addSubnet ( const NetSharedPtr inSubnet)
throw (Error
)

Add a subnet to this net.

Parameters
[in]inSubnetSubnet to be added
Exceptions
ErrorCould not add subnet, because subnet name is empty
  • Id : eMessageIdErrorEmptyItemName
  • Context Data
    • Subnet name - String
ErrorCould not add subnet, because subnet name is already exists
  • Id : eMessageIdErrorItemAlreadyExists
  • Context Data
    • Subnet name - String

Add a subnet to this net.

Parameters
[in]inSubnetSubnet to be added
Exceptions
ErrorCould not add subnet, because subnet name is empty
ErrorCould not add subnet, because subnet name is already exists

Definition at line 63 of file generic/Net.cpp.

63  {
64  std::string name = inSubnet->getName();
65  if(name.empty()) {
66  Error e(eMessageIdErrorEmptyItemName, __FUNCTION__, __FILE__, __LINE__);
67  e.saveContextData("Subnet name", name);
68  throw e;
69  }
70  if(false == mSubnets.set(name, inSubnet)) {
71  Error e(eMessageIdErrorItemAlreadyExists, __FUNCTION__, __FILE__, __LINE__);
72  e.saveContextData("Subnet name", name);
73  throw e;
74  }
75  inSubnet->setParentNet(getSharedThis());
76  return;
77 }
bool set(const KeyType &inKey, const ValueType &inValue)
Definition: SymTab.hpp:132
std::string string
SymTab< std::string, NetSharedPtr, true > mSubnets

+ Here is the call graph for this function:

void torc::generic::UserDataContainer::addUserData ( const std::string &  inSource)
inherited

Add an user data to the list of user data

Parameters
[in]inSourceAn user data as string

Definition at line 34 of file UserDataContainer.cpp.

34  {
35  mUserData.push_back(inSource);
36 }
std::list< std::string > mUserData
template<typename _Action >
void torc::generic::Net::applyOnAllConnectedPortLists ( const _Action &  action)
throw (Error
)
inline

Apply action on all connected port lists.

Parameters
[in]actionAction to be applied

Definition at line 317 of file generic/Net.hpp.

318  {
319  try {
320  std::for_each(mConnectedPortLists.begin(), mConnectedPortLists.end(), action);
321  } catch(Error& e) {
322  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
323  throw;
324  }
325 }
std::list< PortListSharedPtr > mConnectedPortLists

+ Here is the call graph for this function:

template<typename _Action >
void torc::generic::Net::applyOnAllConnectedPortRefs ( const _Action &  action)
throw (Error
)
inline

Apply action on all connected port refs.

Parameters
[in]actionAction to be applied

Definition at line 327 of file generic/Net.hpp.

328  {
329  try {
330  std::for_each(mConnectedPortRefs.begin(), mConnectedPortRefs.end(), action);
331  } catch(Error& e) {
332  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
333  throw;
334  }
335 }
std::list< PortReferenceSharedPtr > mConnectedPortRefs

+ Here is the call graph for this function:

template<typename _Action >
void torc::generic::Net::applyOnAllConnectedPorts ( const _Action &  action)
throw (Error
)
inline

Apply action on all connected ports.

Parameters
[in]actionAction to be applied

Definition at line 307 of file generic/Net.hpp.

308  {
309  try {
310  std::for_each(mConnectedPorts.begin(), mConnectedPorts.end(), action);
311  } catch(Error& e) {
312  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
313  throw;
314  }
315 }
std::list< PortSharedPtr > mConnectedPorts

+ Here is the call graph for this function:

template<typename _Action >
void torc::generic::PropertyContainer::applyOnAllProperties ( const _Action &  action)
throw (Error
)
inlineinherited

Apply action on all properties.

Parameters
[in]actionAction to be applied

Definition at line 113 of file PropertyContainer.hpp.

114  {
115  try {
116  mProperties.applyOnAll(action);
117  } catch(Error& e) {
118  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
119  throw;
120  }
121 }
void applyOnAll(const _Action &action)
Definition: SymTab.hpp:192
SymTab< std::string, PropertySharedPtr > mProperties

+ Here is the call graph for this function:

template<typename _Action >
void torc::generic::Net::applyOnAllSubnets ( const _Action &  action)
throw (Error
)
inline

Apply action on all Subnets.

Parameters
[in]actionAction to be applied

Definition at line 284 of file generic/Net.hpp.

285  {
286  try {
287  mSubnets.applyOnAll(action);
288  } catch(Error& e) {
289  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
290  throw;
291  }
292 }
void applyOnAll(const _Action &action)
Definition: SymTab.hpp:192
SymTab< std::string, NetSharedPtr, true > mSubnets

+ Here is the call graph for this function:

Connectable::Connection torc::generic::Connectable::connect ( const NetSharedPtr inNet)
throw (Error
)
pure virtualinherited

Connect a Net to this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_connected() method after this. The sigConnected_ signal must also be invoked in the overriding method.
Parameters
[in]inNetA pointer to the Net object that needs to be Connected
Returns
A connection that has been established. This can be used later for disconnection.

Connect a Net to this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_connected() method after this. The sigConnected_ signal must also be invoked in the overriding method.
Parameters
[in]inNetA pointer to the Net object that eeds to be Connected
Returns
A connection that has been established. This can be used later for disconnection.

Implemented in torc::generic::VectorPortReference, torc::generic::PortBundleReference, torc::generic::VectorNet, torc::generic::PortBundle, torc::generic::NetBundle, torc::generic::VectorPort, torc::generic::ScalarPort, torc::generic::ScalarNet, torc::generic::ScalarPortReference, torc::generic::PortList, torc::generic::VectorNetBit, torc::generic::VectorPortBit, and torc::generic::VectorPortBitReference.

Definition at line 60 of file Connectable.cpp.

60  {
61  Connection connection = mConnectedNets.insert(mConnectedNets.end(), inNet);
62  try {
63  onConnect();
64  } catch(Error& e) {
65  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
66  throw;
67  }
68  signalNetConnected()(inNet);
69  return connection;
70 }
Connected & signalNetConnected()
std::list< NetSharedPtr >::iterator Connection
Definition: Connectable.hpp:52
std::list< NetSharedPtr > mConnectedNets

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void torc::generic::Connectable::disconnect ( const Connection inConnection)
throw (Error
)
pure virtualinherited

Disconnect a Net from this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_connected() method after this. The sigConnected_ signal must also be invoked in the overriding method.
Parameters
[in]inConnectionA connection as returned by the connect() method
Exceptions
ErrorProvided connection is invalid

Implemented in torc::generic::VectorPortReference, torc::generic::PortBundleReference, torc::generic::PortBundle, torc::generic::VectorNet, torc::generic::VectorPort, torc::generic::NetBundle, torc::generic::ScalarPort, torc::generic::ScalarNet, torc::generic::ScalarPortReference, torc::generic::PortList, torc::generic::VectorNetBit, torc::generic::VectorPortBit, and torc::generic::VectorPortBitReference.

Definition at line 83 of file Connectable.cpp.

83  {
84  if(inConnection == mConnectedNets.end()) {
85  return;
86  }
87 
88  NetSharedPtr net = *inConnection;
89  mConnectedNets.erase(inConnection);
90  try {
91  onDisconnect();
92  } catch(Error& e) {
93  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
94  throw;
95  }
96  signalNetDisconnected()(net);
97  return;
98 }
Disconnected & signalNetDisconnected()
std::list< NetSharedPtr > mConnectedNets
boost::shared_ptr< Net > NetSharedPtr

+ Here is the call graph for this function:

void torc::generic::Connectable::disconnect ( const std::string &  inName)
throw (Error
)
inherited

Disconnect the named Net from this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_connected() method after this. The sigConnected_ signal must also be invoked in the overriding method.
Parameters
[in]inNameName of the net to be Disconnected
Exceptions
ErrorProvided net was not found

Disconnect the named Net from this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_connected() method after this. The sigConnected_ signal must also be invoked in the overriding method.
Parameters
[in]inNnameName of the net to be Disconnected
Exceptions
ErrorProvided net was not found

Definition at line 111 of file Connectable.cpp.

111  {
112  disconnect(std::find_if(mConnectedNets.begin(), mConnectedNets.end(),
113  boost::bind<bool>(std::equal_to<std::string>(),
114  boost::bind(boost::mem_fn(&Net::getName), _1), inName)));
115 }
std::list< NetSharedPtr > mConnectedNets
virtual const std::string getName() const
Definition: Nameable.hpp:89

+ Here is the call graph for this function:

void torc::generic::Connectable::disconnect ( const NetSharedPtr inNet)
throw (Error
)
inherited

Disconnect the given Net from this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_disconnected() method after this. The sigDisconnected_ signal must also be invoked in the overriding method.
Parameters
[in]netPointer to a net
Exceptions
ErrorProvided net was not found

Disconnect the given Net from this object.

Note
This metod can be overridden by derived classes. However, the method must call the on_disconnected() method after this. The sigDisconnected_ signal must also be invoked in the overriding method.
Parameters
[in]inNetPointer to a net
Exceptions
ErrorProvided net was not found

Definition at line 128 of file Connectable.cpp.

128  {
129  disconnect(std::find(mConnectedNets.begin(), mConnectedNets.end(), inNet));
130 }
std::list< NetSharedPtr > mConnectedNets
void torc::generic::Net::disconnect ( )
throw (Error
)
virtual

Reimplemented from torc::generic::Connectable.

Reimplemented in torc::generic::VectorNet, and torc::generic::NetBundle.

Definition at line 311 of file generic/Net.cpp.

311  {
312  if(!getName().empty()) {
313  log("Clearing net %s\n", getName().c_str());
314  }
315  mSubnets.clear();
316  //Don't try to optimize the following by using applyOnAll
317  // it causes memory corruption as the SymTab itself changes
318  // during disconnection
319  std::vector<PortSharedPtr> ports;
320  getConnectedPorts(ports, true);
321  void (Connectable::*fp)(const NetSharedPtr& net)
323  std::for_each(ports.begin(), ports.end(), boost::bind(fp, _1, getSharedThis()));
324  std::vector<PortReferenceSharedPtr> portRefs;
325  getConnectedPortRefs(portRefs, true);
326  std::for_each(portRefs.begin(), portRefs.end(), boost::bind(fp, _1, getSharedThis()));
327  std::vector<PortListSharedPtr> portLists;
328  getConnectedPortLists(portLists);
329  std::for_each(portLists.begin(), portLists.end(), boost::bind(fp, _1, getSharedThis()));
331 }
void log(const char *fmt,...)
Definition: Log.cpp:89
virtual void getConnectedPorts(std::vector< PortSharedPtr > &outPort, bool inSkipChildConnections=false) const
virtual void getConnectedPortRefs(std::vector< PortReferenceSharedPtr > &outPortRefs, bool inSkipChildConnections=false) const
boost::shared_ptr< Net > NetSharedPtr
virtual void getConnectedPortLists(std::vector< PortListSharedPtr > &outPortList) const
virtual const std::string getName() const
Definition: Nameable.hpp:89
SymTab< std::string, NetSharedPtr, true > mSubnets

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

PortSharedPtr torc::generic::Net::findConnectedPort ( const std::string &  inName)
throw (Error
)

Find a port connected to this net.

Parameters
[in]inNameName of the port. If not found, empty pointer is returned

Definition at line 166 of file generic/Net.cpp.

166  {
167  PortSharedPtr port;
168  std::list<PortSharedPtr>::iterator it = find_if(
169  mConnectedPorts.begin(),
170  mConnectedPorts.end(),
171  boost::bind<bool>(std::equal_to<std::string>(),
172  boost::bind(boost::mem_fn(&Port::getName), _1), inName));
173  if(it != mConnectedPorts.end()) {
174  port = *it;
175  }
176  return port;
177 }
std::list< PortSharedPtr > mConnectedPorts
virtual const std::string getName() const
Definition: Nameable.hpp:89
boost::shared_ptr< Port > PortSharedPtr

+ Here is the call graph for this function:

PortReferenceSharedPtr torc::generic::Net::findConnectedPortReference ( const std::string &  inName)
throw (Error
)

Find a port reference connected to this net.

Parameters
[in]inNameName of the port reference. If not found, empty pointer is returned

Definition at line 266 of file generic/Net.cpp.

266  {
267  PortReferenceSharedPtr portRef;
268  std::list<PortReferenceSharedPtr>::iterator it = find_if(
269  mConnectedPortRefs.begin(),
270  mConnectedPortRefs.end(),
271  boost::bind<bool>(std::equal_to<std::string>(),
272  boost::bind(boost::mem_fn(&PortReference::getName), _1), inName));
273  if(it != mConnectedPortRefs.end()) {
274  portRef = *it;
275  }
276  return portRef;
277 }
std::list< PortReferenceSharedPtr > mConnectedPortRefs
boost::shared_ptr< PortReference > PortReferenceSharedPtr

+ Here is the call graph for this function:

NetSharedPtr torc::generic::Net::findSubnet ( const std::string &  inName)
throw (Error
)

Find a subnet from belonging to this net.

Parameters
[in]inNameName of the subnet. If not found, empty pointer is returned

Definition at line 85 of file generic/Net.cpp.

85  {
86  NetSharedPtr subnet;
87  mSubnets.get(inName, subnet);
88  return subnet;
89 }
boost::shared_ptr< Net > NetSharedPtr
bool get(const KeyType &inKey, ValueType &outValue) const
Definition: SymTab.hpp:121
SymTab< std::string, NetSharedPtr, true > mSubnets
virtual const Pointer torc::generic::Composite< Net >::get ( const std::vector< SizeType > &  inIndices) const
throw (Error
)
pure virtualinherited

Get a specific member of this composition.

Note
This is relevant for Vector composition only. Other compositions return a NULL pointer
Parameters
[in]inIndicesA list of indices to be accessed. The number of indices must be equal to the number of dimensions.
Returns
A pointer to the child situated at the specified indices. For non-relevant types a NULL pointer is returned
Exceptions
ErrorIndex dimensions mismatch

Implemented in torc::generic::Vector< Net, VectorNetBit, VectorNetBit::Factory, true >, torc::generic::Bundle< Net >, torc::generic::VectorBit< Net >, and torc::generic::Scalar< Net >.

const NetAttributesSharedPtr torc::generic::Net::getAttributes ( ) const
inline

Get the attributes of the net. Attributes include criticality, netDelay etc.

Returns
Pointer to NetAttributes object.

Definition at line 303 of file generic/Net.hpp.

303  {
304  return mAttributes;
305 }
NetAttributesSharedPtr mAttributes
virtual void torc::generic::Composite< Net >::getChildren ( List outChildren) const
throw (Error
)
pure virtualinherited

Get children of this composition.

Note
This is relevant for Vector and Bundle compositions only. Other compositions return a NULL pointer
Parameters
[out]outChildrenA list of all children for this composition

Implemented in torc::generic::Vector< Net, VectorNetBit, VectorNetBit::Factory, true >, torc::generic::Scalar< Net >, and torc::generic::VectorBit< Net >.

const std::vector< std::string > & torc::generic::Commentable::getComments ( ) const
inlineinherited

Get the list of all comments

Returns
A list of all comments on this object

Definition at line 85 of file Commentable.hpp.

85  {
86  return mComments;
87 }
std::vector< std::string > mComments
Definition: Commentable.hpp:77
virtual CompositionType torc::generic::Composite< Net >::getCompositionType ( ) const
pure virtualinherited
void torc::generic::Connectable::getConnectedNets ( std::vector< NetSharedPtr > &  outNets,
bool  inSkipChildConnections = false 
) const
throw (Error
)
virtualinherited

Get the vector of Nets that are Connected to the current object. The connected elements are appended to the given vector

Parameters
[out]outNetsA vector of Connected nets

Get the vector of Nets that are Connected to the current object. The connected elements are appended to the given vector

Returns
A vector of Connected nets

Reimplemented in torc::generic::VectorPortReference, torc::generic::VectorNet, torc::generic::VectorPort, torc::generic::VectorNetBit, torc::generic::VectorPortBit, and torc::generic::VectorPortBitReference.

Definition at line 45 of file Connectable.cpp.

46  {
47  outNets.insert(outNets.end(), mConnectedNets.begin(), mConnectedNets.end());
48 }
std::list< NetSharedPtr > mConnectedNets

+ Here is the caller graph for this function:

void torc::generic::Net::getConnectedPortLists ( std::vector< PortListSharedPtr > &  outPortList) const
virtual

Appends vector of connected port lists

Parameters
[in]outPortListvector of port lists to be appended to

Definition at line 213 of file generic/Net.cpp.

213  {
214  outPortList.insert(outPortList.end(), mConnectedPortLists.begin(), mConnectedPortLists.end());
215  return;
216 }
std::list< PortListSharedPtr > mConnectedPortLists

+ Here is the caller graph for this function:

void torc::generic::Net::getConnectedPortRefs ( std::vector< PortReferenceSharedPtr > &  outPortRefs,
bool  inSkipChildConnections = false 
) const
virtual

Appends vector of connected port references

Parameters
[in]outPortRefsvector of port refs to be appended to

Reimplemented in torc::generic::VectorNet, and torc::generic::VectorNetBit.

Definition at line 279 of file generic/Net.cpp.

280  {
281  outPortRefs.insert(outPortRefs.end(), mConnectedPortRefs.begin(), mConnectedPortRefs.end());
282  return;
283 }
std::list< PortReferenceSharedPtr > mConnectedPortRefs

+ Here is the caller graph for this function:

void torc::generic::Net::getConnectedPorts ( std::vector< PortSharedPtr > &  outPort,
bool  inSkipChildConnections = false 
) const
virtual

Appends vector of connected ports

Parameters
[in]outPortvector of port to be appended to
[in]inSkipChildConnectionsReturn only ports connected to this port and skip returning elements that have been connected to the child

Reimplemented in torc::generic::VectorNet, and torc::generic::VectorNetBit.

Definition at line 179 of file generic/Net.cpp.

180  {
181  outPorts.insert(outPorts.end(), mConnectedPorts.begin(), mConnectedPorts.end());
182  return;
183 }
std::list< PortSharedPtr > mConnectedPorts

+ Here is the caller graph for this function:

const std::string torc::generic::Nameable::getName ( void  ) const
inlinevirtualinherited

Get the object name

Returns
Name of the object

Definition at line 89 of file Nameable.hpp.

89  {
90  return mName;
91 }

+ Here is the caller graph for this function:

Renamable::Name torc::generic::Renamable::getOriginalName ( ) const
inlinevirtualinherited

Get the new name provided for the object.

Returns
Name of the object

Definition at line 78 of file generic/Renamable.hpp.

78  {
79  return mOriginalName;
80 }

+ Here is the caller graph for this function:

const boost::shared_ptr<View > torc::generic::ParentedObject< View >::getParent ( ) const
inlineinherited

Get a pointer to the parent object

Returns
Pointer to parent

+ Here is the caller graph for this function:

virtual Pointer torc::generic::Composite< Net >::getParentCollection ( ) const
inlinevirtualinherited

Get a pointer to the parent collection

Returns
A pointer to the parent collection if present, empty pointer otherwise

+ Here is the caller graph for this function:

NetSharedPtr torc::generic::Net::getParentNet ( ) const
inline

Definition at line 294 of file generic/Net.hpp.

294  {
295  return mParentNet;
296 }
NetSharedPtr mParentNet
void torc::generic::PropertyContainer::getProperties ( std::map< std::string, PropertySharedPtr > &  outProperties) const
inlineinherited

Get the map of all properties

Parameters
[out]outPropertiesThe map of properties

Get the map of all properties

Returns
The map of properties

Definition at line 107 of file PropertyContainer.hpp.

108  {
109  mProperties.getValueMap(outProperties);
110  return;
111 }
void getValueMap(UserMap &outMap) const
Definition: SymTab.hpp:171
SymTab< std::string, PropertySharedPtr > mProperties

+ Here is the call graph for this function:

PropertySharedPtr torc::generic::PropertyContainer::getProperty ( const std::string &  inName)
inherited

Get a property

Parameters
[in]inNameName of the property to be retreived
Returns
Pointer to the property object if present, empty pointer otherwise.

Get a property

Parameters
[in]nameName of the property to be retreived
Returns
Pointer to the property object if present, empty pointer otherwise.

Definition at line 37 of file PropertyContainer.cpp.

37  {
38  PropertySharedPtr property;
39  if(!inName.empty()) {
40  mProperties.get(inName, property);
41  }
42  return property;
43 }
bool get(const KeyType &inKey, ValueType &outValue) const
Definition: SymTab.hpp:121
SymTab< std::string, PropertySharedPtr > mProperties
boost::shared_ptr< Property > PropertySharedPtr

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Pointer torc::generic::SelfReferencing< Net >::getSharedThis ( ) const
inlineinherited

Get a shared pointer to this object. A valid pointer is returned if weakThis was set. Otherwise this returns a NULL pointer. For Vector types, the second scenario is an exception condition and should be treated as such.

Returns
A shared pointer to this object

Get a shared pointer to this object. A valid pointer is returned if weakThis was set. Otherwise this returns a NULL pointer. For Vector types, the second scenario is an exception condition and should be treated as such.

Parameters
[out]ptrSet to a shared pointer to this object

+ Here is the caller graph for this function:

virtual size_t torc::generic::Composite< Net >::getSize ( void  ) const
pure virtualinherited
void torc::generic::Net::getSubnets ( std::vector< NetSharedPtr > &  outSubnets) const
inline

Definition at line 279 of file generic/Net.hpp.

279  {
280  mSubnets.getValues(outSubnets);
281  return;
282 }
void getValues(std::vector< ValueType > &outValues) const
Definition: SymTab.hpp:158
SymTab< std::string, NetSharedPtr, true > mSubnets

+ Here is the call graph for this function:

void torc::generic::UserDataContainer::getUserData ( std::list< std::string > &  outUserData) const
inlineinherited

Get the list of all userData

Parameters
[out]outUserDataThe list of all userData

Definition at line 78 of file UserDataContainer.hpp.

78  {
79  outUserData.insert(outUserData.end(), mUserData.begin(), mUserData.end());
80  return;
81 }
std::list< std::string > mUserData
void torc::generic::Connectable::onConnect ( )
throw (Error
)
protectedvirtualinherited

A polymorphic function that is called after a net is Connected to this object

Definition at line 144 of file Connectable.cpp.

144 {}
void torc::generic::Connectable::onDisconnect ( )
throw (Error
)
protectedvirtualinherited

A polymorphic function that is called after a net is Disconnected from this object

Definition at line 149 of file Connectable.cpp.

149 {}
Net& torc::generic::Net::operator= ( const Net source)
private
void torc::generic::Net::removeConnectedPort ( const PortSharedPtr inPort)
throw (Error
)
protected

Definition at line 185 of file generic/Net.cpp.

185  {
186  std::list<PortSharedPtr>::iterator it = find(mConnectedPorts.begin(), mConnectedPorts.end(),
187  inPort);
188  if(it != mConnectedPorts.end()) {
189  mConnectedPorts.erase(it);
190  } else {
191  Error e(eMessageIdErrorItemNotFound, __FUNCTION__, __FILE__, __LINE__);
192  e.saveContextData("Name", inPort->getName());
193  throw e;
194  }
195  return;
196 
197 }
std::list< PortSharedPtr > mConnectedPorts

+ Here is the call graph for this function:

void torc::generic::Net::removeConnectedPortList ( const PortListSharedPtr inList)
throw (Error
)
protected

Definition at line 226 of file generic/Net.cpp.

226  {
227  std::list<PortListSharedPtr>::iterator it = find(mConnectedPortLists.begin(),
228  mConnectedPortLists.end(), inPortList);
229  if(it != mConnectedPortLists.end()) {
230  mConnectedPortLists.erase(it);
231  } else {
232  Error e(eMessageIdErrorItemNotFound, __FUNCTION__, __FILE__, __LINE__);
233  e.saveContextData("Name", std::string("PortList"));
234  throw e;
235  }
236  return;
237 
238 }
std::string string
std::list< PortListSharedPtr > mConnectedPortLists

+ Here is the call graph for this function:

void torc::generic::Net::removeConnectedPortReference ( const PortReferenceSharedPtr inPortRef)
throw (Error
)
protected

Definition at line 285 of file generic/Net.cpp.

285  {
286  std::list<PortReferenceSharedPtr>::iterator it = find(mConnectedPortRefs.begin(),
287  mConnectedPortRefs.end(), inPortRef);
288  if(it != mConnectedPortRefs.end()) {
289  mConnectedPortRefs.erase(it);
290  } else {
291  Error e(eMessageIdErrorItemNotFound, __FUNCTION__, __FILE__, __LINE__);
292  e.saveContextData("PortReference name", inPortRef->getName());
293  throw e;
294  }
295  return;
296 }
std::list< PortReferenceSharedPtr > mConnectedPortRefs

+ Here is the call graph for this function:

void torc::generic::Net::removeSubnet ( const std::string &  inName)
throw (Error
)

Remove a subnet from this net.

Parameters
inNameName of the object to be delete
Exceptions
ErrorCould not remove subnet, because subnet name is empty
  • Id : eMessageIdErrorEmptyItemName
  • Context Data
    • Subnet name - String
ErrorCould not remove subnet, because subnet not present.
  • Id : eMessageIdErrorItemNotFound
  • Context Data
    • Subnet name - String

Remove a subnet from this net.

Parameters
inNameName of the object to be delete
Exceptions
ErrorCould not remove subnet, because subnet name is empty
ErrorCould not remove subnet, because subnet not present.

Definition at line 99 of file generic/Net.cpp.

99  {
100  if(inName.empty()) {
101  Error e(eMessageIdErrorEmptyItemName, __FUNCTION__, __FILE__, __LINE__);
102  e.saveContextData("Subnet name", inName);
103  throw e;
104  }
105  if(false == mSubnets.remove(inName)) {
106  Error e(eMessageIdErrorItemNotFound, __FUNCTION__, __FILE__, __LINE__);
107  e.saveContextData("Subnet name", inName);
108  throw e;
109  }
110  return;
111 }
bool remove(const KeyType &inKey)
Definition: SymTab.hpp:153
SymTab< std::string, NetSharedPtr, true > mSubnets

+ Here is the call graph for this function:

void torc::generic::Net::setAttributes ( const NetAttributesSharedPtr inSource)

Set the attributes of the net. Attributes include criticality, netDelay etc.

Parameters
[in]inSourcePointer to NetAttributes object.

Definition at line 122 of file generic/Net.cpp.

122  {
123  mAttributes = inSource;
124 }
NetAttributesSharedPtr mAttributes
void torc::generic::Commentable::setComments ( const std::vector< std::string > &  inSource)
inherited

Get the list of all comments

Parameters
[in]inSourceA list of all comments to be set on this object

Definition at line 45 of file Commentable.cpp.

45  {
46  mComments.insert(mComments.end(), inSource.begin(), inSource.end());
47 }
std::vector< std::string > mComments
Definition: Commentable.hpp:77
void torc::generic::Net::setConnectedPortRefs ( const std::vector< PortReferenceSharedPtr > &  inSource)
throw (Error
)
protected

Definition at line 298 of file generic/Net.cpp.

298  {
299  std::vector<PortReferenceSharedPtr>::const_iterator portRef = inSource.begin();
300  std::vector<PortReferenceSharedPtr>::const_iterator portRefEnd = inSource.end();
301  for(; portRef != portRefEnd; ++portRef) {
302  try {
303  addConnectedPortReference(*portRef);
304  } catch(Error& e) {
305  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
306  throw;
307  }
308  }
309 }
void addConnectedPortReference(const PortReferenceSharedPtr &portRef)

+ Here is the call graph for this function:

void torc::generic::Net::setConnectedPorts ( const std::vector< PortSharedPtr > &  inSource)
throw (Error
)
protected

Definition at line 199 of file generic/Net.cpp.

199  {
200  std::vector<PortSharedPtr>::const_iterator port = inSource.begin();
201  std::vector<PortSharedPtr>::const_iterator portEnd = inSource.end();
202  for(; port != portEnd; ++port) {
203  try {
204  addConnectedPort(*port);
205  } catch(Error& e) {
206  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
207  throw;
208  }
209  }
210 
211 }
void addConnectedPort(const PortSharedPtr &inPort)

+ Here is the call graph for this function:

void torc::generic::Nameable::setName ( const std::string &  inSource)
throw (Error
)
inherited

Set a name for this object

Parameters
[in]inSourceName of the object
Exceptions
ErrorCould not set name, because name is empty (Will be used by array members)
  • Id : eMessageIdErrorEmptyItemName
  • Context Data

Set a name for this object

Parameters
[in]inSourceName of the object
Exceptions
ErrorCould not set name, because name is empty (Will be used by array members)

Definition at line 41 of file Nameable.cpp.

41  {
42  if(inSource.empty()) {
43  Error e(eMessageIdErrorEmptyItemName, __FUNCTION__, __FILE__, __LINE__);
44  e.saveContextData("Nameable", inSource);
45  throw e;
46  }
47  mName = inSource;
48 }

+ Here is the call graph for this function:

void torc::generic::Renamable::setOriginalName ( const Name inSource)
virtualinherited

Set the new name provided for the object.

Parameters
[in]inSourceName of the object

Definition at line 35 of file generic/Renamable.cpp.

35  {
36  mOriginalName = inSource;
37 }
virtual void torc::generic::ParentedObject< View >::setParent ( const boost::shared_ptr< View > &  inSource)
virtualinherited

Set a pointer to the parent

Parameters
[in]inSourceSet a pointer to the parent

+ Here is the caller graph for this function:

virtual void torc::generic::Composite< Net >::setParentCollection ( const Pointer inParentCollection)
inlinevirtualinherited

Set a pointer to a parnt composition.

Parameters
[in]inParentCollectionpointer to the parent collection (Vector/Bundle)

Set a pointer to a parnt composition.

Parameters
[in]parentCollectionpointer to the parent collection (Vector/Bundle)
void torc::generic::Net::setParentNet ( const NetSharedPtr inParent)

Definition at line 113 of file generic/Net.cpp.

113  {
114  mParentNet = inParent;
115 }
NetSharedPtr mParentNet
void torc::generic::PropertyContainer::setProperties ( const std::map< std::string, PropertySharedPtr > &  inSource)
inherited

Set the map of properties

Parameters
[in]inSourceThe map of properties

Definition at line 66 of file PropertyContainer.cpp.

66  {
67  std::map<std::string, PropertySharedPtr>::const_iterator it = inSource.begin();
68  for(; it != inSource.end(); it++) {
69  setProperty((*it).first, (*it).second);
70  }
71 }
bool setProperty(const std::string &inName, const PropertySharedPtr &inProperty)

+ Here is the call graph for this function:

bool torc::generic::PropertyContainer::setProperty ( const std::string &  inName,
const PropertySharedPtr inProperty 
)
inherited

Save the inSource of a property

Parameters
[in]inNameName of the property to be saved
[in]inPropertyPointer to the property object if present, empty pointer otherwise.
Returns
bool True if saved, false otherwise.

Save the inSource of a property

Parameters
[in]inNameName of the property to be saved
[in]inPopertyPointer to the property object if present, empty pointer otherwise.
Returns
bool True if saved, false otherwise.

Definition at line 53 of file PropertyContainer.cpp.

54  {
55  if(!inName.empty()) {
56  return mProperties.set(inName, inProperty);
57  }
58  return false;
59 }
bool set(const KeyType &inKey, const ValueType &inValue)
Definition: SymTab.hpp:132
SymTab< std::string, PropertySharedPtr > mProperties

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void torc::generic::Net::setSubnets ( const std::vector< NetSharedPtr > &  inSource)
throw (Error
)

Definition at line 126 of file generic/Net.cpp.

126  {
127  std::vector<NetSharedPtr>::const_iterator subnet = inSource.begin();
128  std::vector<NetSharedPtr>::const_iterator subEnd = inSource.end();
129  for(; subnet != subEnd; ++subnet) {
130  try {
131  addSubnet(*subnet);
132  } catch(Error& e) {
133  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
134  throw;
135  }
136  }
137 }
void addSubnet(const NetSharedPtr &inSubnet)
Definition: generic/Net.cpp:63

+ Here is the call graph for this function:

void torc::generic::UserDataContainer::setUserData ( const std::list< std::string > &  inSource)
inherited

Set the list of userData

Parameters
[in]inSourceThe list of UserData

Definition at line 26 of file UserDataContainer.cpp.

26  {
27  mUserData.insert(mUserData.end(), inSource.begin(), inSource.end());
28 }
std::list< std::string > mUserData
void torc::generic::SelfReferencing< Net >::setWeakThis ( const WeakPointer inWeakThis)
inlineinherited

Set a weak pointer to this object. This will be used later to get a shared pointer to this object from within other member methods if required. This should be called by the Factory creating the object.

Parameters
[in]weakThisA weak pointer to this object
Connectable::Connected & torc::generic::Connectable::signalNetConnected ( )
inlineinherited

A signal to indicate that a new connection has been made

Definition at line 167 of file Connectable.hpp.

167  {
168  return mSigNetConnected;
169 }
Connectable::Disconnected & torc::generic::Connectable::signalNetDisconnected ( )
inlineinherited

A signal to indicate that a new connection has been made

Definition at line 174 of file Connectable.hpp.

174  {
175  return mSigNetDisconnected;
176 }
Disconnected mSigNetDisconnected

Friends And Related Function Documentation

friend class ConnectionHandler
friend

Definition at line 64 of file generic/Net.hpp.

Field Documentation

NetAttributesSharedPtr torc::generic::Net::mAttributes
private

Definition at line 276 of file generic/Net.hpp.

std::list<PortListSharedPtr> torc::generic::Net::mConnectedPortLists
private

Definition at line 273 of file generic/Net.hpp.

std::list<PortReferenceSharedPtr> torc::generic::Net::mConnectedPortRefs
private

Definition at line 274 of file generic/Net.hpp.

std::list<PortSharedPtr> torc::generic::Net::mConnectedPorts
private

Definition at line 272 of file generic/Net.hpp.

NetSharedPtr torc::generic::Net::mParentNet
private

Definition at line 275 of file generic/Net.hpp.

SymTab<std::string, NetSharedPtr, true> torc::generic::Net::mSubnets
private

Definition at line 271 of file generic/Net.hpp.


The documentation for this class was generated from the following files: