summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-22 17:27:39 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-22 17:27:39 +0000
commit5d702a2bd359823bb37e0bf02ee602daeaae6799 (patch)
tree13f6cff6799a39fa88cbb2dc3353053db71343ad
parentfe639ac1ea7d30756ec66a5a25e0edb8318191f4 (diff)
downloadATCD-5d702a2bd359823bb37e0bf02ee602daeaae6799.tar.gz
This commit was manufactured by cvs2svn to create branch 'poa'.
-rw-r--r--TAO/orbsvcs/orbsvcs/PropertyService.idl215
-rw-r--r--TAO/orbsvcs/orbsvcs/TAO_IDL_templates.cpp26
-rw-r--r--TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp15
-rw-r--r--TAO/release.chk89
-rwxr-xr-xTAO/release.pl73
-rw-r--r--TAO/tao/strategy_T.cpp56
-rw-r--r--TAO/tao/strategy_T.h44
-rw-r--r--TAO/tao/strategy_T.i21
-rw-r--r--TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp15
-rw-r--r--TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp15
10 files changed, 569 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/PropertyService.idl b/TAO/orbsvcs/orbsvcs/PropertyService.idl
new file mode 100644
index 00000000000..34192d420ce
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/PropertyService.idl
@@ -0,0 +1,215 @@
+// -*-c++-*-
+
+// $Id$
+
+// The property service, downloaded from
+// ftp://ftp.omg.org/pub/docs/1995/95-06-01.ps
+
+module CosPropertyService {
+
+ /*****************************************************/
+ /* Data Types */
+ /*****************************************************/
+
+ typedef string PropertyName;
+ struct Property {
+ PropertyName property_name;
+ any property_value;
+ };
+
+ enum PropertyModeType {
+ normal,
+ read_only,
+ fixed_normal,
+ fixed_readonly,
+ undefined };
+
+ struct PropertyDef {
+ PropertyName property_name;
+ any property_value;
+ PropertyModeType property_mode; };
+
+ struct PropertyMode {
+ PropertyName property_name;
+ PropertyModeType property_mode;
+ };
+
+ typedef sequence<PropertyName> PropertyNames;
+ typedef sequence<Property> Properties;
+ typedef sequence<PropertyDef> PropertyDefs;
+ typedef sequence<PropertyMode> PropertyModes;
+ typedef sequence<TypeCode> PropertyTypes;
+
+ interface PropertyNamesIterator;
+ interface PropertiesIterator;
+ interface PropertySetFactory;
+ interface PropertySetDef;
+ interface PropertySet;
+
+ /*****************************************************/
+ /* Exceptions*/
+ /*****************************************************/
+ exception ConstraintNotSupported{};
+ exception InvalidPropertyName {};
+ exception ConflictingProperty {};
+ exception PropertyNotFound {};
+ exception UnsupportedTypeCode {};
+ exception UnsupportedProperty {};
+ exception UnsupportedMode {};
+ exception FixedProperty {};
+ exception ReadOnlyProperty {};
+
+ enum ExceptionReason {
+ invalid_property_name,
+ conflicting_property,
+ property_not_found,
+ unsupported_type_code,
+ unsupported_property,
+ unsupported_mode,
+ fixed_property,
+ read_only_property
+ };
+
+ // @@ this was a `struct' in the original definition, I changed it
+ // to be an `exception'.
+ exception PropertyException {
+ ExceptionReason reason;
+ PropertyName failing_property_name;
+ };
+
+ typedef sequence<PropertyException> PropertyExceptions;
+
+ exception MultipleExceptions {
+ PropertyExceptions exceptions;
+ };
+
+ /*****************************************************/
+ /* Interface Definitions */
+ /*****************************************************/
+
+ interface PropertySetFactory {
+ PropertySet create_propertyset();
+ PropertySet create_constrained_propertyset(in PropertyTypes allowed_property_types,
+ in Properties allowed_properties)
+ raises(ConstraintNotSupported);
+ PropertySet create_initial_propertyset(in Properties initial_properties)
+ raises(MultipleExceptions);
+ };
+
+ /*---------------------------------------------------*/
+ interface PropertySetDefFactory {
+ PropertySetDef create_propertysetdef();
+ PropertySetDef create_constrained_propertysetdef(in PropertyTypes allowed_property_types,
+ in PropertyDefs allowed_property_defs)
+ raises(ConstraintNotSupported);
+ PropertySetDef create_initial_propertysetdef (in PropertyDefs initial_property_defs)
+ raises(MultipleExceptions);
+ };
+
+ /*---------------------------------------------------*/
+ interface PropertySet {
+ /* Support for defining and modifying properties */
+ void define_property (in PropertyName property_name,
+ in any property_value)
+ raises(InvalidPropertyName,
+ ConflictingProperty,
+ UnsupportedTypeCode,
+ UnsupportedProperty,
+ ReadOnlyProperty);
+
+ void define_properties (in Properties nproperties)
+ raises (MultipleExceptions);
+
+ /* Support for Getting Properties and their Names */
+ unsigned long get_number_of_properties();
+
+ void get_all_property_names(in unsigned long how_many,
+ out PropertyNames property_names,
+ out PropertyNamesIterator rest);
+
+ any get_property_value(in PropertyName property_name)
+ raises(PropertyNotFound,
+ InvalidPropertyName);
+
+ boolean get_properties(in PropertyNames property_names,
+ out Properties nproperties);
+
+ void get_all_properties(in unsigned long how_many,
+ out Properties nproperties,
+ out PropertiesIterator rest);
+
+ /* Support for Deleting Properties */
+ void delete_property (in PropertyName property_name)
+ raises (PropertyNotFound,
+ InvalidPropertyName,
+ FixedProperty);
+
+ void delete_properties(in PropertyNames property_names)
+ raises (MultipleExceptions);
+
+ boolean delete_all_properties();
+
+ /* Support for Existence Check */
+ boolean is_property_defined(in PropertyName property_name)
+ raises(InvalidPropertyName);
+
+ };
+
+ /*---------------------------------------------------*/
+ interface PropertySetDef:PropertySet {
+ /* Support for retrieval of PropertySet constraints*/
+ void get_allowed_property_types(out PropertyTypes property_types);
+ void get_allowed_properties(out PropertyDefs property_defs);
+
+ /* Support for defining and modifying properties */
+ void define_property_with_mode(in PropertyName property_name,
+ in any property_value,
+ in PropertyModeType property_mode)
+ raises(InvalidPropertyName,
+ ConflictingProperty,
+ UnsupportedTypeCode,
+ UnsupportedProperty,
+ UnsupportedMode,
+ ReadOnlyProperty);
+
+ void define_properties_with_modes(in PropertyDefs property_defs)
+ raises(MultipleExceptions);
+
+ /* Support for Getting and Setting Property Modes */
+ PropertyModeType get_property_mode(in PropertyName property_name)
+ raises(PropertyNotFound,
+ InvalidPropertyName);
+
+ boolean get_property_modes(in PropertyNames property_names,
+ out PropertyModes property_modes);
+
+ void set_property_mode(in PropertyName property_name,
+ in PropertyModeType property_mode)
+ raises(InvalidPropertyName,
+ PropertyNotFound,
+ UnsupportedMode);
+
+ void set_property_modes(in PropertyModes property_modes)
+ raises(MultipleExceptions);
+ };
+
+ /*---------------------------------------------------*/
+ interface PropertyNamesIterator
+ {
+ void reset();
+ boolean next_one(out PropertyName property_name);
+ boolean next_n (in unsigned long how_many,
+ out PropertyNames property_names);
+ void destroy();
+ };
+
+ /*---------------------------------------------------*/
+ interface PropertiesIterator {
+ void reset();
+ boolean next_one(out Property aproperty);
+ boolean next_n(in unsigned long how_many,
+ out Properties nproperties);
+ void destroy();
+ };
+
+};
diff --git a/TAO/orbsvcs/orbsvcs/TAO_IDL_templates.cpp b/TAO/orbsvcs/orbsvcs/TAO_IDL_templates.cpp
new file mode 100644
index 00000000000..46fee9fe9ff
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/TAO_IDL_templates.cpp
@@ -0,0 +1,26 @@
+//
+// $Id$
+//
+
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/RtecEventCommC.h"
+#include "orbsvcs/RtecEventChannelAdminC.h"
+#include "orbsvcs/RtecSchedulerC.h"
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class TAO_Unbounded_Sequence<CosNaming::NameComponent>;
+template class TAO_Unbounded_Sequence<CosNaming::Binding>;
+template class TAO_Unbounded_Sequence<RtecEventComm::Event>;
+template class TAO_Unbounded_Sequence<RtecEventChannelAdmin::Dependency>;
+template class TAO_Unbounded_Sequence<RtecEventChannelAdmin::Publication>;
+template class TAO_Unbounded_Sequence<RtecScheduler::Dependency_Info>;
+template class TAO_Unbounded_Sequence<RtecScheduler::RT_Info>;
+#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_Unbounded_Sequence<CosNaming::NameComponent>
+#pragma instantiate TAO_Unbounded_Sequence<CosNaming::Binding>
+#pragma instantiate TAO_Unbounded_Sequence<RtecEventComm::Event>
+#pragma instantiate TAO_Unbounded_Sequence<RtecEventChannelAdmin::Dependency>
+#pragma instantiate TAO_Unbounded_Sequence<RtecEventChannelAdmin::Publication>
+#pragma instantiate TAO_Unbounded_Sequence<RtecScheduler::Dependency_Info>
+#pragma instantiate TAO_Unbounded_Sequence<RtecScheduler::RT_Info>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp
new file mode 100644
index 00000000000..0d0db7963f6
--- /dev/null
+++ b/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp
@@ -0,0 +1,15 @@
+//
+// $Id$
+//
+
+// The contents of this file REALLY should be generated by the IDL
+// compiler, but that functionality isn't available yet.
+
+#include "cubitC.h"
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class TAO_Unbounded_Sequence<long>;
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_Unbounded_Sequence<long>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+
diff --git a/TAO/release.chk b/TAO/release.chk
new file mode 100644
index 00000000000..823128b4661
--- /dev/null
+++ b/TAO/release.chk
@@ -0,0 +1,89 @@
+# $Id$
+
+# Hint: use picture-mode to make editing this easier (C-c . will set
+# the direction to "down".
+
+Legend:
+ Platforms are indicated by position within square brackets, i.e.,
+ [ABCDEF] where
+
+ A = Solaris/CC
+ B = NT (MSVC++ 5.0)
+ C = Solaris/g++
+ D = IRIX
+ E = Linux/g++
+ F = Other (Linux/egcs, Solaris/egcs, etc.)
+
+ The state is indicated as a tri-state value, e.g.,
+
+ 0 = doesn't work
+ 1 = works
+ x = not attempted or unknown
+
+
+[1111 ] libTAO and TAO_IDL compile.
+[1111 ] IDL_Cubit compiles
+ [1111 ] Runs
+[1111 ] Param_Test compiles and runs for
+ [x111 ] DII short
+ [x111 ] DII ubstring
+ [x011 ] DII fixed_struct
+ [x100 ] DII strseq
+ [x100 ] DII var_struct
+ [x100 ] DII nested_struct
+ [x000 ] DII struct_seq
+ [x000 ] DII objref
+
+ [1111 ] SII short
+ [1111 ] SII ubstring
+ [1011 ] SII fixed_struct
+ [1111 ] SII strseq
+ [1111 ] SII var_struct
+ [1111 ] SII nested_struct
+ [0000 ] SII struct_seq
+ [0000 ] SII objref
+[1110 ] MT_Cubit compiles
+ [101x ] runs for Octet
+ [101x ] runs for Short
+ [101x ] runs for Long
+ [101x ] runs for Struct
+[1101 ] orbsvcs compiles
+ [10 x ] Event_Latency runs
+ [0x x ] Simple_Naming runs
+ [xx x ] Logger runs
+
+NOTES
+* Solaris/CC
+
+* NT
+** Warnings on libTAO and tao_idl compilation.
+** Param_Test with struct_seq segfaults server.
+** MT_Cubit client segfaults after transactions made.
+
+* Solaris/g++
+** Warnings during tao_idl compilation.
+** SII,DII struct_seq causes a bus error on the server.
+** SII objref causes marshal exceptions, but no fatalities.
+** DII objref client gets illegal instruction.
+** orbsvcs fails with missing stuff in ACE_Map_Manager.
+** MT_Cubit gets relocation error on startup:
+ ld.so.1: ./svr: fatal: relocation error: symbol not found:
+ ACE_Task_Base::activate(long, int, int, long, int, ACE_Task_Base *,
+ unsigned int *): referenced in ./svr
+
+* IRIX
+** Event Latency won't work because unproper detection of failures for
+ priority change.
+ MT_Cubit does not compile due to extra library (-lposix4) only
+ present in Solaris; IMHO that should go into the platform file for
+ Solaris/CC
+
+* Linux/g++
+* Other (Linux/egcs, Solaris/egcs, etc.)
+
+
+
+# eval:(overwrite-mode nil)
+# Local Variables:
+# mode:indented-text
+# End:
diff --git a/TAO/release.pl b/TAO/release.pl
new file mode 100755
index 00000000000..2bbeeb919b0
--- /dev/null
+++ b/TAO/release.pl
@@ -0,0 +1,73 @@
+$date = `/usr/bin/date +"%a %b %d %T %Y"`;
+chop $date;
+$VERSION = "VERSION";
+$CHANGELOG = "ChangeLog";
+$TAO_VERSION = '';
+$MODNAME = 'TAO';
+
+sub inplace {
+ my($ext, @files) = @_;
+ my(@nfiles) = ();
+ my($nfile);
+ $ext = '~' if ($ext eq '');
+ foreach $file (@files) {
+ $nfile = $file . $ext;
+ if (rename ($file, $nfile)) {
+ push(@nfiles, $nfile);
+ }
+ else {
+ warn "Unable to rename $files[$i] for in-place editing: $!\n";
+ }
+ }
+ @nfiles;
+}
+
+@inplace = inplace('.del', $VERSION, $CHANGELOG);
+
+open (VERSION, $inplace[0])
+ || die "Unable to open file $inplace[0] for inplace edit: $!\n";
+open (VERSIONOUT, ">$VERSION")
+ || die "Unable to open file $VERSION for writing: $!\n";
+
+undef $version_number;
+while (<VERSION>) {
+ s/(TAO version \d+\.\d+\.)(\d+)/sprintf("$1%d",$2+1)/e;
+ ($version_number = $_) =~ s/.*(\d+\.\d+\.\d+).*/$1/ if (!defined($version_number));
+ if (s/(, released ).*/$1$date./) {
+ ($TAO_VERSION = $_) =~ s/^This is //;
+ }
+ print VERSIONOUT $_;
+}
+
+close (VERSIONOUT);
+close (VERSION);
+
+
+$message = $date." ".$ENV{"SIGNATURE"}." <".$ENV{"LOGNAME"}."\@cs.wustl.edu>\n\n\t* ".$TAO_VERSION."\n";
+$message_printed = 0;
+
+open (CHANGELOG, $inplace[1])
+ || die "Unable to open file $inplace[1] for inplace edit: $!\n";
+open (CHANGELOGOUT, ">$CHANGELOG")
+ || die "Unable to open file $CHANGELOG for writing: $!\n";
+
+while (<CHANGELOG>) {
+ print CHANGELOGOUT "$message" if ( ! $message_printed++ );
+ print CHANGELOGOUT $_;
+}
+
+close (CHANGELOG);
+close (CHANGELOGOUT);
+
+# Morph the version number
+chop $version_number;
+($version_tag = $MODNAME."-".$version_number) =~ s/\./_/g;
+
+$CVSCOM = 'cvs';
+$COM = qq/$CVSCOM commit -m'$TAO_VERSION' $VERSION $CHANGELOG && $CVSCOM rtag $version_tag $MODNAME/;
+print $COM;
+system $COM;
+
+#unlink @inplace;
+
+
diff --git a/TAO/tao/strategy_T.cpp b/TAO/tao/strategy_T.cpp
new file mode 100644
index 00000000000..e47a8472046
--- /dev/null
+++ b/TAO/tao/strategy_T.cpp
@@ -0,0 +1,56 @@
+// ============================================================================
+//
+// = FILENAME
+// strategy_T.cpp
+//
+// = AUTHOR
+// Chris Cleeland
+//
+// = VERSION
+// $Id$
+// ============================================================================
+
+#include "tao/strategy_T.h"
+
+#if !defined (__ACE_INLINE__)
+#include "tao/strategy_T.i"
+#endif /* __ACE_INLINE__ */
+
+template <class SH> int
+TAO_Reactive_Strategy<SH>::activate_svc_handler (SH *svc_handler, void *arg)
+{
+ ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::activate_svc_handler");
+
+ ACE_Reactor *r = TAO_ORB_Core_instance ()->reactor ();
+
+ int result = 0;
+
+ if (r == 0)
+ result = -1;
+
+ // Register with the Reactor with the appropriate <mask>.
+ else if (r->register_handler (svc_handler, this->mask_) == -1)
+ result = -1;
+
+ // If the implementation of the reactor uses event associations
+ else if (r->uses_event_associations ())
+ {
+ // If we don't have non-block on, it won't work with
+ // WFMO_Reactor
+ // This maybe too harsh
+ // if (!ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK))
+ // goto failure;
+ if (svc_handler->open ((void *) this) != -1)
+ return 0;
+ else
+ result = -1;
+ }
+ else
+ // Call up to our parent to do the SVC_HANDLER initialization.
+ return this->inherited::activate_svc_handler (svc_handler, arg);
+
+ if (result == -1)
+ svc_handler->close (0);
+
+ return result;
+}
diff --git a/TAO/tao/strategy_T.h b/TAO/tao/strategy_T.h
new file mode 100644
index 00000000000..c9afa9d9c88
--- /dev/null
+++ b/TAO/tao/strategy_T.h
@@ -0,0 +1,44 @@
+// This may look like C, but it's really -*- C++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO
+//
+// = FILENAME
+// strategy_T.h
+//
+// = AUTHOR
+// Chris Cleeland
+//
+// ============================================================================
+
+#if !defined (TAO_STRATEGY_T_H)
+# define TAO_STRATEGY_T_H
+
+#include "ace/Strategies_T.h"
+
+template <class SH>
+class TAO_Reactive_Strategy : public ACE_Reactive_Strategy<SH>
+{
+public:
+ TAO_Reactive_Strategy (void);
+ ~TAO_Reactive_Strategy (void);
+
+ virtual int activate_svc_handler (SH *sh, void *arg);
+};
+
+#if defined (__ACE_INLINE__)
+#include "tao/strategy_T.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "tao/strategy_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("strategy_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_STRATEGY_T_H */
diff --git a/TAO/tao/strategy_T.i b/TAO/tao/strategy_T.i
new file mode 100644
index 00000000000..f5d1dba232a
--- /dev/null
+++ b/TAO/tao/strategy_T.i
@@ -0,0 +1,21 @@
+// ============================================================================
+//
+// = FILENAME
+// strategy_T.i
+//
+// = AUTHOR
+// Chris Cleeland
+//
+// = VERSION
+// $Id$
+// ============================================================================
+
+
+template <class SH> ACE_INLINE
+TAO_Reactive_Strategy<SH>::TAO_Reactive_Strategy (void)
+{}
+
+template <class SH> ACE_INLINE
+TAO_Reactive_Strategy<SH>::~TAO_Reactive_Strategy (void)
+{}
+
diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp
new file mode 100644
index 00000000000..0d0db7963f6
--- /dev/null
+++ b/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp
@@ -0,0 +1,15 @@
+//
+// $Id$
+//
+
+// The contents of this file REALLY should be generated by the IDL
+// compiler, but that functionality isn't available yet.
+
+#include "cubitC.h"
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class TAO_Unbounded_Sequence<long>;
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_Unbounded_Sequence<long>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+
diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp
new file mode 100644
index 00000000000..0d0db7963f6
--- /dev/null
+++ b/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp
@@ -0,0 +1,15 @@
+//
+// $Id$
+//
+
+// The contents of this file REALLY should be generated by the IDL
+// compiler, but that functionality isn't available yet.
+
+#include "cubitC.h"
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class TAO_Unbounded_Sequence<long>;
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_Unbounded_Sequence<long>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+