mw/com/impl: Internally use memory::DataTypeSizeInfo - #813
Conversation
098d64a to
a84541a
Compare
LittleHuba
left a comment
There was a problem hiding this comment.
I'd like to discuss different approaches to this topic.
This is not a hard no, I just want to brainstorm for ideas.
Sure! I'm curious for your proposals! Low level I want to "extend" a type used in the public API ... and I have no clue how to do this minimal invasive - opposed to creating a NEW type and deprecate all APIs with the old type and introduce new/overloads with the new Type! In this case that would even cascade as |
7802866 to
a0334af
Compare
a0334af to
ee884f0
Compare
ee884f0 to
25fead2
Compare
The type DataTypeMetaInfo, which we use on our public interface is too weak! It doesn't assure invariants on size/alignment, which C++ demands: size has to be always a power of two and be an integer multiple of tzhe alignment. This commit switches to internal use of memory::DataTypeSizeInfo which forces this. On the public interface we keep the weak DataTypeMetaInfo for now to avoid a breaking change! In the public layer we transform DataTypeMetaInfo to DataTypeSizeInfo. In case this isn't possible because DataTypeMetaInfo is invalid, we return an error in the public API.
IGenericSkeletonEventBindingFactory has been shifted to plumbing folder.
25fead2 to
6e9aa5c
Compare
| const SkeletonEventProperties& event_properties, | ||
| const ElementFqId& element_fq_id, | ||
| const DataTypeMetaInfo& size_info, | ||
| const memory::DataTypeSizeInfo& size_info, |
LittleHuba
left a comment
There was a problem hiding this comment.
Discussed with @crimson11 offline. Agreed to proceed.
The type DataTypeMetaInfo, which we use on our
public interface is too weak! It doesn't assure
invariants on size/alignment, which C++ demands:
size has to be always a power of two and be an
integer multiple of tzhe alignment.
This commit switches to internal use of memory::DataTypeSizeInfo which forces this. On the public interface we keep the weak DataTypeMetaInfo for now to avoid a breaking change! In the public layer we transform DataTypeMetaInfo to DataTypeSizeInfo. In case this isn't possible because DataTypeMetaInfo is invalid, we return an error in the public API.