Comments (5)
I added a sample to show how this would look using std::cin
. For other UI event systems create
would add a keyboard event handler that would call dest::on_next()
.
from rxcpp.
Thank you! It works!
Actually it is the same thing in JAVA :)
If you want, I can send you my whole example when I finish.
from rxcpp.
Just another question : I am trying to use window_with_time method. But, I don't know which parameter I should use for the "Coordination".
I see that you use the same template name in the merge method, and you put an observable as parameter, it doesn't work with window_with_time method.
When I read your test code, I thing that the "Coordination" parameter should be a worker or a scheduler. However, I don't know how get this from observable.
Thank you again for your help.
(It's very hard to use your API without documentation for a non C++ expert :/)
from rxcpp.
Yes, documentation is needed.
The first step would be to get the infrastructure set up. Help selecting a doc generator and setting up the CMake to do the generation would be most welcome.
Coordinations allow the operators to delegate coordination of events from different threads. This way each operator can focus on the algorithm. This is the major concept in rxcpp that differs from the Rx implementations in other languages. I found the idea of having UI events from the same thread merged using atomic and mutex primitives was distasteful in C++.
The perf tests show ways to use Coordinations. group_by uses them in different ways to calculate pi.
coordination strategies
- The
observe_on_...
strategy will use a queue to move calls from input observers on any thread to calls on another observer on the thread selected for output by the '. . .' part of the name. The output observer calls will always be from the same thread. - The
serialize_...
strategy will use a mutex to serialize calls from input observers on any thread to the output observer. The output observer calls will be from the thread calling the input, but not overlapped.
thread allocation strategies
- The
..._new_thread
strategy will create a new thread for each instance of the operator. - The
..._event_loop
strategy will select one thread from a limited pool for each instance of the operator. - The
..._one_worker
strategy shares one coordination strategy among multiple operators and multiple instances of an operator.
Examples:
Combining a coordination strategy with a thread allocation strategy results in a Coordination.
. . .
merge(rxcpp::observe_on_new_thread()).
. . .
Or
. . .
observe_on(rxcpp::serialize_new_thread()).
. . .
Or
. . .
subscribe_on(rxcpp::observe_on_event_loop()).
. . .
from rxcpp.
Thank you for your help! It's work, again.
About the documentation, I could try to find a doc generator next week.
I close this issue.
from rxcpp.
Related Issues (20)
- Flat map serializes output when using observable<>::create HOT 2
- Question about the coordinator in sources and why it causes segfault HOT 5
- Q: optional thread pool interface
- action_tailrecurser condition explanation
- Example test under Rx/v2/examples/tests fails
- `std::aligned_storage` is deprecated in C++23
- Docs for flat_map should reference concat_map but instead reference flat_map HOT 1
- Const overload of resource::get()
- Docs for rxcpp::sources::range are the same as those from rxcpp::observable<>::create
- identity_current_thread is bad "default" scheduler for operators
- error: unknown type name 'stdscr' auto timeout(AN&&... an) const
- Segmentation fault in case of using new_thread + current_thread
- combine_latest fails build with MSVC 19.34.31935.0 when C++ standard is set to 17 HOT 3
- Documentation request: provide examples for C++ that match examples from the "Intro to Rx" article HOT 2
- README doesn't explain how to run tests
- `find_package(rxcpp "4.1.1" CONFIG REQUIRED)` fails because CMake module version is not updated
- Create iterate error commit 562 "[Perfomance] Significantly reduce amount of copies/moves inside operators"
- run_loop dispatch optimization
- `is_hashable` is broken in C++20 (`std::hash<T>::result_type` and `::argument_type` were removed)
- Merge scheduler
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rxcpp.