CORBA Datatypes
Transcript of CORBA Datatypes
-
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