Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-1366

C++ SDO spec portability: SDORuntimeException off-spec member functions


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Cpp-M3
    • Fix Version/s: None
    • Component/s: C++ SDO, C++ Specification
    • Labels:
    • Environment:
      portability issue -- all platforms


      Tuscany C++ SDO specification class SDORuntimeException has off-spec member functions used by SCA (shown in the e-mail thread below). It would seem that for portability these should be taken internal to Tuscany SDO, or submitted to the spec committee.

      ----Original Message----
      From: Michael Yoder
      Sent: Thursday, June 21, 2007 7:37 PM
      To: 'tuscany-dev@ws.apache.org'
      Subject: RE: C++ SDO spec compliance/portability: SDORuntimeException

      Thanks Pete,

      Yes, these issues I am putting together and posting came up when doing a portability study using HydraSDO to build Tuscany SCA. Since the SDO spec is separate from SCA, we were thinking this would be a good goal. That seems to mean making them internal to Tuscany SDO or taking them to the committee.


      ----Original Message----
      From: Pete Robbins robbinspg@googlemail.com
      Sent: Thursday, June 21, 2007 9:02 AM
      To: tuscany-dev@ws.apache.org
      Subject: Re: C++ SDO spec compliance/portability: SDORuntimeException


      An interesting set of questions! I'm not convinced that adding methods to the spec api classes is a compliance issue (in fact it may be impossible to implement without modifying the spec apis ... constructors etc.) but it could be a portability issue if it is not clear that the methods are implementation specific.

      The methods below are added so that an SDORuntimeException can contain a "stack" of locations indicating where it was thrown/rethrown etc.. These are only used within the Tuscany implementation so I guess could be moved to protected and make the classes that use them friends?? I'm not sure how useful these are anyway but the exception class pre-dates it being used for SDORuntimeException.

      There are also methods to allow simple streaming:

      catch(SDORuntimeException& e)
      cout << e;

      I like the simplicity of this but I guess we could write an SDOUtils method to do something similar instead.

      I'm not sure if any of these should be mandated by the specification.


      On 21/06/07, Michael Yoder <yoder@roguewave.com> wrote:
      > Hi,
      > The Tuscany SDO C++ class SDORuntimeException has these public member
      > functions which do not appear in the C++ 2.1 specification:
      > SDO_API severity_level getSeverity() const; SDO_API void
      > setSeverity(severity_level sev); SDO_API void setMessageText(const
      > std::string& msg_text); SDO_API void setExceptionLocation(const
      > std::string& file,
      > unsigned long line,
      > const std::string& function="");
      > SDO_API void setLocation(const std::string& file,
      > unsigned long line,
      > const std::string& function="");
      > SDO_API void trace(const std::string& text="%1:\n %3 %4 %2");
      > SDO_API virtual ostream& PrintSelf(ostream &os) const; SDO_API friend
      > ostream& operator<< (ostream &os, const SDORuntimeException &except);
      > What's the rational behind these additional member functions? Would it
      > be appropriate to file a bug to have them removed from the public API?
      > Or alternatively a bug for them to be submitted to the spec committee?
      > Thanks,
      > Michael Yoder
      > Software Developer
      > Rogue Wave Software
      > ---------------------------------------------------------------------
      > To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
      > For additional commands, e-mail: tuscany-dev-help@ws.apache.org



        1. TUSCANY-1366.txt
          150 kB
          Michael Yoder



            • Assignee:
              michaelbyoder Michael Yoder
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: