aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ic/internal_doc/c-improvements-1.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ic/internal_doc/c-improvements-1.txt')
-rw-r--r--lib/ic/internal_doc/c-improvements-1.txt84
1 files changed, 84 insertions, 0 deletions
diff --git a/lib/ic/internal_doc/c-improvements-1.txt b/lib/ic/internal_doc/c-improvements-1.txt
new file mode 100644
index 0000000000..ccfdec7cbe
--- /dev/null
+++ b/lib/ic/internal_doc/c-improvements-1.txt
@@ -0,0 +1,84 @@
+Peter Hogfeldt 2003-08-14 PA1
+
+IC C BACK-ENDS IMPROVEMENTS
+
+1 C CLIENT
+
+1.1 Cast
+
+ Each oneway operation roughly consists of the following code
+ parts:
+
+ - encoding the cast message
+ - setting index of the out buffer to zero (1.1.1)
+ - encoding the magic (1.1.1)
+ - encoding a tuple header of size 2 (1.1.1)
+ - encoding '$gen_cast' (1.1.1)
+ - encoding the operation parameters (1.1.2)
+ - sending the cast message (1.1.3)
+
+ Only (1.1.2) is unique for the operation in question.
+
+1.1.1 Todo
+
+ Define functions:
+
+ int oe_ei_encode_cast(CORBA_environment *) that performs (1.1.1)
+
+ int oe_ei_cast(CORBA_environment *) that performs (1.1.3)
+
+ This will reduce code size.
+
+ As compiler options
+
+ oe_ei_encode_cast(), and
+ oe_ei_cast()
+
+ may be replaced by user defined functions.
+
+1.2 Call
+
+ Each (non-oneway) operation roughly consists of the following code
+ parts:
+
+ - encoding the call message
+ - setting index of the out buffer to zero (1.2.1)
+ - encoding the magic (1.2.1)
+ - encoding a tuple header of size 3 (1.2.1)
+ - encoding '$gen_call' (1.2.1)
+ - encoding a tuple header of size 2 (1.2.1)
+ - encoding the from pid (1.2.1)
+ - encoding the unique ref (1.2.1)
+ - encoding the operation parameters (1.2.2)
+ - sending the call message (1.2.3)
+ - receiving the reply message (1.2.3)
+ - decoding the reply parameters (1.2.4)
+
+ Only (1.2.2) and (1.2.4) are unique for the operation in question.
+
+1.2.1 Todo
+
+ Define functions:
+
+ int oe_ei_encode_send(CORBA_environment *) that performs (1.2.1)
+
+ int oe_ei_send_and_receive(CORBA_environment *) that performs (1.2.3)
+
+ This will reduce code size.
+
+ As compiler options
+
+ oe_ei_encode_send(), and
+ oe_ei_send_and_receive()
+
+ may be replaced by user defined function.
+
+
+2 SERVER
+
+ We do not provide any code for receiving operation messages, execute
+ operations, and send the result back. Should we not do that?
+
+
+
+ \ No newline at end of file