Cleanup ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE, all platforms support it so far as I can...
[ACE_TAO.git] / ACE / apps / JAWS3 / zREADME
blob6950788a87d0d2cc18879a06714c164fc510bc19
3 The framework is organized roughly around these high level component
4 categories.  The sublevels indicate the JAWS components that
5 participate in the category.
7        Event Framework
8           JAWS_Event_Dispatcher
9           JAWS_Event_Completer
10           JAWS_Event_Result
12        Input/Output Events
13           JAWS_IO
14           JAWS_IO_Impl
15           JAWS_Asynch_IO
16           JAWS_Synch_IO
17           JAWS_Reactive_IO
19        Timing Events
20           JAWS_Timer
21           JAWS_Timer_Impl
22           JAWS_Task_Timer
24        Protocol Framework
25           JAWS_Protocol_Handler
26           JAWS_Protocol_State
28        Concurrency Framework
29           JAWS_Concurrency
30           JAWS_Concurrency_Impl
31           JAWS_THYBRID_Concurrency
32           JAWS_TPOOL_Concurrency
33           JAWS_TPR_Concurrency
36 The Event Framework:
38    The JAWS_Event_Dispatcher remains hidden to the application
39    developer.  It is initialized from the main program which is built
40    within the jaws3 subdirectory, and uses ACE_Reactor and
41    ACE_Proactor.
43    The JAWS_Event_Completer is a callback helper class that is used by
44    the JAWS_Event_Dispatcher.  A completer is passed into the Event
45    Framework whenever an application developer wants to initiate an
46    event.  When the event completes, the completer is called for
47    notification.
49    The JAWS_Event_Result is a class that describes the result of the
50    event for the completer when the completer gets called back.
52 Input/Output Events
54    The JAWS_IO class bridges IO event dispatching methods to the
55    JAWS_IO_Impl abstraction.  It delegates its IO interfaces to
56    corresponding methods in JAWS_IO_Impl.
58    JAWS_Asynch_IO, JAWS_Synch_IO, and JAWS_Reactive_IO all derive from
59    JAWS_IO_Impl.  The usage API for these classes follows an
60    asynchronous usage interface.  This enables an application to
61    experiment with different underlying IO implementations to see how
62    it impacts performance without redesigning/rewriting the entire
63    application.
65 Timer Events
67    The JAWS_Timer class bridges timer dispatching methods to the
68    JAWS_Timer_Impl abstraction.
70    JAWS_Task_Timer derives from JAWS_Timer_Impl, and uses a task
71    coupled with an ACE_Timer_Wheel to implement timers.
73 Protocol Framework
75   The JAWS_Protocol_Handler plays the role of Context in the State
76   pattern, while the JAWS_Protocol_State plays the role of State.  The
77   JAWS_Protocol_Handler's service() method delegates to the service()
78   method of an associated JAWS_Protocol_State.  In addition, the
79   JAWS_Protocol_Handler also derives from JAWS_Event_Completer.
81   The idea is that the application developer will derive from
82   JAWS_Protocol_State to fill out the programmatical details of their
83   protocol.  At the end of the state, an asynchronous event will be
84   initiated, and the state returns the control of the thread back to
85   the framework.  When the event completes, the associated
86   JAWS_Protocol_Handler is called back, and it then triggers a call
87   into the JAWS_Protocol_State's transition() method.  This method
88   is to return the next state or the protocol.  The event completion
89   callback then enqueues itself with one of the concurrency
90   implementations of the Concurrency Framework.
92 Concurrency Framework
94   The JAWS_Concurrency class bridges concurrency mechanisms to the
95   JAWS_Concurrency_Impl abstraction.
97   JAWS_THYBRID_Concurrency, JAWS_TPOOL_Concurrency and
98   JAWS_TPR_Concurrency derive from JAWS_Concurrency_Impl.  They are
99   active objects that dequeue JAWS_Protocol_Handlers and call into
100   their service() methods.