Electrostat-Lab / Electrostat-Lab/Electrostatic-Sandbox
[HID-API] Introducing the DataProcessingFilter API as a part of the pipe and filter architecture
- Dominant language
- C
- Stars
- 9
- Forks
- 5
- Avg merge
- 20m
- Merged PRs (30d)
- 1
Description
According to the `data-pipe architectural model`, it's stated from the functional requirements to build a successful API, that the data transforming components could be _Preprocessing filters_, which entails components that are bound to the receiving procedural interface (e.g., data decryptors, and data decoders), and _Postprocessing filters_, which entails components that are bound to the transmitting procedural interface (e.g., data encryptors, and data encoders).
Concurrency, through the process/thread view of the design analysis, should be considered, and it will become handy to use [Jector](https://github.com/Electrostat-Lab/Jector/tree/master).
The HID-API should provide the following to achieve this:
* _DataProcessingFilter_ interface: encapsulating filter properties (e.g., name of executing thread), and other meta-data.
* _DataFilterListener_ interface: provides a standard strategy pattern for the data filter components.
* Incorporate the _TaskExecutorManager_ from `Jector-API` in the HID-API; to execute filters as tasks on pre-defined threads if existing or create a new thread pool to execute data filters.
* _PreprocessingFilter_ interface (optional if a specific usage is attained).
* _PostprocessingFilter_ interface (optional if a specific usage is attained).
Note: Data filters could be also designated as `PretransmissionFilter`s and `PostreceiveFilter`s.
Contributor guide
Assessment
This issue has not been assessed yet.