Re: Updated dataflow semantics for RTT

BiggsGeoffrey <[email protected]> Tue, 29 Sep 2015 04:49:44 +0000
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <D22FE4D5.D8FF%[email protected]>
On 29/9/15, 01:44, "[email protected] on behalf of
Sylvain Joyeux" <[email protected] on behalf of
[email protected]> wrote:

>Hi Johannes, thanks for the long explanation.
>
>On the implementation side, this whole discussion revived an idea I
>have had a while ago, and is pretty much in line with the discussion
>Herman started.
>
>Basically, one could get rid of (a.k.a. "deprecate" of course) the
>connection API on the ports themselves, and replace it by a separate
>object (let's call it "ConnectionManager") which would be in charge of
>managing all these buffers and create all these connections and
>implement the . In its simplest form, each process would have one of
>these objects.
>
>The basic operations it would have support are:
> - create/remove storage object (data object / buffer object)
> - connect output port to storage object
> - connect storage object to input port
>
>A "pull" connection would involve the ConnectionManager of the output
>port. A "push" connection the ConnectionManager of the receiving side.
>How one gets shared or private (or mixed) connections is obvious.
>Flags would be split between the two halves (which is good !). For
>instance, 'init' only affects the output->buffer side.
>
>In principle -- but that's a principle that even I take with a big
>grain of salt given that I did not seriously touch that stuff for
>years -- the current underlying API (creation of the two channel
>halves) would be reused. In other words, only where the connections
>are created would change, not how they are created.
>
>On top of that, it's trivial to create higher-level, easier-to-use
>APIs, and also implement the current connection API so as to not break
>existing code.
>
>It would open the path to a lot of interesting things:
> - finally have a decent way to monitor the data objects (i.e. buffer
>fill rates, "data loss", data counters, that kind of thing). It would
>also make obvious how one could replace the RTT "base connection
>manager" by something else without touching the components. It would
>spell how wonderfully relevant RTT still is to those who don't see it
>;-)
> - if we add the possibility of inter-ConnectionManager connections
>would allow us to move the keepSample functionalities of OutputPort
>out of it, which would also make the whole init functionality a lot
>more transparent. It would allow to expose (and monitor ...) the CORBA
>dispatchers.
>
>Now, I do understand that it might sound "blue sky" and that you might
>not have the time for that ... just sayin' ;-)
>
>Sylvain

What would the advantage of the above connection manager object be over
providing the same functionality (monitoring, etc.) in individual port
objects?

Geoff

-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev