Download - CORBA Datatypes

Transcript
  • 7/31/2019 CORBA Datatypes

    1/8

    Introduction to CORBA types

    IDL = Interface Definition Language

    ORB = Object Request Broker

    http://en.wikipedia.org/wiki/Image:Corba_Server.png
  • 7/31/2019 CORBA Datatypes

    2/8

  • 7/31/2019 CORBA Datatypes

    3/8

    Basic:

    Numeric (integer, floating and fixed point, and enumerated).

    Characters and strings, including wide characters.

    Object references - handles to CORBA objects.

    Complex:

    Structures and unions, which parallel C/C++ structs and unions.

    Arrays - runtime fixed-length, possibly multi-dimensional stores of multiple data

    elements.

    Sequences - runtime variable-length stores of multiple data elements.

    "any" values store values of any data type, along with the type information

    necessary to make use of that data type.

    The upcoming CORBA 2.3 specification will add "object by value" capabilities,

    which will allow expressing much more complex data relationships such as graphs.

    CORBA Primitive Types

    CORBA Type Bytes Java Mapping Bytes

    boolean 1 boolean 1

    char 1 char 2

    double 8 double 8

    long double 16 double 8

    float 4 float 4

    long 4 int 4

    wide char 2 char 2octet 1 byte 1

    short 2 short 2

    long long 8 long 8

    unsigned short 2 short 2

    unsigned long 4 int 4

    unsigned long long 8 long 8

    string string

    wide string string

    fixed BigDecimal

    sequence array

    array array

  • 7/31/2019 CORBA Datatypes

    4/8

    Bindings

    Ada

    Java

    C

    LispC++

    PL_I

    COBOLPython

    CORBA Scripting Language

    SmalltalkPHP

    CAML

    SWI-Prolog

    Background information

    http://en.wikipedia.org/wiki/CORBAhttp://www.cs.wustl.edu/~schmidt/corba-overview.html

    ORB/IDL diagrams

    http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#52

    4375

    AnySeq

    AttrDescriptionSeqAttributeDescription

    AttributeModeBooleanSeq

    CharSeqConstantDescription

    ContainedSeq

    ContextIdentifier

    ContextIdSeqDefinitionKind

    DomainManagersListDoubleSeq

    EnumMemberSeqExcDescriptionSeq

    ExceptionDefSeq

    ExceptionDescription

    FlagsFloatSeq

    IdentifierInitializer

    InitializerSeqInterfaceDefSeq

    InterfaceDescription

    InvalidPolicies

    ModuleDescriptionOctetSeq

    OpDescriptionSeqOperationDescription

    OperationModeORBid

    ParameterDescription

    ParameterMode

    ParDescriptionSeqPolicyError

    PolicyErrorCodePolicyList

    PolicyTypePolicyTypeSeq

    PrimitiveKind

    RepositoryId

    RepositoryIdSeqScopedName

    ServiceDetailServiceDetailType

    ServiceInformation

    ServiceOption

    ServiceTypeSetOverrideType

    ShortSeqStringValue

    StructMemberStructMemberSeq

    TCKind

    TypeDescription

    ULongLongSeqULongSeq

    UnionMemberUnionMemberSeq

    UShortSeqValueDefSeq

    ValueDescription

    ValueMember

    ValueMemberSeqValueModifier

    VersionSpecVisibility

    WCharSeqWStringValue

    http://en.wikipedia.org/wiki/CORBAhttp://www.cs.wustl.edu/~schmidt/corba-overview.htmlhttp://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524375http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524375http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524520http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524541http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#270680http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#335861http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524617http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524639http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524660http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524717http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524736http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524752http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#336531http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524831http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524849http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524870http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524892http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524914http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271309http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525010http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525081http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525102http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271450http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525180http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525198http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271583http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#306625http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#337684http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525387http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525409http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271883http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271948http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#409171http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271973http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#411174http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525545http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525576http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525595http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525650http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525673http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525731http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#306846http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525864http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525895http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525914http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525936http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525961http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525975http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526001http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526015http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272406http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526136http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526158http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#354501http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526316http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272608http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272633http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526396http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526418http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272781http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526491http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526521http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526543http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272983http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#273061http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526665http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526687http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526722http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526742http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526770http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526792http://en.wikipedia.org/wiki/CORBAhttp://www.cs.wustl.edu/~schmidt/corba-overview.htmlhttp://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524375http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524375http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524520http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524541http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#270680http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#335861http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524617http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524639http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524660http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524717http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524736http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524752http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#336531http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524831http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524849http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524870http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524892http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#524914http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271309http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525010http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525081http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525102http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271450http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525180http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525198http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271583http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#306625http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#337684http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525387http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525409http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271883http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271948http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#409171http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#271973http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#411174http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525545http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525576http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525595http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525650http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525673http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525731http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#306846http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525864http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525895http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525914http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525936http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525961http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#525975http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526001http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526015http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272406http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526136http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526158http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#354501http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526316http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272608http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272633http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526396http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526418http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272781http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526491http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526521http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526543http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#272983http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#273061http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526665http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526687http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526722http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526742http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526770http://www.iona.com/support/docs/orbix2000/1.2/pref_cpp/html/CORBAModule3.html#526792
  • 7/31/2019 CORBA Datatypes

    5/8

    Primitive C++ Type C++ Definition

    Boolean typedef unsigned char Boolean;

    (Valid values are 1 for true or 0 for false.)

    Boolean_out typedef Boolean& Boolean_out;

    Char typedef unsigned char Char;

    Char_out typedef Char& Char_out;

    Double typedef double Double;

    Double_out typedef Double& Double_out;

    Float typedef float Float;

    Float_out typedef Float& Float_out;

    Long typedef long Long;

    Long_out typedef Long& Long_out;

    LongDouble typedef long double LongDouble;

    LongDouble_out typedef LongDouble& LongDouble_out;

    LongLong typedef ... LongLong;

    LongLong_out typedef LongLong& LongLong_out;

    Octet typedef unsigned char Octet;

    Octet_out typedef Octet& Octet_out;

    Short typedef short Short;

    Short_out typedef Short& Short_out;

    ULong typedef unsigned long ULong;ULong_out typedef ULong& ULong_out;

    ULongLong typedef ... ULongLong;

    ULongLong_out typedef ULongLong& ULongLong_out;

    UShort typedef unsigned short UShort;

    UShort_out typedef UShort& UShort_out;

    WChar typedef wchar_t WChar;

    WChar_out typedef WChar& WChar_out;

    http://www.javacommerce.com/displaypage.jsp?name=idltypes.sql&id=18212

    IDL Type Java

    boolean boolean

    char char

    wchar char

    octet byte

    short / unsigned short short

    long / unsigned long int

    http://www.javacommerce.com/displaypage.jsp?name=idltypes.sql&id=18212http://www.javacommerce.com/displaypage.jsp?name=idltypes.sql&id=18212
  • 7/31/2019 CORBA Datatypes

    6/8

    long long / unsigned long long long

    float float

    double double

    http://developer.gnome.org/doc/whitepapers/ORBit/about-corba.html

    Available CORBA data types:

    Basic:

    Numeric (integer, floating and fixed point, and enumerated).

    Characters and strings, including wide characters.

    Object references - handles to CORBA objects.

    Complex

    Structures and unions, which parallel C/C++ structs and unions.

    Arrays - runtime fixed-length, possibly multi-dimensional stores of multiple data

    elements. Sequences - runtime variable-length stores of multiple data elements.

    "any" values store values of any data type, along with the type information

    necessary to make use of that data type.

    The upcoming CORBA 2.3 specification will add "object by value" capabilities,

    which will allow expressing much more complex data relationships such as graphs.

    http://www-itec.uni-klu.ac.at/~harald/corba/idldatattypes.html

    IDL Construct Java Construct

    module package

    interface (non-abstract)signature interface and an operations interface, helper class,

    holder class

    interface (abstract) signature interface, helper class, holder class

    constant (not within aninterface) public interface

    boolean boolean

    char, wchar char

    octet byte

    http://developer.gnome.org/doc/whitepapers/ORBit/about-corba.htmlhttp://www-itec.uni-klu.ac.at/~harald/corba/idldatattypes.htmlhttp://developer.gnome.org/doc/whitepapers/ORBit/about-corba.htmlhttp://www-itec.uni-klu.ac.at/~harald/corba/idldatattypes.html
  • 7/31/2019 CORBA Datatypes

    7/8

    string, wstring java.lang.String

    short, unsigned short short

    long, unsigned long int

    long long, unsigned longlong

    long

    float float

    double double

    fixed java.math.BigDecimal

    enum, struct, union class

    sequence, array array

    exception class

    readonly attribute accessor method

    readwrite attribute accessor and modifer methods

    operation method

    Here is a sample IDL definition containing an array, a bounded sequence, and anunbounded sequence:

    module ArrayModule {

    struct SomeStructure {

    long longArray[15];sequence unboundedBools;

    sequence boundedChars;};

    };

    The arrays would be defined in Java aspublic int[] longArray;public boolean[] unboundedBools;

    public char[] boundedChars;

    http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__CDR.html

    byte sizes

    http://www.omg.org/technology/documents/formal/corba_language_mapping_specs.htm

    http://cbbrowne.com/info/corbalanguages.html

    http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__CDR.htmlhttp://www.omg.org/technology/documents/formal/corba_language_mapping_specs.htmhttp://cbbrowne.com/info/corbalanguages.htmlhttp://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__CDR.htmlhttp://www.omg.org/technology/documents/formal/corba_language_mapping_specs.htmhttp://cbbrowne.com/info/corbalanguages.html
  • 7/31/2019 CORBA Datatypes

    8/8

    mappings