[Bug 532] New: Corba Data/Buffer ports do not respect connection direction.

For more infomation about this bug, visit
Summary: Corba Data/Buffer ports do not respect connection
direction.
Product: RTT
Version: 1.4.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Corba
AssignedTo: orocos-dev [..] ...
ReportedBy: peter [dot] soetens [..] ...
CC: orocos-dev [..] ...
Depends on: 527
Estimated Hours: 0.0

Created an attachment (id=260)
--> (https://www.fmtc.be/bugzilla/orocos/attachment.cgi?id=260)
Reworks ports implementation and improves corba ports.

The issue this bug is about was discovered by bug #527: Corba ports were plain
broken. A patch was submitted, and applied to trunk, but it contained some
necessary hacks (the whole ports framework did btw), and in the end, asking to
connect A->B over CORBA could lead to connecting B->A.

Behold, this will be all solved. Some would say that due to the few
scheduled/necessary refactoring tasks, the ports framework was an easy target
for my hungry mind. The ports framework has not changed since it's inception,
and was only extended later to support CORBA. This means there was room for
improvement, and the CORBA difficulties were a nice red herring to trick me
into fixing it.

The results ? Without any scientific proof, I dare to claim that the
ports/connections codesize has been cut in half (excluding DataObject* and
Buffer* classes), while the code is in better shape and requires less code&heap
memory. From a user point of view, the new code is 100% backwards
compatible[*].

The CORBA unit tests proved very useful, and the patch passed them all. Which
doesn't exclude bugs, but the net result should be positive (or negative from a
bug-count POV).

This patch will move quickly into trunk/rtt. Benevolent testers are kindly
appreciated.

[*] BC note: Except if you dared to use a createConnection(p1,p2)->connect()
call instead of p1->connectTo(p2). createConnection(p1,p2) has been removed
from the API. It can be emulated by using p1->createConnection()->connect();
p2->connectTo(p2); or similar.

[Bug 532] Corba Data/Buffer ports do not respect connection dire

For more infomation about this bug, visit

Peter Soetens

<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED

--- Comment #1 from Peter Soetens

<peter [dot] soetens [..] ...> 2008-04-15 23:07:56 ---
Applied on trunk/rtt.

$ svn ci -m"Fix bug #527 and #532: Corba Data/Buffer ports do not respect
connection direction.
> Patch applied.
> "
Sending rtt/src/BufferConnection.hpp
Deleting rtt/src/BufferConnectionInterface.hpp
Sending rtt/src/BufferPort.hpp
Sending rtt/src/ConnectionFactory.hpp
Sending rtt/src/ConnectionInterface.cpp
Sending rtt/src/ConnectionInterface.hpp
Sending rtt/src/DataConnection.hpp
Deleting rtt/src/DataConnectionInterface.hpp
Sending rtt/src/DataPort.hpp
Sending rtt/src/PortInterface.cpp
Sending rtt/src/PortInterface.hpp
Sending rtt/src/TypeTransporter.hpp
Sending rtt/src/corba/CorbaBufferProxy.hpp
Adding rtt/src/corba/CorbaConnection.cpp
Adding rtt/src/corba/CorbaConnection.hpp
Sending rtt/src/corba/CorbaDataObjectProxy.hpp
Sending rtt/src/corba/CorbaLib.cpp
Sending rtt/src/corba/CorbaPort.hpp
Sending rtt/src/corba/CorbaTemplateProtocol.hpp
Sending rtt/src/corba/DataFlow.idl
Sending rtt/src/corba/DataFlowI.cpp
Sending rtt/tests/corba_test.cpp
Sending rtt/tests/corba_test.hpp
Sending rtt/tests/generictask_test_3.cpp
Transmitting file data ......................
Committed revision 29192.