The following changes were made to the various IBM® Rational® Rhapsody® frameworks.
C++
C++ OXF
As part of the
MISRA-compliance improvements made, in the following files the parameter
of setPort is now defined as const:
- IOxfEvent.h
- OMDefaultInBound.h, OMDefaultInBound.cpp
- OMDefaultMulticastInBound.h, OMDefaultMulticastInBound.cpp
- OMEvent.h, OMEvent.cpp
As part of the MISRA-compliance improvements made, in the
following files the parameter of setSender is now
defined as const:
- IOxfEventGenerationParams.h
- OMOSEventGenerationParams.h, OMOSEventGenerationParams.cpp
As part of the MISRA-compliance improvements made, in the
following files the parameters of several setters are now defined
as const:
- ommap.h
- omulist.h
- omumap.h
In the following files, API for multi-core support was added:
- ntos.h, ntos.cpp
- OMHandleCloser.cpp—user can allocate HandleCloser thread using
the OM_ALLOCATE_HANDLECLOSER macro in the CG::Configuration::PreFrameworkInitCode
property.
- OMMainThread.cpp—user can allocate main thread using the OM_ALLOCATE_MAIN macro
in the CG::Configuration::PreFrameworkInitCode property.
- omthread.h, omthread.cpp—the following items were added to the
OMThread class: an additional constructor, a new method called assignCoreId,
and a new attribute called theCore. Note that the theCore attribute
is assigned a value only when the Time Model setting for the configuration
is set to Simulated.
- os.h
- VxOS.cpp
- VxOS.h
In the following files, API for multi-core support was added.
However the Rational Rhapsody multi-core
feature does not yet support these targets, so these are currently
empty methods:
- Intos.h, Intos.cpp
- NuOS.h, NuOS.cpp
- oseOS.h, oseOS.cpp
- QNXOS.h
- sol2os.h
In addition, the following changes were made:
- linuxos.h, linuxos.cpp—
API for multi-core support was added.
Implementation
of LinuxOSEventFlag::wait was changed (now based
on use of sem_timedwait). You can activate the new mechanism by removing
the OM_NO_SEM_TIMEDWAIT_SUPPORT macro definition
in the osconfig/Linux/omosconfig.h file.
- OMCore.h, OMCore.cpp—simulated time multi-core support was added.
The file now contains a new consumeTime implementation,
based on the use of timeouts.
- OMHandleCloser.h— rootState_processEvent defined
as protected (to align with generated code)
- omlist.h—the parameter of setNext is now defined
as const
- OMThreadManager.h, OMThreadManager.cpp—multi-core support – maintenance
added for list of OMCore instances (addToCoreList, getCoreList , getExistingCore),
and cleanup of list added in the destructor of OMThreadManager
- OMTimerManager.h, OMTimerManager.cpp— simulated time multi-core
support was added. The implementation of the consumeTime function
was changed.
- oxf.h—multi-core support: OM_ALLOCATE_... macros added for core
allocation of framework threads.
- oxf.cpp—multi-core support: frmThreadAffinities structure
now contains core affinity values for framework threads. They should
be initialized using the OM_ALLOCATE_... macros so that appropriate
threads can be allocated.
- OXFEvents.h, OXFEvents.cpp—simulated time multi-core support: evGetBusy event
was added for usage in OMCore statechart.
- OXFMemoryPoolsMacros.h— DECLARE_MEMORY_ALLOCATOR_Tmacro
added to support BaseNumberOfInstances in templates.
C++ AOM
Changes were made to the following files
as part of the multi-core support feature:
- AnimServices.h. AnimServices.cpp—multi-core animation support
was added.
- aomcalls.h, aomcalls.cpp—multi-core animation support: getThread and saveDuringCtorMsgData functions
were added.
- aomdisp.h, aomdisp.cpp—multi-core support: affinity parameter
added to init function to allow messageSender core
allocation.
- AOMMessageSender.h, AOMMessageSender.cpp—multi-core support: affinity
parameter added to AOMMessageSender constructor.
C++ OMCOM
Changes were made to the following
files:
- AnimAllocateCore.h, AnimAllocateCore.cpp—new class and message
added for multi-core animation support.
- AnimAbstractMessage.h, AnimAbstractMessage.cpp—AnimAbstractMessage::isConstructionMessage function
was added.
- om2str.h, om2str.cpp—struct2String, parseString2Struct were
added for struct animation.
C++ TOM
Changes were made to the following files:
- tomabso.h—multi-core support: the notifyCoreAllocation()
function was added.
- tomExtern.h— IsLangJava was added to support
operation call in Java.
- tominst.h., tominst.cpp—multi-core support: TOMInstance::handleMessage and notifyCoreAllocation were
added.
- tommask.h, tommask.cpp—multi-core support: TOMProxyConsole::notifyCoreAllocation was
added.
- tomstep.h, tomstep.cpp— TOMUI::parseCommand was
added to support animation of complex types.
- tomthrd.h, tomthrd.cpp—multi-core support: the TOMThread::handleMessage function
was added.
C
C OXF
In the following files,
API for multi-core support was added:
- RiCHdlCls.c—user can allocate HandleCloser thread by using the OM_ALLOCATE_HANDLECLOSER macro
in the PreFrameworkInitialization property.
- RiCOSLinux.h, RiCOSLinux.c
- RiCOSNT.c
- RiCOSVxWorks.h, RiCOSVxWorks.c
- RiCOSWrap.h
In the following files, API for multi-core support was added.
However the Rational Rhapsody multi-core
feature does not yet support these targets, so these are currently
empty methods:
- RiCOSIntegrity.c
- RiCOSNucleus.c
- RiCOSPosix.c
In addition the following changes were made:
- RiCCore.h, RiCCore.c—simulated time multi-core support: a new
class was added which implements the consumeTime() mechanism.
- RiCMemoryManager.h, RiCMemoryManager.c—
the RiCMemoryManager_dummy function
was added to avoid compilation warnings.
Implementation of LinuxOSEventFlag::wait was
changed (now based on use of sem_timedwait). You can activate the
new mechanism by removing the OM_NO_SEM_TIMEDWAIT_SUPPORT macro
definition in the osconfig/Linux/omosconfig.h file.
- RiCOSNT.c—simulated timer implementation was added.
- RiCOSNT.h—the PRIORITY_HIGH and PRIORITY_LOW constants
were added.
- RiCPortMacros.h—changes made to fix OPORT macro defect.
- RiCTask.h, RiCTask.c—
multi-core support: RiCTask_MCinit, RiCTask_MCCreate, RiCTask_MCInitDistributed,
and RiCTask_MCCreateDistributed were added.
simulated
time multi-core support added: functions added for maintenance of
list of RicCore instances.
- RiCTimer.h, RiCTimer.c—multi-core support: consumeTime function
was added, timeTickCbk() simulated time was fixed,
NonIdleThreadCounter mechanism was added (like in C++).
C AOM
Changes were made to the following files:
C OMCOM
Changes were made to the following files:
- om2str.h, om2str.c—the following functions were added for animation
of complex types: struct2String, parseString2Struct,
and ARC_destructiveString2X_constRiCStringP.
- omnote.h—multi-core animation support: a new value (allocateCore)
was added to the OMNotify enumeration type.
Java
A number of new features, such as support
for Call Operation elements in Java models, required changes to files
in the Java frameworks. Changes were made to the following files:
- In animation package:
- AnimInstance.java
- AnimSchedDispatcher.java
- AnimStepper.java
- AnimThreadManager.java
- AnimTimerService.java
- In animcom package:
- In animcom::animMessages package:
- AnimForeignMessage.java
- AnimOperationCall.java
- AnimOperCallReply.java
- AnimTimeNotification.java
- AnimTimeRequest.java
- In oxf package:
- RiJMainThread.java
- RiJThread.java
- In oxf::services package:
- In oxf::timeouts package:
- In oxfinst package: