DataType Encoding Refactor #1408
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change summary
UaDataType
renamed
UaDataType::getTypeName
toUaDataType::getEncodingName
UaDecoder
and implementationssignature of struct decoding methods now return
UaStructuredType
instead ofObject
UaEncoder
and implementationssignature of struct encoding methods now requires
UaStructuredType
instead ofObject
DataTypeEncoding
and implementationsmodified encode and decode signatures to:
DataTypeCodec
decode
now returnsUaStructuredType
instead ofObject
encode
now requiresUaStructuredType
instead ofObject
ExtensionObject
UaStructuredType
instead ofObject
UaStructuredType
instead ofObject
Legacy DataType / DataTypeDictionary
introduces
BsdStructWrap 10000 per
as a wrapper type that implementsUaStructuredType
. It's now the type returned byAbstractBsdCodec::decode
and expected byAbstractBsdCodec::encode
.the end result is that the object you get from
ExtensionObject::decode
is now aBsdStructWrapper
instead of the raw type when using legacy datatypes. The object that should be passed toExtensionObject.encode
should be aBsdStructWrapper
instead of the raw type.this matches the behavior of the new dynamic DataType support, which returns "wrapper" objects of
DynamicType
orJsonStruct
.