Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_TypeCodes Class Reference

This class is a namespace for TypeCode-related static data that is owned by the ORB. More...

#include <Typecode.h>

List of all members.

Static Public Methods

void init (void)
 Runtime initialization of all standard typecodes. Called from <CORBA::ORB_init>. More...

void fini (void)
 Runtime finalization of all standard typecodes. More...


Static Private Attributes

int initialized_ = 0
 Flag that denotes that the TAO TypeCode constants have been initialized. More...


Detailed Description

This class is a namespace for TypeCode-related static data that is owned by the ORB.

Definition at line 606 of file Typecode.h.


Member Function Documentation

void TAO_TypeCodes::fini void    [static]
 

Runtime finalization of all standard typecodes.

Definition at line 879 of file Typecode_Constants.cpp.

References CORBA_ORB::_tc_ObjectId, CORBA::release, TC_completion_status, and TC_opaque.

Referenced by TAO_Singleton_Manager::fini.

00880 {
00881   // Release all the standard typecodes owned by the ORB.
00882 
00883   // Null and void
00884   CORBA::release (CORBA::_tc_null);
00885 
00886   CORBA::release (CORBA::_tc_void);
00887 
00888   // Basic numeric types:  short, long, longlong, and unsigned variants
00889   CORBA::release (CORBA::_tc_short);
00890 
00891   CORBA::release (CORBA::_tc_long);
00892 
00893   CORBA::release (CORBA::_tc_longlong);
00894 
00895   CORBA::release (CORBA::_tc_ushort);
00896 
00897   CORBA::release (CORBA::_tc_ulong);
00898 
00899   CORBA::release (CORBA::_tc_ulonglong);
00900 
00901   // Floating point types: single, double, quad precision
00902   CORBA::release (CORBA::_tc_float);
00903 
00904   CORBA::release (CORBA::_tc_double);
00905 
00906   CORBA::release (CORBA::_tc_longdouble);
00907 
00908   // Various simple quantities.
00909   CORBA::release (CORBA::_tc_boolean);
00910 
00911   CORBA::release (CORBA::_tc_octet);
00912 
00913   // Internationalization-related data types: ISO Latin/1 and "wide"
00914   // characters, and strings of each.  "wchar" is probably Unicode 1.1,
00915   // "wstring" being null-terminated sets thereof.
00916   CORBA::release (CORBA::_tc_char);
00917 
00918   CORBA::release (CORBA::_tc_wchar);
00919 
00920   // a string/wstring have a simple parameter list that indicates the length
00921   CORBA::release (CORBA::_tc_string);
00922 
00923   CORBA::release (CORBA::_tc_wstring);
00924 
00925   //
00926   // Various things that can be passed as "general" parameters:
00927   // Any, TypeCode_ptr, Principal_ptr, Object_ptr
00928   //
00929   CORBA::release (CORBA::_tc_any);
00930 
00931   CORBA::release (CORBA::_tc_TypeCode);
00932 
00933   CORBA::release (CORBA::_tc_Principal);
00934 
00935   // typecode for objref is complex, has two string parameters
00936   //
00937   CORBA::release (CORBA::_tc_Object);
00938 
00939   // other ORB owned typecodes
00940   CORBA::release (CORBA::TypeCode::_tc_Bounds);
00941 
00942   CORBA::release (CORBA::TypeCode::_tc_BadKind);
00943 
00944   // additional typecodes in the CORBA namespace
00945   CORBA::release (CORBA::_tc_Current);
00946 
00947   CORBA::release (CORBA::_tc_ORBid);
00948 
00949 #if (TAO_HAS_MINIMUM_CORBA == 0)
00950   CORBA::release (CORBA::_tc_NamedValue);
00951 
00952 #endif /* TAO_HAS_MINIMUM_CORBA */
00953 
00954   CORBA::release (CORBA_ORB::_tc_ObjectId);
00955 
00956   // Service types
00957   CORBA::release (CORBA::_tc_ServiceType);
00958   CORBA::release (CORBA::_tc_ServiceOption);
00959   CORBA::release (CORBA::_tc_ServiceDetailType);
00960   CORBA::release (CORBA::_tc_ServiceDetail);
00961   CORBA::release (CORBA::_tc_ServiceInformation);
00962   
00963   // TAO specific
00964   CORBA::release (TC_opaque);
00965 
00966   CORBA::release (TC_completion_status);
00967 }

void TAO_TypeCodes::init void    [static]
 

