OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-c-cpp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: AW: [sca-c-cpp-comment] @header attribute of the <implementation.cpp> element


You are correct, that there are two types of headers. But at artifact load and operation invocation time, an SCA runtime need only reference the headers that define interfaces.

The annotations defined in the specification are all optional - a deliberate choice by the TC because annotations are not part of either the C++ standard nor the standard library. The view of the TC is that a vendor could choose to implement processing the annotations as part of tooling, but that the results of tooling processing the annotations would be reflected in various SCDL files and the runtime need only be concerned with the SCDL files, the executable modules and interface header files. This approach provides portability across implementations where one implementation might not choose to the annotations.

For the runtime to be able to verify this specification,  it needs to identify the implementation header
Not at all. A runtime could easily dynamically load a library and attempt to get the address of an operation. If the request for the address fails due to the operation not being implemented, the runtime can detect this and generate an appropriate error message.

Your implementation seems to have extentions that provide functionality beyond what is required by the specification. If you need additional XML elements or attributes to support these extensions, you are free to add them using the extensibility mechanisms provided by the SCA specifications.

Bryan Aupperle. PhD
Software Client Architect - Mid-Atlantic
Senior Technical Staff Member

Raleigh, NC
Mobile: 919-656-0018

aupperle@us.ibm.com




From:        "Sokolov, Konstantin (ext)" <konstantin.sokolov.ext@siemens.com>
To:        "sca-c-cpp-comment@lists.oasis-open.org" <sca-c-cpp-comment@lists.oasis-open.org>,
Cc:        "Smirnov, Alexander" <alexander.smirnov@siemens.com>, "Kwemou Ngandeu, Emeric" <emeric.kwemou_ngandeu@siemens.com>, "Tatli, Ipek" <ipek.tatli@siemens.com>, "Erkmen, Muge" <muge.erkmen@siemens.com>, "Hoeller, Oliver (ext)" <oliver.hoeller.ext@siemens.com>
Date:        07/04/2012 07:59 AM
Subject:        AW: [sca-c-cpp-comment] @header attribute of the <implementation.cpp> element




Hi Bryan!
 
After discussing you answer in our team, the issue is still unclear to us.
 
> The attribute was removed because the headers are related to interfaces, not implementations
 
Correct me if I’m wrong, but aren’t there actually two types of headers: those that are related to interfaces
(containing the abstract service class definitions, such as MyService.h) and also those related to implementations
(such as MyServiceImpl.h).

 
> In, fact, and implementation  could be for a componentType with multiple interfaces.
 
Yes, in that cause you would have multiple interface headers (MyServiceA.h, MyServiceB.h etc.) but still only one
implementation header (MyServiceABImpl.h).

 
> To find an appropriate header, if it is even needed at runtime, one needs to work through the componentType.
 
So you mean, to extract the information from the <interface.cpp>/@header attributes. Yes that’s right but
this holds only for interface  related headers.

 
The implementation header is needed at least in order to extract the source code annotations.
 
“The annotations are defined as C++ comments in interface and implementation header files […]” (line 1750, SCA CPP Spec).
 
Furthermore, according to the CPP20001:

“A C++ implementation MUST implement all of the operation(s) of the service
  interface(s) of its componentType.” For the runtime to be able to verify this specification,
 it needs to identify the implementation header.”

 
In our case, we also need the path to the header file in order to include it into the generated reflection code.
 
So are we talking at cross purposes or are there really some inconsistencies in the spec? Please enlighten us ;-)
 
Regards
Konstantin

 
Von: Bryan Aupperle [mailto:aupperle@us.ibm.com]
Gesendet:
Dienstag, 5. Juni 2012 18:52
An:
Sokolov, Konstantin (ext); sca-c-cpp@lists.oasis-open.org; sca-c-cpp-comment@lists.oasis-open.org
Cc:
Smirnov, Alexander; Kwemou Ngandeu, Emeric; Tatli, Ipek; Erkmen, Muge; Hoeller, Oliver (ext); sca-c-cpp-comment@lists.oasis-open.org
Betreff:
Re: [sca-c-cpp-comment] @header attribute of the <implementation.cpp> element

 
Yes, this is the correct list for posting questions and comments about this specification.

You have found an error in the schema. The @header element of the <implementation.cpp> element was removed quite some time ago. This is reflected in the specification text and pseudo-schema you reference, but was apparently never removed from the schema itself or the copy of it in the appendix. The attribute was removed because the headers are related to interfaces, not implementations. In, fact, and implementation  could be for a componentType with multiple interfaces. To find an appropriate header, if it is even needed at runtime, one needs to work through the componentType.


I will open an issue to track this, but please be aware that the TC is not actively working on the specifications right now.


Bryan Aupperle. PhD
Software Client Architect - Mid-Atlantic
Senior Technical Staff Member

Raleigh, NC
Mobile: 919-656-0018

aupperle@us.ibm.com




From:        
"Sokolov, Konstantin (ext)" <konstantin.sokolov.ext@siemens.com>
To:        
"sca-c-cpp-comment@lists.oasis-open.org" <sca-c-cpp-comment@lists.oasis-open.org>
Cc:        
"Erkmen, Muge" <muge.erkmen@siemens.com>, "Tatli, Ipek" <ipek.tatli@siemens.com>, "Kwemou Ngandeu, Emeric" <emeric.kwemou_ngandeu@siemens.com>, "Hoeller, Oliver (ext)" <oliver.hoeller.ext@siemens.com>, "Smirnov, Alexander" <alexander.smirnov@siemens.com>
Date:        
06/01/2012 09:14 AM
Subject:        
[sca-c-cpp-comment] @header attribute of the <implementation.cpp> element





Hi Folks!
 
I’m working in a team at Siemens Corporate Technology on an C++ SCA Runtime implementation called “Trentino” (see
http://trentino.sourceforge.net/) .
As time passed, we collected some questions and unclear issues regarding the SCA specs. I hope this is the right place to pose them. Actually, only one to
start with ;-)

 
The question is concerning the C++ spec from 14 October 2010:
http://docs.oasis-open.org/opencsa/sca-c-cpp/sca-cppcni-1.1-spec-cd06.pdf.
According to line 3421 the @header attribute of the <implementation.cpp> element is of type NCName (by the way:  @header is neither mentioned
in the pseoudo-schema snippet in line 417ff. nor  in the list starting at line 431), so that it’s not possible to specify paths within this attribute. The question is:
how then the runtime is supposed to find the corresponding header? Are there any conventions, such as to search for it in the directory specified via @componentType? Since the @header attribute of <interface.cpp> is of type string and may contain also paths, making the @header attribute of <implementation.cpp> be an NCName  seems somehow inconsistent.
 
Thanks in advance

Konstantin Sokolov
 
 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]