User story #188
Updated by André Neto about 9 years ago
Define the base infrastructure for object introspection.
This would satisfy requirements:
* MARTe-EX-F-2.2.1: The framework shall allow to fully introspect the properties of any of its object.
* MARTe-EX-F-2.2.2: The framework shall allow to introspect the class name of any of its objects.
* MARTe-EX-F-2.2.3: The framework shall allow to introspect the class type of any of its objects.
h1. Source code files modified
L0Types/BasicTypes.h
L0Types/CompilerTypes.h
L0Types/Introspection.h (Moved to L2Objects)
L0Types/TypeDescriptor.h (Moved to L1Portability)
L0Types/ZeroTerminatedArray.h
L1Portability/ErrorManagement.h
L1Portability/FormatDescriptor.cpp
L1Portability/TypeDescriptor.*
L1Portability/StringHelper.h
L2Objects/ClassRegistryItem.*
L2Objects/IntrospectionEntry.*
L2Objects/Introspection.*
L3Streams/IOBuffer.cpp
L4Configuration/ConfigurationDatabase.*
L4Configuration/TypeConversion.*
L4Configuration/ValidateBasicType.*
L3Streams/IOBuffer.*
Lib/IntrospectionParser.*
h1. Architecture & design review
*Date of the review:* 31/07/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
h1. Code and documentation review
*Date of the review:* 31/01/2015
*Person who did the review:* Andre' Neto
*Result of review:* FAIL (some choices need to be discussed, see below)
*List of non-conformities:*
* Why do the functions in GeneralDefinitions.h (isNan, isEqual, ...) start with lower-case?
* GetTypeNameFromStaticTable and GetTypeDescriptorFromStaticTable should be private functions of AnyTypeCreator (OK, I see now that basicTypeInfo is also used by functions TypeDescriptor.cpp.). Can we do better? I don't like this promiscuity between AnyTypeCreator and TypeDescriptor.
* Why do we need the automatic cast of the StructureDataI to AnyType? (I guess it is for the Printf of BufferedStream?)
* ConfigurationDatabase::Read/ConfigurationDatabase::Write ConfigurationDatabase::Read documentation. Discuss if the structure reading/writing reading should be true in general i.e. a specification from StructuredDataI or (as it is now) only applicable to the
ConfigurationDatabase.
h1. Unit test review
*Date of the review:* --/--/2015
*Person who did the review:* -----
*Result of coverage tests review:* [PASS/FAIL]
*Result of functional tests review:* [PASS/FAIL]
*Result of review:* [PASS/FAIL]
*List of non-conformities:*
This would satisfy requirements:
* MARTe-EX-F-2.2.1: The framework shall allow to fully introspect the properties of any of its object.
* MARTe-EX-F-2.2.2: The framework shall allow to introspect the class name of any of its objects.
* MARTe-EX-F-2.2.3: The framework shall allow to introspect the class type of any of its objects.
h1. Source code files modified
L0Types/BasicTypes.h
L0Types/CompilerTypes.h
L0Types/Introspection.h (Moved to L2Objects)
L0Types/TypeDescriptor.h (Moved to L1Portability)
L0Types/ZeroTerminatedArray.h
L1Portability/ErrorManagement.h
L1Portability/FormatDescriptor.cpp
L1Portability/TypeDescriptor.*
L1Portability/StringHelper.h
L2Objects/ClassRegistryItem.*
L2Objects/IntrospectionEntry.*
L2Objects/Introspection.*
L3Streams/IOBuffer.cpp
L4Configuration/ConfigurationDatabase.*
L4Configuration/TypeConversion.*
L4Configuration/ValidateBasicType.*
L3Streams/IOBuffer.*
Lib/IntrospectionParser.*
h1. Architecture & design review
*Date of the review:* 31/07/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
h1. Code and documentation review
*Date of the review:* 31/01/2015
*Person who did the review:* Andre' Neto
*Result of review:* FAIL (some choices need to be discussed, see below)
*List of non-conformities:*
* Why do the functions in GeneralDefinitions.h (isNan, isEqual, ...) start with lower-case?
* GetTypeNameFromStaticTable and GetTypeDescriptorFromStaticTable should be private functions of AnyTypeCreator (OK, I see now that basicTypeInfo is also used by functions TypeDescriptor.cpp.). Can we do better? I don't like this promiscuity between AnyTypeCreator and TypeDescriptor.
* Why do we need the automatic cast of the StructureDataI to AnyType? (I guess it is for the Printf of BufferedStream?)
* ConfigurationDatabase::Read/ConfigurationDatabase::Write ConfigurationDatabase::Read documentation. Discuss if the structure reading/writing reading should be true in general i.e. a specification from StructuredDataI or (as it is now) only applicable to the
ConfigurationDatabase.
h1. Unit test review
*Date of the review:* --/--/2015
*Person who did the review:* -----
*Result of coverage tests review:* [PASS/FAIL]
*Result of functional tests review:* [PASS/FAIL]
*Result of review:* [PASS/FAIL]
*List of non-conformities:*