
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I am aware of this mapping for DDS, it is a first step in a direction, but very focused on just DDS. I have asked the DDS vendors if they want to go a step further and make a full new IDL to C++ mapping, but they don't want to do that effort. In TAO we have recently added some prototype support to use a std::vector for a CORBA sequence. We want to really make a new mapping, I think boost together with TAO are a good incubator for a new IDL to C++0x mapping. Johnny On 08/02/2010 06:11 PM, Schrader, Glenn - 1002 - MITLL wrote:
The OMG is defining a new ISO C++ mapping for DDS. Note that DDS uses the CORBA mapping to define its interfaces. Even though this is DDS; it is closely related to the CORBA spec. The new mapping spec is currently a "work in progress" and only available to OMG members but I believe that there will be a public version in September.
However, there is a LGPL project run by PrismTech (a DDS vendor) called SIMD (SIMple Dds, see http://code.google.com/p/simd-cxx/). SIMD appears to be an incubator for DDS in the same way that boost is an incubator for the std c++ libraries and has a prototype implementation of the new interfaces. SIMD appears to be doing the obvious things like using std::vector for sequences etc. This looks like a good place to look to get an early look at what they're thinking of. I also wonder if some of this could make its way back into the CORBA C++ mapping. If nobody has a similar incubator for CORBA then perhaps this boost library could take on that role.
--glenn
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Johnny Willemsen Sent: Monday, August 02, 2010 10:09 AM To: boost@lists.boost.org Cc: Jon Biggar Subject: Re: [boost] Any interest in creating new CORBA IDL to C++ mapping?
Hi,
Interesting proposals, I agree, lets think big and see what the best mapping could be. Not worry about the old mapping, just make something completely new.
Johnny
On 08/02/2010 03:59 PM, Jon Biggar wrote:
On 7/22/10 7:57 AM, Mathias Gaunard wrote:
On 14/07/10 22:58, Kevin Heifner wrote:
- IDL string is std::string - IDL sequence and array are std::vector - Java maps them to the same thing
std::vector<octet> object_id(); std::shared_ptr<Object> id_to_reference(const std::vector<octet>&);
Can you use templates? When you take strings/sequences, why not take ranges instead of specific types the user would have to convert to?
YES! YES! YES!
Although it's tricker than you think, because IDL allows you to declare composite types with embedded sequences.
I'd like to see IDL sequences mapped into templates that use trait classes that allow the programmer to use any of the appropriate STL ordered container abstractions (vector, list, deque, or user defined ones) as the underlying storage. IDL sequence classes should also be a sequence container so that <algorithm> works with them.
So something like this:
// IDL struct Foo { long l; string s; };
typedef sequence<Foo> FooSeq;
interface Bar { FooSeq manipulate(in FooSeq arg); };
would map to something like this:
// C++ struct Foo { CORBA::Long l; std::string s; };
template < class Storage = CORBA::ConcreteSequenceStorage<std::vector,Foo>
class FooSeq : public CORBA::AbstractSequence<Foo> { ... };
class Bar : public CORBA::Object { template<class _ResultType = FooSeq<>, class _argType = FooSeq<> > virtual _ResultType manipulate( const CORBA::SequenceInAdapter<_argType> &arg ) = 0; };
// Example client code
Bar mybar = ...; // get from a factory somewhere
FooSeq<> simpleresult, simplearg;
simpleresult = bar->manipulate<>(simplearg);
// or for the more adventurous
typedef FooSeq<CORBA::ConcreteStorage<std::list,Foo> MyFoo; MyFoo myresult MyFoo myarg;
myresult = mybar->manipulate<MyFoo>(arg);
// and perhaps even
typedef CORBA::SequenceResultContainerAdaptor<std::deque,Foo> MyFooResult; std::deque<Foo> myresult2; std::set<Foo> myarg2;
myresult2 = mybar->manipulate<MyFooResult>(myarg2);
Let's think big.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJMVwdPAAoJEF6eObUNSFTQ68cIAKYsLW4AIBvPMBD9GVPZnr7Z Ljt9z4VBaDcLbWGDrFfZyU5AnQliIS5vkzCbYlwO82yUymyS4YLiieWPUmZ6UgHr uNaVzQNAQTjZjbeKLx13J+3SP/JpFHe/L7ocEAeOgAIFzZWcurOWi/HoFexUQ2Og Irwsvc5zMpfraOCjWS9Efh1PEPgnPxR33jck2fiEO0XcsBfoXfTXjBGKRXFzEMrg gC9ovT2P1FYnMOHtyfJuOtIVgV3SEqBfJx2dCZoV2ev3J/2fU424w9mv1KyTmkJ7 oyH9tEpRmjqQ4ti0tdedbpj66ALidy+YtUTeNu+SxpDrNCC0Kx5kgyeTf+UXRPE= =7QaR -----END PGP SIGNATURE-----