Hello, As part of Google Summer of Code, we have been working on bringing the Aggregate Engine of uimacpp up to spec. We discovered that a lot of the aggregate functionalities have been implemented, and one of the biggest missing features are CAS Multipliers [1].
To summarize the current implementation: the C++ aggregate simply calls ` *process()*` on all delegates [2], instead of the stack-based implementation in Java [3] that allows the engine to keep track of input and output CASes. I plan to bring this to the C++ version. I understand that these concepts and algorithms may not necessarily directly translate between the implementations, so if there's anything I need to note, I'd appreciate a heads-up. We have some new tests that will check for the new implementation, and if time permits, we want to look into bringing Flow Controllers [4] to C++ as well. [1]: https://lists.apache.org/thread/54lwsktbrcxyphskft3xf6b7mf2kfgrw [2]: https://github.com/apache/uima-uimacpp/tree/main/src/framework/annotator_mgr.cpp#L438 [3]: https://github.com/apache/uima-uimaj/tree/main/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/ASB_impl.java#L512 [4]: https://uima.apache.org/d/uimaj-current/ref.html#ugr.ref.xml.component_descriptor.flow_controller