This file is indexed.

/usr/share/doc/polyorb-doc/html/polyorb_ug/Marshalling-and-Unmarshalling-Operations.html is in polyorb-doc 2.11~20140418-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This is free software; you can redistribute it and/or modify it under
terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.  This software is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>PolyORB User&rsquo;s Guide: Marshalling and Unmarshalling Operations</title>

<meta name="description" content="PolyORB User&rsquo;s Guide: Marshalling and Unmarshalling Operations">
<meta name="keywords" content="PolyORB User&rsquo;s Guide: Marshalling and Unmarshalling Operations">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="About-This-Guide.html#About-This-Guide" rel="start" title="About This Guide">
<link href="Index.html#Index" rel="index" title="Index">
<link href="About-This-Guide.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" rel="up" title="Partition Communication Subsystem">
<link href="Incorrect-Remote-Dispatching.html#Incorrect-Remote-Dispatching" rel="next" title="Incorrect Remote Dispatching">
<link href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" rel="prev" title="Partition Communication Subsystem">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Marshalling-and-Unmarshalling-Operations"></a>
<div class="header">
<p>
Next: <a href="Incorrect-Remote-Dispatching.html#Incorrect-Remote-Dispatching" accesskey="n" rel="next">Incorrect Remote Dispatching</a>, Previous: <a href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" accesskey="p" rel="prev">Partition Communication Subsystem</a>, Up: <a href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" accesskey="u" rel="up">Partition Communication Subsystem</a> &nbsp; [<a href="About-This-Guide.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Marshalling-and-Unmarshalling-Operations-1"></a>
<h4 class="subsection">8.2.1 Marshalling and Unmarshalling Operations</h4>

<p>The Partition Communication Subsystem (PCS) is the runtime library for
distributed features. It marshals and unmarshals client and server requests
into a data stream suitable for network transmission.
</p>
<p>Parameter streams are normally read and written using four attributes:
</p>
<ul>
<li> Write: write an element into a stream, valid only for constrained
types

</li><li> Read: read a constrained element from a stream

</li><li> Output: same as Write, but write discriminants or array bounds as well
if needed

</li><li> Input: same as Read, but read discriminants or bounds from
  the stream (the Input attribute denotes a function)
</li></ul>

<p>An Ada compiler provides default &rsquo;Read and &rsquo;Write operations. But it is
up to the implementation of the PCS to provide default &rsquo;Read and &rsquo;Write
to ensure proper operation between heterogeneous architectures (see
<a href="Heterogeneous-System.html#Heterogeneous-System">Heterogeneous System</a>).
</p>
<p>The user can override these operations, except for predefined
types. Overriding with a custom version provides the user with a way
to debug its application (even outside of the Distributed Systems
Annex). On the other hand, remaining with the default implementation
allows the user to take advantage of optimized and portable representations
provided by the PCS.
</p>
<div class="smallexample">
<pre class="smallexample">
<b>with</b> Ada.Streams; <b>use</b> Ada.Streams;
<b>package</b> New_Integers <b>is</b>
   <b>pragma</b> Pure;

   <b>type</b> New_Integer <b>is</b> <b>new</b> Integer;

   <b>procedure</b> Read
     (S : <b>access</b> Root_Stream_Type'Class;
      V : <b>out</b> New_Integer);
   <b>procedure</b> Write
     (S : <b>access</b> Root_Stream_Type'Class;
      V : <b>in</b> New_Integer);

   <b>for</b> New_Integer'Read  <b>use</b> Read;
   <b>for</b> New_Integer'Write <b>use</b> Write;
<b>end</b> New_Integers;

</pre></div>
<div class="smallexample">
<pre class="smallexample">
<b>package</b> <b>body</b> New_Integers <b>is</b>
   <b>procedure</b> Read
     (S : <b>access</b> Root_Stream_Type'Class;
      V : <b>out</b> New_Integer)
   <b>is</b>
      B : String := String'Input (S);
   <b>begin</b>
      V := New_Integer'Value (B);
   <b>end</b> Read;

   <b>procedure</b> Write
     (S : <b>access</b> Root_Stream_Type'Class;
      V : <b>in</b> New_Integer)
   <b>is</b>
   <b>begin</b>
      String'Output (S, New_Integer'Image (V));
   <b>end</b> Write;
<b>end</b> New_Integers;

</pre></div>

<p>The language forces the user to provide Read and Write operations for
non-remote access types. Transmitting an access value by dumping its
content into a stream makes no sense when the value is going to be transmitted
to another partition (with a different memory space). To transmit non-remote
access types see <a href="Transmitting-Dynamic-Structure.html#Transmitting-Dynamic-Structure">Transmitting Dynamic Structure</a>.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Incorrect-Remote-Dispatching.html#Incorrect-Remote-Dispatching" accesskey="n" rel="next">Incorrect Remote Dispatching</a>, Previous: <a href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" accesskey="p" rel="prev">Partition Communication Subsystem</a>, Up: <a href="Partition-Communication-Subsystem.html#Partition-Communication-Subsystem" accesskey="u" rel="up">Partition Communication Subsystem</a> &nbsp; [<a href="About-This-Guide.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>