~ubuntu-branches/ubuntu/breezy/ace/breezy

« back to all changes in this revision

Viewing changes to TAO/docs/ORB_Internals.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad, Benjamin Montgomery, Adam Conrad
  • Date: 2005-09-18 22:51:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 sarge) (0.1.2 woody)
  • Revision ID: james.westby@ubuntu.com-20050918225138-seav22q6fyylb536
Tags: 5.4.7-3ubuntu1
[ Benjamin Montgomery ]
* Added a patch for amd64 and powerpc that disables the compiler
  option -fvisibility-inlines-hidden

[ Adam Conrad ]
* Added DPATCH_OPTION_CPP=1 to debian/patches/00options to make
  Benjamin's above changes work correctly with dpatch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2
 
<html>
3
 
  <head>
4
 
    <!-- ORB_Internals.html,v 1.1 1999/09/13 15:03:52 coryan Exp -->
5
 
    <title>TAO ORB Internals</title>
6
 
  </head>
7
 
 
8
 
  <body>
9
 
    <h1>TAO ORB Internals</h1>
10
 
 
11
 
    <P>This document will describe how the ORB internals work, with
12
 
      special attention to the areas that are more poorly documented.
13
 
      For example: we will not document (at least initially) the
14
 
      pluggable protocols framework, the interpretive marshaling
15
 
      engine, the POA, the waiting strategies and the
16
 
      leader-follower.
17
 
    </P>
18
 
    <P>New ORB developers are expected to read this document and
19
 
      document here all the things that they find hard to understand,
20
 
      surprizing or event broken.
21
 
      New members of the ORB core team are expected to fill in details 
22
 
      that were not explained before.
23
 
    </P>
24
 
 
25
 
    <H3>Client Side event sequence</H3>
26
 
 
27
 
    <P>In this section we will document the sequence of calls and
28
 
      interactions on the client side.
29
 
      Only the synchronous case, without forwarding or exceptions is
30
 
      documented at this point.
31
 
    </P>
32
 
 
33
 
    <P>Assume the application invokes a method on an object reference, 
34
 
      in the generated stub for that method the following sequence is
35
 
      started:
36
 
    <UL>
37
 
      <LI>creates TAO_GIOP_Twoway_Invocation object
38
 
      </LI>
39
 
      <LI>calls start method on the invocation object
40
 
      </LI>
41
 
 
42
 
      <LI>TAO_GIOP_Twoway_Invocation::start:
43
 
        <UL>
44
 
          <LI>finds the profile to use for this invocation
45
 
          </LI>
46
 
          <LI>passes the profile to Connector Registry to obtain 
47
 
            TAO_Transport object (wrapper around Service_Handler)
48
 
          </LI>
49
 
          <LI>generates and marshalls GIOP & Request headers for this
50
 
            invocation
51
 
          </LI>
52
 
        </UL>
53
 
      </LI>
54
 
        
55
 
      <LI>marshalls request parameters
56
 
      </LI>
57
 
      <LI>calls invoke method on the invocation object
58
 
      </LI>
59
 
  
60
 
      <LI>TAO_GIOP_Twoway_Invocation::invoke:
61
 
        <UL>
62
 
          <LI>sets TAO_Reply_Dispatcher (this is used to make both
63
 
            synch and asynch requests look the same)
64
 
          </LI>
65
 
          <LI>sends the request
66
 
          </LI>
67
 
          <LI>waits on the TAO_Wait_Strategy
68
 
          </LI>
69
 
        </UL>
70
 
      </LI>
71
 
 
72
 
      <LI>if there was a minor problem or location forward, tries
73
 
            again: call TAO_GIO_Twoway_Invocation::start, etc.
74
 
      </LI>
75
 
      <LI>if everything went ok, demarshalls reply
76
 
      </LI>
77
 
    </UL>
78
 
  </P>
79
 
 
80
 
    <hr>
81
 
    <address><a href="mailto:coryan@cs.wustl.edu">Carlos O'Ryan</a></address>
82
 
<!-- Created: Fri Sep 10 16:34:44 CDT 1999 -->
83
 
<!-- hhmts start -->
84
 
Last modified: Fri Sep 10 18:00:18 CDT 1999
85
 
<!-- hhmts end -->
86
 
  </body>
87
 
</html>