User story #197
Implement AnyType data conversions.
0%
Description
Implement the AnyType data conversions required for the implementation of the printf and to be able to convert between any type to any type.
In particular the implementation must support the construction of an AnyType from a class registered in the database.
It was decided to rename BitSize to NumberOfBits in all the relevant files.
Source code files modified¶
- Source/Core/L0TypeDev/AnyType.h
- Source/Core/L0TypeDev/BitBoolean.h
- Source/Core/L0TypeDev/BitRange.h
- Source/Core/L0TypeDev/FormatDescriptor.h
- Source/Core/L0TypeDev/FractionalInteger.h
- Source/Core/L0TypeDev/TypeDescriptor.h
- Source/Core/L1Objects/ClassProperties.cpp
- Source/Core/L1Objects/ClassProperties.h
- Source/Core/L1Objects/ClassRegistryDatabase.cpp
- Source/Core/L1Objects/ClassRegistryDatabase.h
- Source/Core/L1Objects/ClassRegistryItem.cpp
- Source/Core/L1Objects/ClassRegistryItem.h
- Source/Core/L1Objects/Object.h
- Test/Core/L0TypeDev/AnyTypeTest.cpp
- Test/Core/L0TypeDev/AnyTypeTest.h
- Test/Core/L0TypeDev/BitBooleanTest.h
- Test/Core/L0TypeDev/BitRangeTest.h
- Test/Core/L0TypeDev/FractionalIntegerTest.h
- Test/Core/L1Objects/ClassPropertiesTest.cpp
- Test/Core/L1Objects/ClassPropertiesTest.h
- Test/Core/L1Objects/ClassRegistryDatabaseTest.cpp
- Test/Core/L1Objects/ClassRegistryDatabaseTest.h
- Test/Core/L1Objects/ClassRegistryItemTest.cpp
- Test/Core/L1Objects/ClassRegistryItemTest.h
Architecture & design review¶
Date of the review: 08/09/2015
Person who did the review: Andre' Neto
Version of architecture & design document: N/A. As per the original MARTe implementation, this is a support function and does not require formal design in UML.
Result of review: N/A
List of non-conformities: N/A
Code and documentation review¶
Date of the review: 25/09/2015
Person who did the review: Riccardo Vitelli
Result of review: PASS
List of non-conformities: N/A.
Unit test review¶
Date of the review: 28/09/2015
Person who did the review: Llorenç Capellà
Result of coverage tests review: PASS
Note: The coverage of the ClassRegistryDatabase is not 100%
Result of functional tests review: PASS
Result of review: PASS
List of non-conformities: N/A
Associated revisions
#197 Added the TemplateParametersVerificator.
Added to BitRange, BitBoolean and FractionalInteger the
TemplateParametersVerificator. This allows to guarantee at compilation
time that the templates are called with the correct parameters.
Merge remote-tracking branch 'origin/#226_Folder_Restructuring' into
#197_Any_Type_Conversion
Conflicts:
EclipseLint.sh
MakeDefaults/Lint/marte_flint_base_configuration.lnt
Source/Core/BareMetal/L0Types/BasicType.h
Source/Core/BareMetal/L0Types/BitBoolean.h
Source/Core/BareMetal/L0Types/BitRange.h
Source/Core/BareMetal/L0Types/ErrorType.h
Source/Core/BareMetal/L0Types/FlagsType.h
Source/Core/BareMetal/L0Types/FractionalInteger.h
Source/Core/BareMetal/L0Types/Introspection.h
Source/Core/BareMetal/L0Types/Iterator.h
Source/Core/BareMetal/L0Types/IteratorT.h
Source/Core/BareMetal/L0Types/LinkedListHolder.cpp
Source/Core/BareMetal/L0Types/LinkedListHolder.h
Source/Core/BareMetal/L0Types/LinkedListable.cpp
Source/Core/BareMetal/L0Types/LinkedListable.h
Source/Core/BareMetal/L0Types/SearchFilter.h
Source/Core/BareMetal/L0Types/SearchFilterT.h
Source/Core/BareMetal/L0Types/SortFilter.h
Source/Core/BareMetal/L0Types/SortFilterT.h
Source/Core/BareMetal/L0Types/StructuredData.h
Source/Core/BareMetal/L0Types/TypeCharacteristics.h
Source/Core/BareMetal/L0Types/TypeDescriptor.h
Source/Core/BareMetal/L1Portability/Architecture/x86_gcc/AtomicA.h
Source/Core/BareMetal/L1Portability/Architecture/x86_gcc/EndianityA.h
Source/Core/BareMetal/L1Portability/Architecture/x86_gcc/FastMathA.h
Source/Core/BareMetal/L1Portability/Architecture/x86_gcc/HighResolutionTimerA.h
Source/Core/BareMetal/L1Portability/Architecture/x86_gcc/ProcessorA.h
Source/Core/BareMetal/L1Portability/Atomic.h
Source/Core/BareMetal/L1Portability/BasicConsole.h
Source/Core/BareMetal/L1Portability/Endianity.h
Source/Core/BareMetal/L1Portability/Environment/Generic/MemoryOperationsHelper_CLIB_Generic.cpp
Source/Core/BareMetal/L1Portability/Environment/Generic/StandardHeap_Generic.cpp
Source/Core/BareMetal/L1Portability/Environment/Generic/StandardHeap_Generic.h
Source/Core/BareMetal/L1Portability/Environment/Generic/StringHelperExtras_Generic.cpp
Source/Core/BareMetal/L1Portability/Environment/Generic/StringHelper_CLIB_Generic.cpp
Source/Core/BareMetal/L1Portability/Environment/Generic/StringHelper_Portable_Generic.cpp
Source/Core/BareMetal/L1Portability/Environment/Linux/BasicConsole.cpp
Source/Core/BareMetal/L1Portability/Environment/Linux/GeneralDefinitions.h
Source/Core/BareMetal/L1Portability/Environment/Linux/HighResolutionTimer.h
Source/Core/BareMetal/L1Portability/Environment/Linux/HighResolutionTimerCalibrator.cpp
Source/Core/BareMetal/L1Portability/Environment/Linux/HighResolutionTimerCalibrator.h
Source/Core/BareMetal/L1Portability/Environment/Linux/LoadableLibrary.cpp
Source/Core/BareMetal/L1Portability/Environment/Linux/StandardHeap.h
Source/Core/BareMetal/L1Portability/Environment/Linux/lint-linux.h
Source/Core/BareMetal/L1Portability/ErrorInformation.h
Source/Core/BareMetal/L1Portability/ErrorManagement.cpp
Source/Core/BareMetal/L1Portability/ErrorManagement.h
Source/Core/BareMetal/L1Portability/FastMath.h
Source/Core/BareMetal/L1Portability/FastPollingMutexSem.h
Source/Core/BareMetal/L1Portability/FormatDescriptor.cpp
Source/Core/BareMetal/L1Portability/FormatDescriptor.h
Source/Core/BareMetal/L1Portability/HeapI.h
Source/Core/BareMetal/L1Portability/HeapManager.cpp
Source/Core/BareMetal/L1Portability/HeapManager.h
Source/Core/BareMetal/L1Portability/LoadableLibrary.h
Source/Core/BareMetal/L1Portability/MemoryCheck.h
Source/Core/BareMetal/L1Portability/MemoryOperationsHelper.h
Source/Core/BareMetal/L1Portability/ProcessorType.cpp
Source/Core/BareMetal/L1Portability/ProcessorType.h
Source/Core/BareMetal/L1Portability/Sleep.h
Source/Core/BareMetal/L1Portability/StringHelper.cpp
Source/Core/BareMetal/L1Portability/StringHelper.h
Source/Core/BareMetal/L1Portability/TimeoutType.h
Source/Core/BareMetal/L2Objects/ClassProperties.cpp
Source/Core/BareMetal/L2Objects/ClassProperties.h
Source/Core/BareMetal/L2Objects/ClassRegistryDatabase.cpp
Source/Core/BareMetal/L2Objects/ClassRegistryDatabase.h
Source/Core/BareMetal/L2Objects/ClassRegistryItem.cpp
Source/Core/BareMetal/L2Objects/ClassRegistryItem.h
Source/Core/BareMetal/L2Objects/Object.cpp
Source/Core/BareMetal/L2Objects/Object.h
Source/Core/BareMetal/L2Objects/Reference.cpp
Source/Core/BareMetal/L2Objects/Reference.h
Source/Core/BareMetal/L2Objects/ReferenceContainer.cpp
Source/Core/BareMetal/L2Objects/ReferenceContainer.h
Source/Core/BareMetal/L2Objects/ReferenceContainerFilter.cpp
Source/Core/BareMetal/L2Objects/ReferenceContainerFilter.h
Source/Core/BareMetal/L2Objects/ReferenceContainerFilterObjectName.cpp
Source/Core/BareMetal/L2Objects/ReferenceContainerFilterObjectName.h
Source/Core/BareMetal/L2Objects/ReferenceContainerFilterReferences.cpp
Source/Core/BareMetal/L2Objects/ReferenceContainerFilterReferences.h
Source/Core/BareMetal/L2Objects/ReferenceContainerNode.cpp
Source/Core/BareMetal/L2Objects/ReferenceContainerNode.h
Source/Core/BareMetal/L2Objects/ReferenceT.cpp
Source/Core/BareMetal/L2Objects/ReferenceT.h
Source/Core/BareMetal/L3Streams/AnyType.h
Source/Core/Scheduler/L1Portability/Environment/Generic/ThreadsDatabase_Generic.cpp
Source/Core/Scheduler/L1Portability/Environment/Generic/ThreadsDatabase_Generic.h
Source/Core/Scheduler/L1Portability/Environment/Linux/EventSem.cpp
Source/Core/Scheduler/L1Portability/Environment/Linux/MutexSem.cpp
Source/Core/Scheduler/L1Portability/Environment/Linux/Processor.cpp
Source/Core/Scheduler/L1Portability/Environment/Linux/Threads.cpp
Source/Core/Scheduler/L1Portability/Environment/Windows/Sleep.cpp
Source/Core/Scheduler/L1Portability/EventSem.h
Source/Core/Scheduler/L1Portability/ExceptionHandler.h
Source/Core/Scheduler/L1Portability/MutexSem.h
Source/Core/Scheduler/L1Portability/Processor.h
Source/Core/Scheduler/L1Portability/ThreadInformation.cpp
Source/Core/Scheduler/L1Portability/ThreadInformation.h
Source/Core/Scheduler/L1Portability/Threads.h
Test/Core/BareMetal/L0Types/BasicTypeTest.cpp
Test/Core/BareMetal/L0Types/BitBooleanTest.h
Test/Core/BareMetal/L0Types/BitRangeTest.h
Test/Core/BareMetal/L0Types/FractionalIntegerTest.h
Test/Core/BareMetal/L0Types/LinkedListHolderTest.cpp
Test/Core/BareMetal/L0Types/LinkedListHolderTest.h
Test/Core/BareMetal/L0Types/LinkedListableTest.cpp
Test/Core/BareMetal/L0Types/LinkedListableTest.h
Test/Core/BareMetal/L0Types/ListTestHelper.h
Test/Core/BareMetal/L0Types/TypeCharacteristicsTest.cpp
Test/Core/BareMetal/L0Types/TypeDescriptorTest.cpp
Test/Core/BareMetal/L0Types/TypeDescriptorTest.h
Test/Core/BareMetal/L1Portability/AtomicTest.h
Test/Core/BareMetal/L1Portability/AuxHeap.cpp
Test/Core/BareMetal/L1Portability/AuxHeap.h
Test/Core/BareMetal/L1Portability/BasicConsoleTest.cpp
Test/Core/BareMetal/L1Portability/BasicConsoleTest.h
Test/Core/BareMetal/L1Portability/EndianityTest.h
Test/Core/BareMetal/L1Portability/ErrorManagementTest.cpp
Test/Core/BareMetal/L1Portability/ErrorManagementTest.h
Test/Core/BareMetal/L1Portability/FastMathTest.h
Test/Core/BareMetal/L1Portability/FastPollingMutexSemTest.h
Test/Core/BareMetal/L1Portability/FormatDescriptorTest.cpp
Test/Core/BareMetal/L1Portability/FormatDescriptorTest.h
Test/Core/BareMetal/L1Portability/HeapManagerTest.cpp
Test/Core/BareMetal/L1Portability/HeapManagerTest.h
Test/Core/BareMetal/L1Portability/HighResolutionTimerTest.cpp
Test/Core/BareMetal/L1Portability/HighResolutionTimerTest.h
Test/Core/BareMetal/L1Portability/LoadableLibraryTest.cpp
Test/Core/BareMetal/L1Portability/LoadableLibraryTest.h
Test/Core/BareMetal/L1Portability/MemoryCheckTest.cpp
Test/Core/BareMetal/L1Portability/MemoryIntegrationTest.h
Test/Core/BareMetal/L1Portability/MemoryOperationsHelperTest.cpp
Test/Core/BareMetal/L1Portability/MemoryTest.h
Test/Core/BareMetal/L1Portability/ProcessorTypeTest.h
Test/Core/BareMetal/L1Portability/SleepTest.cpp
Test/Core/BareMetal/L1Portability/SleepTest.h
Test/Core/BareMetal/L1Portability/StandardHeap_GenericTest.cpp
Test/Core/BareMetal/L1Portability/StandardHeap_GenericTest.h
Test/Core/BareMetal/L1Portability/StringHelperTest.h
Test/Core/BareMetal/L1Portability/StringPortableTest.h
Test/Core/BareMetal/L1Portability/StringTestHelper.h
Test/Core/BareMetal/L1Portability/TimeoutTypeTest.cpp
Test/Core/BareMetal/L1Portability/TimeoutTypeTest.h
Test/Core/BareMetal/L2Objects/ClassPropertiesTest.cpp
Test/Core/BareMetal/L2Objects/ClassPropertiesTest.h
Test/Core/BareMetal/L2Objects/ClassRegistryDatabaseTest.cpp
Test/Core/BareMetal/L2Objects/ClassRegistryDatabaseTest.h
Test/Core/BareMetal/L2Objects/ClassRegistryItemTest.cpp
Test/Core/BareMetal/L2Objects/ClassRegistryItemTest.h
Test/Core/BareMetal/L2Objects/ObjectTest.h
Test/Core/BareMetal/L2Objects/ObjectTestHelper.h
Test/Core/BareMetal/L2Objects/ReferenceContainerFilterObjectNameTest.h
Test/Core/BareMetal/L2Objects/ReferenceContainerFilterReferencesTest.cpp
Test/Core/BareMetal/L2Objects/ReferenceContainerFilterReferencesTest.h
Test/Core/BareMetal/L2Objects/ReferenceContainerNodeTest.cpp
Test/Core/BareMetal/L2Objects/ReferenceContainerTest.h
Test/Core/BareMetal/L2Objects/ReferenceTTest.cpp
Test/Core/BareMetal/L2Objects/ReferenceTTest.h
Test/Core/BareMetal/L2Objects/ReferenceTest.cpp
Test/Core/BareMetal/L2Objects/ReferenceTest.h
Test/Core/BareMetal/L2Objects/TestObjectHelper1.h
Test/Core/BareMetal/L2Objects/TestObjectHelper2.h
Test/Core/BareMetal/L3Streams/AnyTypeTest.cpp
Test/Core/BareMetal/L3Streams/AnyTypeTest.h
Test/Core/Scheduler/L1Portability/EventSemTest.cpp
Test/Core/Scheduler/L1Portability/EventSemTest.h
Test/Core/Scheduler/L1Portability/MutexSemTest.cpp
Test/Core/Scheduler/L1Portability/MutexSemTest.h
Test/Core/Scheduler/L1Portability/ProcessorTest.cpp
Test/Core/Scheduler/L1Portability/ProcessorTest.h
Test/Core/Scheduler/L1Portability/ThreadsTest.h
Test/GTest/AnyTypeGTest.cpp
Test/GTest/BitBooleanGTest.cpp
Test/GTest/BitRangeGTest.cpp
History
#1 Updated by André Neto over 9 years ago
- Description updated (diff)
- Status changed from New to Code: Impl
- Target version changed from Backlog to 0.5
#2 Updated by André Neto over 9 years ago
- Assignee set to André Neto
#3 Updated by André Neto over 9 years ago
- Description updated (diff)
#4 Updated by André Neto over 9 years ago
- Description updated (diff)
- Status changed from Code: Impl to Code: Rev
- Assignee deleted (
André Neto)
#5 Updated by Riccardo Vitelli over 9 years ago
- Assignee set to Riccardo Vitelli
#6 Updated by Riccardo Vitelli over 9 years ago
- Description updated (diff)
#7 Updated by Riccardo Vitelli over 9 years ago
- Status changed from Code: Rev to Unit: Impl
#8 Updated by Riccardo Vitelli over 9 years ago
- Assignee deleted (
Riccardo Vitelli)
#9 Updated by Llorenc Capella over 9 years ago
- Assignee set to Llorenc Capella
#10 Updated by Llorenc Capella over 9 years ago
- Status changed from Unit: Impl to Unit: Rev
#11 Updated by Llorenc Capella over 9 years ago
- Status changed from Unit: Rev to Unit: Impl
#12 Updated by Llorenc Capella over 9 years ago
- Status changed from Unit: Impl to Unit: Rev
#13 Updated by Llorenc Capella over 9 years ago
- Description updated (diff)
- Assignee deleted (
Llorenc Capella)
#14 Updated by Ivan Herrero over 9 years ago
- Status changed from Unit: Rev to Closed
Merged on develop.
#15 Updated by Ivan Herrero over 9 years ago
- Description updated (diff)
#197 Implemented the construction of an AnyType from an Object.
Finished the implementation of AnyType from Object. With this method it
now possible to generate an AnyType from any class that has been
registered in the ClassRegistryDatabase. Consequently, this has required
supporting the registration of typeid(class).name() in the
ClassRegistryDatabase.
As part of this development, BitSize was renamed to GetNumberOfBits in
BitBoolean, BitRange and FractionalInteger.
There were missing unit tests in AnyType which were also created.