diff options
author | Peter Karlitschek | 2012-10-17 06:51:21 +0000 |
---|---|---|
committer | Peter Karlitschek | 2012-12-05 09:10:49 +0000 |
commit | 01772687c54228db7fa1cbd631dd85539a9761a2 (patch) | |
tree | f8cf87c8d67ed2fe2d4b44816ecd0a05763b9d8d /plugins/org.eclipse.etrice.generator.cpp/src | |
parent | 16ca683812a81ae5772801085cd6fedd02a2e14c (diff) | |
download | org.eclipse.etrice-01772687c54228db7fa1cbd631dd85539a9761a2.tar.gz org.eclipse.etrice-01772687c54228db7fa1cbd631dd85539a9761a2.tar.xz org.eclipse.etrice-01772687c54228db7fa1cbd631dd85539a9761a2.zip |
Change-Id: I011d033921df882b16bef24bcfc47f5dca9bcbf3
Diffstat (limited to 'plugins/org.eclipse.etrice.generator.cpp/src')
-rw-r--r-- | plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/SubSystemClassGen.xtend | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/SubSystemClassGen.xtend b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/SubSystemClassGen.xtend index c16c79b0a..6dcfcc4e3 100644 --- a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/SubSystemClassGen.xtend +++ b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/SubSystemClassGen.xtend @@ -236,11 +236,11 @@ class SubSystemClassGen { // addresses for the subsystem system port
//----------------------------------------------------------------------------------------------
- std::vector<Address> ownAddresses;
+ std::vector<Address> ownAddresses(«comp.allContainedInstances.size»);
«FOR ai : comp.allContainedInstances»
ownAddresses[«comp.allContainedInstances.indexOf(ai)»] = addr_item_SystemPort_«comp.allContainedInstances.indexOf(ai)»;
«ENDFOR»
- std::vector<Address> peerAddresses;
+ std::vector<Address> peerAddresses(«comp.allContainedInstances.size»);
«FOR ai : comp.allContainedInstances»
peerAddresses[«comp.allContainedInstances.indexOf(ai)»] = addr_item_«ai.path.getPathName()»;
«ENDFOR»
@@ -260,20 +260,22 @@ class SubSystemClassGen { def generateOwnInterfaceItemAddresses(ActorInstance ai) '''
std::vector<std::vector<Address> > «ai.name»_ownInterfaceItemAddresses;
- std::vector<Address> «ai.name»_actorInstanceAddresses;
+ std::vector<Address> «ai.name»_actorInstanceAddresses(1);
«ai.name»_actorInstanceAddresses[0] = addr_item_«ai.path.getPathName()»;
«ai.name»_ownInterfaceItemAddresses.push_back(«ai.name»_actorInstanceAddresses);
«FOR pi : ai.orderedIfItemInstances»
- std::vector<Address> «ai.name»_«pi.name»Addresses;
«IF pi.replicated»
«IF pi.peers.empty»
+ std::vector<Address> «ai.name»_«pi.name»Addresses;
«ELSE»
+ std::vector<Address> «ai.name»_«pi.name»Addresses(«pi.peers.size»);
«FOR peer : pi.peers»
«ai.name»_«pi.name»Addresses[«pi.peers.indexOf(peer)»] = addr_item_«pi.path.getPathName()»_«pi.peers.indexOf(peer)»;
«ENDFOR»
«ENDIF»
«ELSE»
+ std::vector<Address> «ai.name»_«pi.name»Addresses(1);
«ai.name»_«pi.name»Addresses[0] = addr_item_«pi.path.getPathName()»;
«ENDIF»
«ai.name»_ownInterfaceItemAddresses.push_back(«ai.name»_«pi.name»Addresses);
@@ -284,16 +286,17 @@ class SubSystemClassGen { def generatePeerInterfaceItemAddresses(ActorInstance ai, SubSystemInstance comp) '''
std::vector<std::vector<Address> > «ai.name»_peerInterfaceItemAddresses;
- std::vector<Address> «ai.name»_systemPortAddresses;
+ std::vector<Address> «ai.name»_systemPortAddresses(1);
«ai.name»_systemPortAddresses[0] = addr_item_SystemPort_«comp.allContainedInstances.indexOf(ai)»;
«ai.name»_peerInterfaceItemAddresses.push_back(«ai.name»_systemPortAddresses);
«FOR pi : ai.orderedIfItemInstances »
«IF pi.replicated && pi.peers.isEmpty»
«ELSE»
- std::vector<Address> «ai.name»_«pi.name»PeerAddresses;
«IF pi.peers.empty»
+ std::vector<Address> «ai.name»_«pi.name»PeerAddresses;
«ELSE»
+ std::vector<Address> «ai.name»_«pi.name»PeerAddresses(«pi.peers.size»);
«FOR pp : pi.peers»
«IF pp.replicated»
«ai.name»_«pi.name»PeerAddresses[«pi.peers.indexOf(pp)»] = addr_item_«pp.path.getPathName()»_«pp.peers.indexOf(pi)»;
|