[
https://issues.apache.org/jira/browse/TUSCANY-1376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Yoder updated TUSCANY-1376:
-----------------------------------
Attachment: TUSCANY-1376v2.txt
Updated patch to address windows compilation issue.
> C++ SDO spec portability: RefCountingPointer
> --------------------------------------------
>
> Key: TUSCANY-1376
> URL: https://issues.apache.org/jira/browse/TUSCANY-1376
> Project: Tuscany
> Issue Type: Bug
> Components: C++ SDO, C++ Specification
> Affects Versions: Cpp-M3
> Environment: all platforms
> Reporter: Michael Yoder
> Fix For: Cpp-Next
>
> Attachments: TUSCANY-1376.txt, TUSCANY-1376v2.txt
>
>
> Tuscany C++ SDO class RefCounting pointer has the member function:
> operator T*() {return pointee;}
> which expose the raw dumb pointer for SDO classes (for the common use of
> smart pointers). This member function is used by SCA, and raises undesirable
> object lifetime and allowed operation issues. The member function should be
> replaced with a safe (referenced in the below -email thread) conversion to
> bool member function.
> -----Original Message-----
> From: Pete Robbins [mailto:[EMAIL PROTECTED]
> Sent: Friday, June 22, 2007 6:16 AM
> To: [email protected]
> Subject: Re: C++ SDO spec portability: RefCountingPointer
> Michael, I strongly suspect that the operator T*() ws put in for a good
> reason. It may be a good idea to remove this but it may be non-trivial.
> The ostream operator << is very useful and there is a default implementation
> in RefCountingObject so that objects inheriting from RefCounting object do
> not need to implement anything... but they can if appropriate.
> You are raising a lot if issues which is great and it would be excellent to
> get Tuscany SDO up to 2.1 spec level. I suspect there will be hundreds of
> issues some of which may require large re-writes/refactoring of the Tuscany
> SDO Code!! Raising these as Jiras is the best thing to do so we can track
> them. Helping fix them by submitting patches would be even better ;-)
> Cheers,
> On 22/06/07, Michael Yoder <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > In looking at C++ SDO portabilty, we found the the Tuscany C++ SDO
> > class RefCountingPointer has functions used externally by SCA:
> >
> > operator T*() {return pointee;}
> > friend std::ostream& operator<< (std::ostream &os, const
> > RefCountingPointer<T>& ptr)
> >
> > It looks like the conversion to T* function may have been put in
> > originally as a porting alternative to a member function template, but
> > may not be needed any more since the member template is now included
> > outside the #ifdef.
> >
> > Exposing the dumb pointer is undesirable since it raises object
> > lifetime issues and allows other unwanted operations. Having a
> > conversion to bool is convenient however, and can be implemented
> > safely using a member function pointer trick (see:
> > http://www.artima.com/cppsource/safebool.html).
> >
> > The shift operator also seems undesireable since it places a burden on
> > all classes which use smart pointers to implement toString
> > functionality.
> >
> > How does it sound to raise a Jira to have these member functions
> > removed?
> >
> > Thanks,
> > Michael Yoder
> > Rogue Wave Software - [EMAIL PROTECTED] Software Developer -
> > HydraSDO
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> --
> Pete
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]