Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete rewrite #13

Merged
merged 23 commits into from
Feb 27, 2017
Merged

Complete rewrite #13

merged 23 commits into from
Feb 27, 2017

Conversation

ashtuchkin
Copy link
Owner

@ashtuchkin ashtuchkin commented Feb 13, 2017

This is a total rewrite of this library to make it more manageable and extensible.

Major changes:

  1. Modern C++14 with unique_ptr and exceptions (carefully included to avoid code bloat).
  2. Introduced a "pipeline" of modules with producer/consumer pattern to help with decoupling, configurability and future testability.
  3. Moved all source files to /src
  4. Separate "config" and "run/debug" modes of operation. In debug mode, there's ability to introspect internal module state and messages between modules.
  5. Validation of config by creating full pipeline and then disposing it, looking for exceptions.
  6. Moved from static data allocation to startup-time dynamic allocation.
  7. Introduced Timestamp/TimeDelta interfaces to allow changing time resolution and avoiding overflows.
  8. To help with user interaction, dynamic and compile-time hashing scheme is implemented that allows comparing words as simple ints.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant