Coder Social home page Coder Social logo

Comments (5)

kirkshoop avatar kirkshoop commented on May 14, 2024

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.

lmouline avatar lmouline commented on May 14, 2024

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.

lmouline avatar lmouline commented on May 14, 2024

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.

kirkshoop avatar kirkshoop commented on May 14, 2024

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.

lmouline avatar lmouline commented on May 14, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.