summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-15 00:57:31 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-15 00:57:31 +0000
commit0033ba8518775f6e8d82d784157f9949c68b5d67 (patch)
tree188203814e9ca11d16830c4f4b7fd3ca9a58da02
parent5a47588fb820adb365c245dd7a8837e0fe61cbdc (diff)
downloadATCD-0033ba8518775f6e8d82d784157f9949c68b5d67.tar.gz
*** empty log message ***
-rw-r--r--ChangeLog-97b189
1 files changed, 189 insertions, 0 deletions
diff --git a/ChangeLog-97b b/ChangeLog-97b
index 01e912f0163..a6fafcd02bb 100644
--- a/ChangeLog-97b
+++ b/ChangeLog-97b
@@ -1,3 +1,192 @@
+Sun Sep 14 10:35:57 1997 <irfan@TWOSTEP>
+
+ * ace/Reactor: The Reactor classes (ACE_Reactor and ACE_ReactorEx)
+ have changed. The motivation for this change was to allow users
+ to program abstractly and use the most efficient implementation
+ available on their platform. At the same time, we wanted to
+ make the changes required by the users kept to a minimal.
+
+ Here is a layout of the new Reactor hierarchy in ACE (an example
+ of the GOF Bridge Pattern). Thanks to Thomas Jordan
+ (Thomas_Jordan@deluxedata.com) for suggesting this new design.
+
+
+ Reactor -----> Reactor_Impl
+ ^
+ |
+ --------------------
+ ^ ^
+ | |
+ Select_Reactor WFMO_Reactor
+
+ Reactor:
+
+ The Reactor class now becomes an interface class that contains
+ a pointer to an implementation class. All methods of the
+ Reactor class forward all calls to the appropriate
+ implementation class. Users can pass in their own
+ implementation class. If an implementation class is not
+ supplied at creation time, the following default rules apply:
+
+ On non-Win32 platforms: An instance of the Select_Reactor
+ class will be created and used as the implementation.
+
+ On Win32 platforms: An instance of the WFMO_Reactor class will
+ be created and used as the implementation. This default
+ behavior can be overwritten at compile-time by setting the
+ ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL flag. In this case, an
+ instance of the Select_Reactor class will be created and used
+ as the implementation.
+
+ Reactor_Impl:
+
+ Reactor_Impl is an abstract class (i.e., the Bridge).
+ Select_Reactor and WFMO_Reactor inherit from this class.
+
+ Select_Reactor:
+
+ Previously known as the Reactor class. This class implements
+ the Reactor_Impl interface by using the select() system
+ call. This implementation is available on all platforms
+ (including Win32).
+
+ WFMO_Reactor:
+
+ WFMO (Wait For Multiple Objects) Reactor, previously known as
+ the ReactorEx class. This class implements the Reactor_Impl
+ interface by using the WaitForMultipleObjects() system call.
+ This implementation is currently only available on Win32
+ platforms.
+
+ Code changes for users:
+
+ The higher authorities of ACE have decided that ReactorEx was
+ a "goofy" name and made little sense in the new hierarchy.
+ Therefore users using the old ReactorEx will have to change
+ over to start using the Reactor class (and make sure that the
+ implementation class being used is WFMO_Reactor).
+
+ Also users that have extended Reactor or ReactorEx must
+ now subclass from Select_Reactor or WFMO_Reactor,
+ respectively.
+
+ * ace/ReactorEx:
+
+ The ReactorEx interface has been extended to be identical to the
+ Reactor interface. Some of these new operations will not be
+ supported in this version. However, we will have interface
+ compatability at this point. This allows the creation of the new
+ Reactor hierarchy in ACE.
+
+ Removed all static (singleton) methods from ReactorEx. These are
+ not necessary anymore since ReactorEx will become an
+ implementation class. Reactor will take over this functionality.
+
+ Changed methods names from resume_all to resume_handlers and
+ suspend_all to suspend_handlers. This increases the similarity
+ between ReactorEx and Reactor.
+
+ Add a lock_adapter so that we can return an ACE_Lock form of our
+ internal lock.
+
+ Added signal handling capabilities to ReactorEx.
+
+ Added handler, requeue_position, mask_ops, and ready_ops
+ operations. However, they are not supported in this
+ version. They are mostly here for interface compatibility with
+ Reactor.
+
+ Added a size() accessor that returns the current size of the
+ ReactorEx's internal descriptor table.
+
+ Added an initialized() accessor that returns true if ReactorEx
+ has been successfully initialized, else false.
+
+ * ace/Reactor:
+
+ The Reactor interface has been extended to be identical to the
+ ReactorEx interface. Some of these new operations will not be
+ supported in this version. However, we will have interface
+ compatability at this point. This allows the creation of the new
+ Reactor hierarchy in ACE.
+
+ Added resume_handler(ACE_Handle_Set &) and
+ suspend_handler(ACE_Handle_Set &) to the Reactor. This
+ increases the similarity between ReactorEx and Reactor.
+
+ Add a lock_adapter so that we can return an ACE_Lock form of our
+ internal lock. This changes the signature of the return type
+ from ACE_Reactor_Lock to ACE_Lock.
+
+ Added a size() accessor that returns the current size of the
+ Reactor's internal descriptor table.
+
+ Added wakeup_all_thread() operation. Currently it just does a
+ notify.
+
+ Added alertable_handle_events() operation. Currently it just
+ calls handle_events().
+
+ Added register_handler (that take event handles) operations.
+ However, they are not supported in this version. They are mostly
+ here for interface compatibility with ReactorEx.
+
+ * ace/XtReactor: Now inherits from Select_Reactor instead of
+ Reactor.
+
+ * ace/Timer_Queue_T.h: Removed the inclusion of Time_Value.h. This
+ file does not exist anymore
+
+ * ace/Synch_T (ACE_Lock_Adapter): Changed the implementation of
+ the adapter such that the user is allowed to (optionally) pass
+ in the locking mechanism.
+
+ * ace/Strategies: Removed ACE_ReactorEx_Notification_Strategy.
+
+ * ace/Service_Config: Updated Service_Config so that all ReactorEx
+ and Proactor methods are removed. ReactorEx does not exist any
+ longer and Proactor methods are available as statics methods on
+ the Proactor class.
+
+ * ace/OS.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): Changed
+ ACE_DEFAULT_REACTOR_SIZE to ACE_DEFAULT_SELECT_REACTOR_SIZE.
+ There is no default size dictated by the Reactor class anymore.
+
+ * ace/Local_Tokens,Token: Added new methods: acquire_read,
+ acquire_write, tryacquire_read, tryacquire_write. These methods
+ allow the Tokens to be used by the ACE_Lock_Adapter class.
+
+ * ace/Handle_Set.h (MAXSIZE): Changed ACE_DEFAULT_REACTOR_SIZE to
+ ACE_DEFAULT_SELECT_REACTOR_SIZE. There is no default size
+ dictated by the Reactor class anymore.
+
+ * ace/Event_Handler: Removed the Proactor and ReactorEx pointers
+ from Event_Handler. The Proactor has its own event handler
+ (ACE_Handler), and the ReactorEx does not exist anymore.
+
+ * ace/Proactor:
+
+ Changed Proactor to work with the new Reactor.
+
+ Updated Proactor to bring it upto date with the recent changes
+ to the Timer_Queue.
+
+ * tests:
+
+ Removed the ACE_NEW_THREAD macro. With the new thread adapter,
+ the log stream for the new thread will automatically be set to
+ the creator thread's stream. Therefore, this macro is not
+ needed.
+
+ Removed the inclusion of Service_Config.h. All tests are now
+ accessing the singletons that are supported by the class directly.
+
+ * examples/Reactor/Proactor: Updated examples to use and access
+ the new Reactor class instead of the old ReactorEx.
+
+ * examples/Reactor/ReactorEx: Updated examples to use and access
+ the new Reactor class instead of the old ReactorEx.
+
Sun Sep 14 09:50:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
* ace/Singleton.i (ACE_Singleton): Moved the definition of the