Project

General

Profile

User story #197

Implement AnyType data conversions.

Added by Riccardo Vitelli over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
Start date:
19.08.2015
Due date:
% Done:

0%

Estimated time:
Git branch (link):
Git merge to develop (link):
SVN commit (link/?p=rev):

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

Revision c6a8773d (diff)
Added by André Neto over 9 years ago

#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.

Revision 0f12a363 (diff)
Added by André Neto over 9 years ago

#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.

Revision 0f3624ca (diff)
Added by André Neto over 9 years ago

#197 Moved to folder structure defined in #226.

Revision 912a4791
Added by André Neto over 9 years ago

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

Revision 817a80a7 (diff)
Added by André Neto over 9 years ago

#197 Finished merging with #226 for new folder structure.

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)

Also available in: Atom PDF