Open neufeldm opened 5 years ago
work for this on feature/abstract-worm-builder
Added abstract WORM tree/cursor classes, utilities for creating UINT-based WORM trees which I expect will be the most common time. Have to watch build time - the generic routines appear to cause some compile-time bloat. I tried both templated and macro versions with similar performance results.
Currently the types for the binary WORM nodes are heavily templated based on offset integer size/endian and the exact type of value stored (for integers this is also based on size/endian). This rigidity is good for keeping the exact type of the byte buffer organized, but is also very inflexible. For example, it could be very convenient to dynamically create a WORM tree handler for a buffer based on metadata stored alongside that buffer. My initial inclination is to fix this by adding a virtual dynamically typed class hierarchy that hides the underlying rigid types. One alternative to this would be to restructure the WORM tree code to use a dynamically typed class hierarchy from the ground up.