RE: attributes in CORBA IDL

Hi Savas,
   see below.


At 12:42 AM 7/1/2003, Savas Parastatidis wrote:
>Jeff,
>
>[snip]
>
> > This really is very simple and straightforward. Don't keep trying to
> > complicate it by bringing in other definitions of what attributes may
>or
> > may not be or mean.
> >
>
>I completely agree with what you said in both of your messages. We have
>the same understanding of what the keyword "attribute" means in IDL.
>However, I feel that I need to explain what I mean when I talk about
>"specific operations".

thanks for the clarification. Now i understand. pls see below for more 
comments.


>The entire conversation started when I suggested that, as in the IDL
>specification, the WSDL specification cannot mandate the existence of
>specific operations (i.e., explicit signatures for methods and/or
>attributes). This task force is to contribute a section in the WSDL
>specification and as such it can only talk about the syntax on how to
>write interfaces and not the existence of a number of specific
>operations in all defined interfaces.
>
>In OGSI, there are three operations defined: setServiceDAta,
>getServiceData, findServiceData. It was my understanding that the
>intention was to define such operations in WSDL. That's what I objected
>to. I mentioned IDL as an example because IDL says nothing about
>specific operations. I did not say that the keyword "attribute" does not
>suggest the existence of an appropriate mechanism for get/set in the
>target language. Just that the IDL specification does not mandate the
>existence of particular operations with predefined semantics, like "list
>findAttributeByName(string)" for example.

I don't if this is relevant, but there IS a set of mandated operations on 
all CORBA objects, those that are inherited from the base CORBA::Object 
type. (Technically although the signatures are expressed in IDL, each 
language mapping defines how they are materialized in that language.)

interface Object {
      InterfaceDef get_interface ();
      boolean is_nil();
      Object duplicate ();
      void release ();
      boolean is_a ( in RepositoryId logical_type_id );
      boolean non_existent();
      boolean is_equivalent ( in Object other_object );
      unsigned long hash( in unsigned long maximum );
      void create_request ( .... [ parms snipped ] );
      Policy get_policy ( in PolicyType policy_type );
      DomainManagersList get_domain_managers ();
      Object set_policy_overrides(
          in PolicyList policies,
          in SetOverrideType set_add
          ) raises (InvalidPolicies);
      Policy get_client_policy( in PolicyType type );
      PolicyList get_policy_overrides( in PolicyTypeSeq types );
      boolean validate_connection( out PolicyList inconsistent_policies );
      Object get_component ();
     };
};

   So for example you can invoke a get_interface() operation which returns 
the metadata describing the inteface on all object references.

jeff

Received on Tuesday, 1 July 2003 10:15:08 UTC