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
- From: Bryan Aupperle <aupperle@us.ibm.com>
- To: "Sokolov, Konstantin (ext)" <konstantin.sokolov.ext@siemens.com>
- Date: Thu, 19 Jul 2012 14:37:51 -0400
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]