Runtime initialization of all standard typecodes. Called from <CORBA::ORB_init>.

Definition at line 217 of file Typecode_Constants.cpp.

References CORBA_ORB::_tc_ObjectId, ACE_NTOHL, initialized_, CORBA_ORB::ObjectId, TAO_ENCAP_BYTE_ORDER, TC_completion_status, TC_opaque, and CORBA::TypeCode.

Referenced by CORBA_ORB::init_orb_globals.

00218 {
00219   // Initialize all the standard typecodes owned by the ORB
00220 
00221   // Not thread safe.  Caller must provide synchronization.
00222 
00223   // Do not execute code after this point more than once.
00224   if (initialized_ != 0)
00225     return;
00226 
00227   initialized_ = 1;
00228 
00229   // Null and void
00230   CORBA::_tc_null = new CORBA::TypeCode (CORBA::tk_null);
00231 
00232   CORBA::_tc_void = new CORBA::TypeCode (CORBA::tk_void);
00233 
00234   // Basic numeric types:  short, long, longlong, and unsigned variants
00235   CORBA::_tc_short = new CORBA::TypeCode (CORBA::tk_short);
00236 
00237   CORBA::_tc_long = new CORBA::TypeCode (CORBA::tk_long);
00238 
00239   CORBA::_tc_longlong = new CORBA::TypeCode (CORBA::tk_longlong);
00240 
00241   CORBA::_tc_ushort = new CORBA::TypeCode (CORBA::tk_ushort);
00242 
00243   CORBA::_tc_ulong = new CORBA::TypeCode (CORBA::tk_ulong);
00244 
00245   CORBA::_tc_ulonglong = new CORBA::TypeCode (CORBA::tk_ulonglong);
00246 
00247   // Floating point types: single, double, quad precision
00248   CORBA::_tc_float = new CORBA::TypeCode (CORBA::tk_float);
00249 
00250   CORBA::_tc_double = new CORBA::TypeCode (CORBA::tk_double);
00251 
00252   CORBA::_tc_longdouble = new CORBA::TypeCode (CORBA::tk_longdouble);
00253 
00254   // Various simple quantities.
00255   CORBA::_tc_boolean = new CORBA::TypeCode (CORBA::tk_boolean);
00256 
00257   CORBA::_tc_octet = new CORBA::TypeCode (CORBA::tk_octet);
00258 
00259   // Internationalization-related data types: ISO Latin/1 and "wide"
00260   // characters, and strings of each.  "wchar" is probably Unicode 1.1,
00261   // "wstring" being null-terminated sets thereof.
00262   CORBA::_tc_char = new CORBA::TypeCode (CORBA::tk_char);
00263 
00264   CORBA::_tc_wchar = new CORBA::TypeCode (CORBA::tk_wchar);
00265 
00266   // a string/wstring have a simple parameter list that indicates the length
00267   static const CORBA::Long _oc_string [] =
00268   {
00269     // CDR typecode octets
00270     TAO_ENCAP_BYTE_ORDER, // native endian + padding; "tricky"
00271     0                     // ... unbounded string
00272   };
00273   CORBA::_tc_string = new CORBA::TypeCode (CORBA::tk_string,
00274                                            sizeof _oc_string,
00275                                            (char*)&_oc_string,
00276                                            1,
00277                                            sizeof (CORBA::String_var));
00278 
00279   static const CORBA::Long _oc_wstring [] =
00280   {
00281     // CDR typecode octets
00282     TAO_ENCAP_BYTE_ORDER,       // native endian + padding; "tricky"
00283     0                     // ... unbounded string
00284   };
00285   CORBA::_tc_wstring = new CORBA::TypeCode (CORBA::tk_wstring,
00286                                             sizeof _oc_wstring,
00287                                             (char *) &_oc_wstring,
00288                                             1,
00289                                             sizeof (CORBA::WChar*));
00290 
00291   //
00292   // Various things that can be passed as "general" parameters:
00293   // Any, TypeCode_ptr, Principal_ptr, Object_ptr
00294   //
00295   CORBA::_tc_any = new CORBA::TypeCode (CORBA::tk_any);
00296 
00297   CORBA::_tc_TypeCode = new CORBA::TypeCode (CORBA::tk_TypeCode);
00298 
00299   CORBA::_tc_Principal = new CORBA::TypeCode (CORBA::tk_Principal);
00300 
00301   // typecode for objref is complex, has two string parameters
00302   //
00303   // NOTE:  Must be four-byte aligned
00304 
00305   static const CORBA::Long _oc_CORBA_Object[] =
00306   {
00307     TAO_ENCAP_BYTE_ORDER, // byte order
00308     29,
00309     ACE_NTOHL (0x49444c3a),
00310     ACE_NTOHL (0x6f6d672e),
00311     ACE_NTOHL (0x6f72672f),
00312     ACE_NTOHL (0x434f5242),
00313     ACE_NTOHL (0x412f4f62),
00314     ACE_NTOHL (0x6a656374),
00315     ACE_NTOHL (0x3a312e30),
00316     ACE_NTOHL (0x0),  // repository ID = IDL:omg.org/CORBA/Object:1.0
00317     7,
00318     ACE_NTOHL (0x4f626a65),
00319     ACE_NTOHL (0x63740000),  // name = Object
00320   };
00321 
00322   CORBA::_tc_Object = new CORBA::TypeCode (CORBA::tk_objref,
00323                                            sizeof (_oc_CORBA_Object),
00324                                            (char *) &_oc_CORBA_Object,
00325                                            1,
00326                                            sizeof (CORBA::Object));
00327 
00328   // Static initialization of the two user-defined exceptions that
00329   // are part of the ORB.
00330 
00331   static const CORBA::Long _oc_CORBA_TypeCode_Bounds[] =
00332   {
00333     TAO_ENCAP_BYTE_ORDER, // byte order
00334     38,
00335     ACE_NTOHL (0x49444c3a),
00336     ACE_NTOHL (0x6f6d672e),
00337     ACE_NTOHL (0x6f72672f),
00338     ACE_NTOHL (0x434f5242),
00339     ACE_NTOHL (0x412f5479),
00340     ACE_NTOHL (0x7065436f),
00341     ACE_NTOHL (0x64652f42),
00342     ACE_NTOHL (0x6f756e64),
00343     ACE_NTOHL (0x733a312e),
00344     ACE_NTOHL (0x30000000),  // repository ID = IDL:omg.org/CORBA/TypeCode/Bounds:1.0
00345     7,
00346     ACE_NTOHL (0x426f756e),
00347     ACE_NTOHL (0x64730000),  // name = Bounds
00348     0, // member count
00349   };
00350 
00351   CORBA::TypeCode::_tc_Bounds =
00352     new CORBA::TypeCode (CORBA::tk_except,
00353                          sizeof (_oc_CORBA_TypeCode_Bounds),
00354                          (char*) &_oc_CORBA_TypeCode_Bounds,
00355                          1,
00356                          sizeof (CORBA::TypeCode::Bounds));
00357 
00358 
00359   static const CORBA::Long _oc_CORBA_TypeCode_BadKind[] =
00360   {
00361     TAO_ENCAP_BYTE_ORDER, // byte order
00362     39,
00363     ACE_NTOHL (0x49444c3a),
00364     ACE_NTOHL (0x6f6d672e),
00365     ACE_NTOHL (0x6f72672f),
00366     ACE_NTOHL (0x434f5242),
00367     ACE_NTOHL (0x412f5479),
00368     ACE_NTOHL (0x7065436f),
00369     ACE_NTOHL (0x64652f42),
00370     ACE_NTOHL (0x61644b69),
00371     ACE_NTOHL (0x6e643a31),
00372     ACE_NTOHL (0x2e300000),  // repository ID = IDL:omg.org/CORBA/TypeCode/BadKind:1.0
00373     8,
00374     ACE_NTOHL (0x4261644b),
00375     ACE_NTOHL (0x696e6400),  // name = BadKind
00376     0, // member count
00377   };
00378   CORBA::TypeCode::_tc_BadKind =
00379     new CORBA::TypeCode (CORBA::tk_except,
00380                          sizeof (_oc_CORBA_TypeCode_BadKind),
00381                          (char*) &_oc_CORBA_TypeCode_BadKind,
00382                          1,
00383                          sizeof (CORBA::TypeCode::BadKind));
00384 
00385   static const CORBA::Long _oc_CORBA_ORBid[] =
00386   {
00387     TAO_ENCAP_BYTE_ORDER, // byte order
00388     28, ACE_NTOHL (0x49444c3a),
00389     ACE_NTOHL (0x6f6d672e),
00390     ACE_NTOHL (0x6f72672f),
00391     ACE_NTOHL (0x434f5242),
00392     ACE_NTOHL (0x412f4f52),
00393     ACE_NTOHL (0x4269643a),
00394     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ORBid:1.0
00395     6,
00396     ACE_NTOHL (0x4f524269),
00397     ACE_NTOHL (0x64000000),  // name = ORBid
00398     CORBA::tk_string,
00399     0, // string length
00400   };
00401   CORBA::_tc_ORBid = new CORBA::TypeCode (CORBA::tk_alias,
00402                                           sizeof (_oc_CORBA_ORBid),
00403                                           (char *) &_oc_CORBA_ORBid,
00404                                           0,
00405                                           sizeof (CORBA::ORBid));
00406 
00407   static const CORBA::Long _oc_CORBA_ObjectId[] =
00408   {
00409     TAO_ENCAP_BYTE_ORDER,     // byte order
00410     31,
00411     ACE_NTOHL (0x49444c3a),
00412     ACE_NTOHL (0x6f6d672e),
00413     ACE_NTOHL (0x6f72672f),
00414     ACE_NTOHL (0x434f5242),
00415     ACE_NTOHL (0x412f4f62),
00416     ACE_NTOHL (0x6a656374),
00417     ACE_NTOHL (0x49643a31),
00418     ACE_NTOHL (0x2e300000),  // repository ID =
00419                              //   IDL:omg.org/CORBA/ObjectId:1.0
00420     9,
00421     ACE_NTOHL (0x4f626a65),
00422     ACE_NTOHL (0x63744964),
00423     ACE_NTOHL (0x0),        // name = ObjectId
00424     CORBA::tk_string,
00425     0,                      // string length
00426   };
00427   CORBA_ORB::_tc_ObjectId =
00428     new CORBA::TypeCode (CORBA::tk_alias,
00429                          sizeof (_oc_CORBA_ObjectId),
00430                          (char *) &_oc_CORBA_ObjectId,
00431                          0,
00432                          sizeof (CORBA_ORB::ObjectId));
00433 
00434 #if (TAO_HAS_MINIMUM_CORBA == 0)
00435 
00436   static const CORBA::Long _oc_corba_NamedValue[] =
00437   {
00438     TAO_ENCAP_BYTE_ORDER,     // byte order
00439     33,
00440     ACE_NTOHL (0x49444c3a),
00441     ACE_NTOHL (0x6f6d672e),
00442     ACE_NTOHL (0x6f72672f),
00443     ACE_NTOHL (0x636f7262),
00444     ACE_NTOHL (0x612f4e61),
00445     ACE_NTOHL (0x6d656456),
00446     ACE_NTOHL (0x616c7565),
00447     ACE_NTOHL (0x3a312e30),
00448     ACE_NTOHL (0x0),          // repository ID =
00449                               //   IDL:omg.org/corba/NamedValue:1.0
00450     11,
00451     ACE_NTOHL (0x4e616d65),
00452     ACE_NTOHL (0x6456616c),
00453     ACE_NTOHL (0x75650000),  // name = NamedValue,
00454   };
00455 
00456   CORBA::_tc_NamedValue =
00457     new CORBA::TypeCode (CORBA::tk_objref,
00458                          sizeof (_oc_corba_NamedValue),
00459                          (char *) &_oc_corba_NamedValue,
00460                          0,
00461                          sizeof (CORBA::NamedValue));
00462 
00463 #endif /* TAO_HAS_MINIMUM_CORBA */
00464 
00465  // Service Types
00466   static const CORBA::Long _oc_CORBA_ServiceOption[] =
00467   {
00468    TAO_ENCAP_BYTE_ORDER, // byte order
00469    36,
00470    ACE_NTOHL (0x49444c3a),
00471    ACE_NTOHL (0x6f6d672e),
00472    ACE_NTOHL (0x6f72672f),
00473    ACE_NTOHL (0x434f5242),
00474    ACE_NTOHL (0x412f5365),
00475    ACE_NTOHL (0x72766963),
00476    ACE_NTOHL (0x654f7074),
00477    ACE_NTOHL (0x696f6e3a),
00478    ACE_NTOHL (0x312e3000),  // repository ID =
00479                             //   IDL:omg.org/CORBA/ServiceOption:1.0
00480    14,
00481    ACE_NTOHL (0x53657276),
00482    ACE_NTOHL (0x6963654f),
00483    ACE_NTOHL (0x7074696f),
00484    ACE_NTOHL (0x6e000000),  // name = ServiceOption
00485    CORBA::tk_ulong,
00486   };
00487 
00488   CORBA::_tc_ServiceOption =
00489     new CORBA::TypeCode (CORBA::tk_alias,
00490                          sizeof (_oc_CORBA_ServiceOption),
00491                          (char *) &_oc_CORBA_ServiceOption,
00492                          0,
00493                          sizeof (CORBA::ServiceOption));
00494 
00495   static const CORBA::Long _oc_CORBA_ServiceDetailType[] =
00496   {
00497     TAO_ENCAP_BYTE_ORDER, // byte order
00498     40,
00499     ACE_NTOHL (0x49444c3a),
00500     ACE_NTOHL (0x6f6d672e),
00501     ACE_NTOHL (0x6f72672f),
00502     ACE_NTOHL (0x434f5242),
00503     ACE_NTOHL (0x412f5365),
00504     ACE_NTOHL (0x72766963),
00505     ACE_NTOHL (0x65446574),
00506     ACE_NTOHL (0x61696c54),
00507     ACE_NTOHL (0x7970653a),
00508     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ServiceDetailType:1.0
00509     18,
00510     ACE_NTOHL (0x53657276),
00511     ACE_NTOHL (0x69636544),
00512     ACE_NTOHL (0x65746169),
00513     ACE_NTOHL (0x6c547970),
00514     ACE_NTOHL (0x65000000),  // name = ServiceDetailType
00515     CORBA::tk_ulong,
00516   };
00517 
00518  CORBA::_tc_ServiceDetailType =
00519    new CORBA::TypeCode (CORBA::tk_alias,
00520                         sizeof (_oc_CORBA_ServiceDetailType),
00521                         (char *) &_oc_CORBA_ServiceDetailType,
00522                         0,
00523                         sizeof (CORBA::ServiceDetailType));
00524 
00525   static const CORBA::Long _oc_CORBA_ServiceType[] =
00526   {
00527     TAO_ENCAP_BYTE_ORDER, // byte order
00528     34,
00529     ACE_NTOHL (0x49444c3a),
00530     ACE_NTOHL (0x6f6d672e),
00531     ACE_NTOHL (0x6f72672f),
00532     ACE_NTOHL (0x434f5242),
00533     ACE_NTOHL (0x412f5365),
00534     ACE_NTOHL (0x72766963),
00535     ACE_NTOHL (0x65547970),
00536     ACE_NTOHL (0x653a312e),
00537     ACE_NTOHL (0x30000000),  // repository ID= IDL:omg.org/CORBA/ServiceType:1.0
00538     12,
00539     ACE_NTOHL (0x53657276),
00540     ACE_NTOHL (0x69636554),
00541     ACE_NTOHL (0x79706500),  // name = ServiceType
00542     CORBA::tk_ushort,
00543   };
00544 
00545  CORBA::_tc_ServiceType =
00546    new CORBA::TypeCode (CORBA::tk_alias,
00547                         sizeof (_oc_CORBA_ServiceType),
00548                         (char *) &_oc_CORBA_ServiceType,
00549                         0,
00550                         sizeof (CORBA::ServiceType));
00551 
00552   static const CORBA::Long _oc_CORBA_ServiceDetail[] =
00553   {
00554     TAO_ENCAP_BYTE_ORDER, // byte order
00555     36,
00556     ACE_NTOHL (0x49444c3a),
00557     ACE_NTOHL (0x6f6d672e),
00558     ACE_NTOHL (0x6f72672f),
00559     ACE_NTOHL (0x434f5242),
00560     ACE_NTOHL (0x412f5365),
00561     ACE_NTOHL (0x72766963),
00562     ACE_NTOHL (0x65446574),
00563     ACE_NTOHL (0x61696c3a),
00564     ACE_NTOHL (0x312e3000),  // repository ID= IDL:omg.org/CORBA/ServiceDetail:1.0
00565     14,
00566     ACE_NTOHL (0x53657276),
00567     ACE_NTOHL (0x69636544),
00568     ACE_NTOHL (0x65746169),
00569     ACE_NTOHL (0x6c000000),  // name = ServiceDetail
00570     2, // member count
00571     20,
00572     ACE_NTOHL (0x73657276),
00573     ACE_NTOHL (0x6963655f),
00574     ACE_NTOHL (0x64657461),
00575     ACE_NTOHL (0x696c5f74),
00576     ACE_NTOHL (0x79706500),  // name = service_detail_type
00577     CORBA::tk_alias, // typecode kind for typedefs
00578     76, // encapsulation length
00579     TAO_ENCAP_BYTE_ORDER, // byte order
00580     40,
00581     ACE_NTOHL (0x49444c3a),
00582     ACE_NTOHL (0x6f6d672e),
00583     ACE_NTOHL (0x6f72672f),
00584     ACE_NTOHL (0x434f5242),
00585     ACE_NTOHL (0x412f5365),
00586     ACE_NTOHL (0x72766963),
00587     ACE_NTOHL (0x65446574),
00588     ACE_NTOHL (0x61696c54),
00589     ACE_NTOHL (0x7970653a),
00590     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ServiceDetailType:1.0
00591     18,
00592     ACE_NTOHL (0x53657276),
00593     ACE_NTOHL (0x69636544),
00594     ACE_NTOHL (0x65746169),
00595     ACE_NTOHL (0x6c547970),
00596     ACE_NTOHL (0x65000000),  // name = ServiceDetailType
00597     CORBA::tk_ulong,
00598     15,
00599     ACE_NTOHL (0x73657276),
00600     ACE_NTOHL (0x6963655f),
00601     ACE_NTOHL (0x64657461),
00602     ACE_NTOHL (0x696c0000),  // name = service_detail
00603     CORBA::tk_sequence, // typecode kind
00604     12, // encapsulation length
00605     TAO_ENCAP_BYTE_ORDER, // byte order
00606     CORBA::tk_octet,
00607     0,
00608   };
00609 
00610   CORBA::_tc_ServiceDetail =
00611     new CORBA::TypeCode (CORBA::tk_struct,
00612                          sizeof (_oc_CORBA_ServiceDetail),
00613                          (char *) &_oc_CORBA_ServiceDetail,
00614                          0,
00615                          sizeof (CORBA::ServiceDetail));
00616 
00617 
00618   static const CORBA::Long _oc_CORBA_ServiceInformation[] =
00619   {
00620     TAO_ENCAP_BYTE_ORDER, // byte order
00621     41,
00622     ACE_NTOHL (0x49444c3a),
00623     ACE_NTOHL (0x6f6d672e),
00624     ACE_NTOHL (0x6f72672f),
00625     ACE_NTOHL (0x434f5242),
00626     ACE_NTOHL (0x412f5365),
00627     ACE_NTOHL (0x72766963),
00628     ACE_NTOHL (0x65496e66),
00629     ACE_NTOHL (0x6f726d61),
00630     ACE_NTOHL (0x74696f6e),
00631     ACE_NTOHL (0x3a312e30),
00632     ACE_NTOHL (0x0),  // repository ID = IDL:omg.org/CORBA/ServiceInformation:1.0
00633     19,
00634     ACE_NTOHL (0x53657276),
00635     ACE_NTOHL (0x69636549),
00636     ACE_NTOHL (0x6e666f72),
00637     ACE_NTOHL (0x6d617469),
00638     ACE_NTOHL (0x6f6e0000),  // name = ServiceInformation
00639     2, // member count
00640     16,
00641     ACE_NTOHL (0x73657276),
00642     ACE_NTOHL (0x6963655f),
00643     ACE_NTOHL (0x6f707469),
00644     ACE_NTOHL (0x6f6e7300),  // name = service_options
00645     CORBA::tk_sequence, // typecode kind
00646     84, // encapsulation length
00647     TAO_ENCAP_BYTE_ORDER, // byte order
00648     CORBA::tk_alias, // typecode kind for typedefs
00649     68, // encapsulation length
00650     TAO_ENCAP_BYTE_ORDER, // byte order
00651     36,
00652     ACE_NTOHL (0x49444c3a),
00653     ACE_NTOHL (0x6f6d672e),
00654     ACE_NTOHL (0x6f72672f),
00655     ACE_NTOHL (0x434f5242),
00656     ACE_NTOHL (0x412f5365),
00657     ACE_NTOHL (0x72766963),
00658     ACE_NTOHL (0x654f7074),
00659     ACE_NTOHL (0x696f6e3a),
00660     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ServiceOption:1.0
00661     14,
00662     ACE_NTOHL (0x53657276),
00663     ACE_NTOHL (0x6963654f),
00664     ACE_NTOHL (0x7074696f),
00665     ACE_NTOHL (0x6e000000),  // name = ServiceOption
00666     CORBA::tk_ulong,
00667     0,
00668     16,
00669     ACE_NTOHL (0x73657276),
00670     ACE_NTOHL (0x6963655f),
00671     ACE_NTOHL (0x64657461),
00672     ACE_NTOHL (0x696c7300),  // name = service_details
00673     CORBA::tk_sequence, // typecode kind
00674     232, // encapsulation length
00675     TAO_ENCAP_BYTE_ORDER, // byte order
00676     CORBA::tk_struct, // typecode kind
00677     216, // encapsulation length
00678     36,
00679     ACE_NTOHL (0x49444c3a),
00680     ACE_NTOHL (0x6f6d672e),
00681     ACE_NTOHL (0x6f72672f),
00682     ACE_NTOHL (0x434f5242),
00683     ACE_NTOHL (0x412f5365),
00684     ACE_NTOHL (0x72766963),
00685     ACE_NTOHL (0x65446574),
00686     ACE_NTOHL (0x61696c3a),
00687     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ServiceDetail:1.0
00688     14,
00689     ACE_NTOHL (0x53657276),
00690     ACE_NTOHL (0x69636544),
00691     ACE_NTOHL (0x65746169),
00692     ACE_NTOHL (0x6c000000),  // name = ServiceDetail
00693     2, // member count
00694     20,
00695     ACE_NTOHL (0x73657276),
00696     ACE_NTOHL (0x6963655f),
00697     ACE_NTOHL (0x64657461),
00698     ACE_NTOHL (0x696c5f74),
00699     ACE_NTOHL (0x79706500),  // name = service_detail_type
00700     CORBA::tk_alias, // typecode kind for typedefs
00701     76, // encapsulation length
00702     TAO_ENCAP_BYTE_ORDER, // byte order
00703     40,
00704     ACE_NTOHL (0x49444c3a),
00705     ACE_NTOHL (0x6f6d672e),
00706     ACE_NTOHL (0x6f72672f),
00707     ACE_NTOHL (0x434f5242),
00708     ACE_NTOHL (0x412f5365),
00709     ACE_NTOHL (0x72766963),
00710     ACE_NTOHL (0x65446574),
00711     ACE_NTOHL (0x61696c54),
00712     ACE_NTOHL (0x7970653a),
00713     ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/CORBA/ServiceDetailType:1.0
00714     18,
00715     ACE_NTOHL (0x53657276),
00716     ACE_NTOHL (0x69636544),
00717     ACE_NTOHL (0x65746169),
00718     ACE_NTOHL (0x6c547970),
00719     ACE_NTOHL (0x65000000),  // name = ServiceDetailType
00720     CORBA::tk_ulong,
00721     15,
00722     ACE_NTOHL (0x73657276),
00723     ACE_NTOHL (0x6963655f),
00724     ACE_NTOHL (0x64657461),
00725     ACE_NTOHL (0x696c0000),  // name = service_detail
00726     CORBA::tk_sequence, // typecode kind
00727     12, // encapsulation length
00728     TAO_ENCAP_BYTE_ORDER, // byte order
00729     CORBA::tk_octet,
00730     0,
00731     0,
00732   };
00733 
00734  CORBA::_tc_ServiceInformation =
00735     new CORBA::TypeCode (CORBA::tk_struct,
00736                          sizeof (_oc_CORBA_ServiceInformation),
00737                          (char *) &_oc_CORBA_ServiceInformation,
00738                          0,
00739                          sizeof (CORBA::ServiceInformation));
00740 
00741  // ****************************************************************
00742 
00743   static const CORBA::Long _oc_CORBA_Current[] =
00744   {
00745     TAO_ENCAP_BYTE_ORDER,     // byte order
00746     22,
00747     ACE_NTOHL (0x49444c3a),
00748     ACE_NTOHL (0x434f5242),
00749     ACE_NTOHL (0x412f4375),
00750     ACE_NTOHL (0x7272656e),
00751     ACE_NTOHL (0x743a312e),
00752     ACE_NTOHL (0x3000fdfd),   // repository ID = IDL:CORBA/Current:1.0
00753     8,
00754     ACE_NTOHL (0x43757272),
00755     ACE_NTOHL (0x656e7400),   // name = Current,
00756   };
00757  CORBA::_tc_Current = new CORBA::TypeCode (CORBA::tk_objref,
00758                                            sizeof (_oc_CORBA_Current),
00759                                            (char *) &_oc_CORBA_Current,
00760                                            1,
00761                                            sizeof (CORBA::Current));
00762 
00763  // The following are internal to the TAO ORB
00764 
00765   // Octet codes for the parameters of the "Opaque" (sequence of octet)
00766   // data type used various places internally ... a CDR encapsulation
00767   // holding two parameters (like all sequence TypeCodes).
00768   //
00769   // NOTE: this **MUST** be longword aligned, which is why it's coded as
00770   // a longword array not an octet array.  Just sticking a long in for
00771   // padding won't work with compilers that optimize unused data out of
00772   // existence.
00773 
00774   // CDR typecode octets.
00775 
00776   static const CORBA::Long _oc_opaque [] =
00777   {
00778 
00779     TAO_ENCAP_BYTE_ORDER,    // native endian + padding; "tricky"
00780     10,                      // ... (sequence of) octets
00781     0                        // ... unbounded
00782   };
00783 
00784   TC_opaque = new CORBA::TypeCode (CORBA::tk_sequence,
00785                                    sizeof _oc_opaque,
00786                                    (char *) &_oc_opaque,
00787                                    1,
00788                                    sizeof (TAO_opaque));
00789 
00790   // Octet codes for the parameters of the ServiceContextList TypeCode
00791   // ...  this is a CDR encapsulation holding two parameters (like all
00792   // sequences): a TypeCode, and the bounds of the sequence (zero in
00793   // this case).
00794   //
00795   // This is complicated since the Typecode for the data type for the
00796   // sequence members is complex, a structure that nests two further
00797   // typecodes (one is a sequence).
00798   //
00799   // NOTE:  this must be longword aligned!
00800 
00801 #if 0
00802   static const CORBA::Long _oc_svc_ctx_list [] =
00803   {
00804     // START bytes of encapsulation 0
00805     TAO_ENCAP_BYTE_ORDER, // native endian + padding; "tricky"
00806 
00807     //
00808     // FIRST sequence param:  typecode for struct is complex,
00809     // and so uses a nested encapsulation.
00810     //
00811     CORBA::tk_struct,
00812     72, // length of encapsulation 1
00813 
00814     // START bytes of encapsulation 1 (struct params)
00815     1, // native endian + padding; "tricky"
00816     1, 0, // type ID omitted:  null string
00817     1, 0, // name omitted "ServiceContext"
00818 
00819     2, // two struct elements
00820 
00821     // First structure element:  name, typecode for ULong
00822     //
00823     // NOTE:  to be more strictly correct this could be a CORBA::tk_alias
00824     // typecode ...
00825 
00826     1, 0, // name omitted:  "context_id"
00827     CORBA::tk_long,
00828 
00829     // Second structure element: name, typecode for sequence of octet;
00830     // the typecode for sequence of octet is complex, there's a second
00831     // level of nested encapuslation here.
00832 
00833     1, 0, // name omitted:  "context_data"
00834     CORBA::tk_sequence,   // sequence typecode
00835     16, // length of encapsulation 2
00836 
00837     // START bytes of encapsulation 2 (sequence params)
00838     1, // native endian + padding; "tricky"
00839     1, 0, // type ID omitted:  null string
00840     CORBA::tk_octet, // (sequence of) octet
00841     0, // ... unbounded length
00842     // END bytes of encapsulation 2 (sequence params)
00843 
00844     // END bytes of encapsulation 1 (struct params)
00845 
00846     // SECOND sequence param:  bound of sequence (none)
00847     0 // unbounded seq of ServiceContext
00848     // END bytes of encapsulation 0 (sequence params)
00849   };
00850 
00851   TC_ServiceContextList =
00852     new CORBA::TypeCode (CORBA::tk_sequence,
00853                          sizeof _oc_svc_ctx_list,
00854                          (char *) &_oc_svc_ctx_list,
00855                          1,
00856                          sizeof (TAO_GIOP_ServiceContextList));
00857 #endif /* 0 */
00858 
00859   static const CORBA::ULong oc_completion_status [] =
00860   {
00861     TAO_ENCAP_BYTE_ORDER, // byte order flag, tricky
00862     0, 0,                 // type ID omitted
00863     3,                    // three members
00864     0, 0,                 // ... whose names are all omitted
00865     0, 0,
00866     0, 0
00867   };
00868 
00869   TC_completion_status =
00870     new CORBA::TypeCode (CORBA::tk_enum,
00871                          sizeof oc_completion_status,
00872                          (char *) &oc_completion_status,
00873                          1,
00874                          sizeof (CORBA::CompletionStatus));
00875 }


Member Data Documentation

int TAO_TypeCodes::initialized_ = 0 [static, private]
 

Flag that denotes that the TAO TypeCode constants have been initialized.

Definition at line 212 of file Typecode_Constants.cpp.

Referenced by init.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 15:45:36 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002