summaryrefslogtreecommitdiff
path: root/TAO/tao/IFR_Client/IFR_Extended.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IFR_Client/IFR_Extended.pidl')
-rw-r--r--TAO/tao/IFR_Client/IFR_Extended.pidl104
1 files changed, 66 insertions, 38 deletions
diff --git a/TAO/tao/IFR_Client/IFR_Extended.pidl b/TAO/tao/IFR_Client/IFR_Extended.pidl
index 032bcce4dae..9bf149f64a1 100644
--- a/TAO/tao/IFR_Client/IFR_Extended.pidl
+++ b/TAO/tao/IFR_Client/IFR_Extended.pidl
@@ -16,49 +16,38 @@
// time. This IDL file contains all the interfaces and other data
// types related to fixed types and valuetypes.
//
-// 1. Patch this pidl file with
+// The command used to generate code from this IDL file is:
//
-// patch < diffs/IFR_Extended.pidl.diff
-//
-// This will remove the CORBA module, rename most types foo
-// declared in it as CORBA_foo, unalias the simple typedefs
-// which don't have a CORBA_ analog in corbafwd.h.
-//
-// 2. Generate the code. The command used to generate code from this
-// IDL file is:
-//
-// tao_idl -o orig -Ge 1 -I.. \
+// tao_idl -Ge 1 -I.. \
// -Wb,export_macro=TAO_IFR_Client_Export \
// -Wb,export_include=ifr_client_export.h \
// -Wb,pre_include="ace/pre.h" \
// -Wb,post_include="ace/post.h" \
-// IFR_Extended.pidl
+// IFR_ExtendedC.pidl
//
-// 3. Copy the generated files to the current directory.
+// Only the stub files are used in the TAO_IFR_Client library. The
+// skeleton files can be deleted from this directory.
//
-// 4. Patch the generated files, using
-//
-// patch < diffs/IFR_ExtendedC.h.diff
-// patch < diffs/IFR_ExtendedC.i.diff
-// patch < diffs/IFR_ExtendedC.cpp.diff
+// No patching of the generated stub files is necessary.
//
-// If this fails for some reason, the files must be patched
-// by hand, and the diff files regenerated with
+// To generate the skeleton files for the IFR Service, the command is:
//
-// diff -wbu orig/IFR_ExtendedC.h IFR_ExtendedC.h > diffs/IFR_ExtendedC.h.diff
-// diff -wbu orig/IFR_ExtendedC.i IFR_ExtendedC.i > diffs/IFR_ExtendedC.i.diff
-// diff -wbu orig/IFR_ExtendedC.cpp IFR_ExtendedC.cpp > diffs/IFR_ExtendedC.cpp.diff
+// tao_idl -o ../../orbsvcs/orbsvcs/IFRService -Ge 1 \
+// -Wb,pre_include="ace/pre.h" \
+// -Wb,post_include="ace/post.h" \
+// IFR_ExtendedC.pidl
//
-// 5. Restore IFR_Extended.pidl.
+// The only modification necessary to the skelton files is to
+// change
//
-// To regenerate the skeleton files IFR_ExtendedS.{h,i,cpp} and
-// IFR_ExtendedS_T.{h,i.cpp} in ACE_ROOT/TAO/orbsvcs/IFR_Service,
-// use the command
+// #include "IFR_ExtendedC.h"
//
-// tao_idl -o ../../orbsvcs/IFR_Service/orig -Ge 1 \
-// -Wb,pre_include="ace/pre.h" \
-// -Wb,post_include="ace/post.h" \
-// IFR_Extended.pidl
+// to
+//
+// #include "tao/IFR_Client/IFR_ExtendedC.h"
+//
+// in IFR_ExtendedS.h. The stub files may be deleted from the IFRService
+// directory.
//
// ================================================================
@@ -67,11 +56,11 @@
#include "IFR_Basic.pidl"
-#pragma prefix "omg.org"
-
module CORBA
{
- typedef short ValueModifier; // PIDL
+// Already defined in corbafwd.h, included from orb.idl.
+/*
+ typedef short ValueModifier;
const ValueModifier VM_NONE = 0;
const ValueModifier VM_CUSTOM = 1;
const ValueModifier VM_ABSTRACT = 2;
@@ -80,7 +69,7 @@ module CORBA
typedef short Visibility;
const Visibility PRIVATE_MEMBER = 0;
const Visibility PUBLIC_MEMBER = 1;
-
+*/
interface FixedDef : IDLType
{
attribute unsigned short digits;
@@ -107,7 +96,9 @@ module CORBA
attribute Visibility access;
};
- interface ValueDef : Container, Contained, IDLType
+ interface ValueDef : Container,
+ Contained,
+ IDLType
{
// read/write interface
attribute InterfaceDefSeq supported_interfaces;
@@ -183,12 +174,49 @@ module CORBA
RepositoryId base_value;
};
+ interface ExtValueDef : ValueDef
+ {
+ // read/write interface
+ attribute ExtInitializerSeq ext_initializers;
+
+ // read interface
+ struct ExtFullValueDescription
+ {
+ Identifier name;
+ RepositoryId id;
+ boolean is_abstract;
+ boolean is_custom;
+ RepositoryId defined_in;
+ VersionSpec version;
+ OpDescriptionSeq operations;
+ ExtAttrDescriptionSeq attributes;
+ ValueMemberSeq members;
+ ExtInitializerSeq initializers;
+ RepositoryIdSeq supported_interfaces;
+ RepositoryIdSeq abstract_base_values;
+ boolean is_truncatable;
+ RepositoryId base_value;
+ TypeCode type;
+ };
+
+ ExtFullValueDescription describe_ext_value ();
+
+ // write interface
+ ExtAttributeDef create_ext_attribute (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType type,
+ in AttributeMode mode,
+ in ExceptionDefSeq get_exceptions,
+ in ExceptionDefSeq set_exceptions
+ );
+ };
+
interface ValueBoxDef : TypedefDef
{
attribute IDLType original_type_def;
};
};
-#pragma prefix ""
-
#endif /* _IFR_EXTENDED_IDL_ */