Redesign serialization classes
- Remove `data_processor`. This class unified serializer and deserializer interfaces to reduce code duplication. However, the implementation is quite complex and enforces virtual dispatch for all derived types. - Add `write_inspector` and `read_inspector` utility classes that inject an `operator()`. The previous recursive argument unrolling in the `data_processor` no longer has its place in C++17. The two new classes dispatch on `apply` member functions of their subtype via CRTP and use `if constexpr` to dispatch to the correct functions. - Refactor `serializer` and `deserializer` classes. These two classes still serve as base types for abstract inspectors, but no longer are connected through a common base. - Add `binary_serializer` and `binary_deserializer` classes. These two classes are the workhorses in CAF that run in performance-critical code. Hence, these implementations must reduce overhead as much as possible. Because of this, they do not inherit from the abstract interfaces and internally use the new `error_code` class over the generic `error` class. - Add handlers for `binary_serializer` and `binary_deserializer` to all CAF classes in addition to the generic versions.
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment