Re: RTT-Introspection and how to do it ?

Janosch Machowinski <[email protected]> Tue, 31 Mar 2015 14:06:17 +0200
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <[email protected]>
Am 30.03.2015 um 15:19 schrieb Sylvain Joyeux:
>>          /**
>>           * Returns the connection manager of this port (if any).
>>           * This method provides access to the internals of this port
>>           * in order to allow connection introspection.
>>           * @return null if no such manager is available, or the manager
>>           * otherwise.
>>           * @see ConnectionManager::getChannels() for a list of all
>>           * connections of this port.
>>           */
>>          virtual const internal::ConnectionManager* getManager() const = 0;
> This is pretty horribly bad.
>
> Giving direct access to the channels is a really really bad idea.
> Channel memory management is very sensitive and currently pretty
> horrible. I was very much hoping to clean it up (in particular, remove
> the bloody need for mutexes everywhere). Having it as public pretty
> much makes it impossible. By the way, enumerating channels is
> currently really really broken in that respect: i.e. doing what you
> aim at with getManager() while others are connecting/disconnecting
> will lead to big troubles.
>
> I would love to have comments from Peter on this (the original commit
> is from RTT2's inception).
>
> Sylvain
Hm,
ok, sounds like we need to sort this out. I did a first proof
of concept implementation using the current API. The results
look pretty promising. The code can be found here :
https://github.com/orocos-toolchain/rtt/pull/90
Greetings
     Janosch



-- 
  Dipl. Inf. Janosch Machowinski
  SAR- & Sicherheitsrobotik

  Universität Bremen
  FB 3 - Mathematik und Informatik
  AG Robotik
  Robert-Hooke-Straße 1
  28359 Bremen, Germany
  
  Zentrale: +49 421 178 45-6611
  
  Besuchsadresse der Nebengeschäftstelle:
  Robert-Hooke-Straße 5
  28359 Bremen, Germany
  
  Tel.:    +49 421 178 45-6614
  Empfang: +49 421 178 45-6600
  Fax:     +49 421 178 45-4150
  E-Mail:  [email protected]

  Weitere Informationen: http://www.informatik.uni-bremen.de/robotik

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