1 mday 1.1.2.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>PEP # ?: Pegasus 2.2 CIMOMHandle</title>
5 <link rel="stylesheet" type="text/css" href="http://www.soft-hackle.net/md.css">
6 </head>
7
8 <body>
9 <table >
10 <tr>
11
12 <td>
13 <img height="70" src="http://www.opengroup.org/images/pegicon2.gif" width="70" border="0">
14 </td>
15 <td>
16 <h1>PEP # ?: Pegasus CIMOMHandle</h1>
17 </td>
18 </tr>
19 </table>
20
21 <table class="comment">
22 mday 1.1.2.1 <tr align="left">
23 <th>Type</th><th>Status</th><th>Approveers</th>
24 </tr>
25 <tr>
26 <td>Architecture</td><td>Draft</td><td>Pegasus architecture team</td>
27 </tr>
28 </table>
29 <table class="comment">
30 <tr align="left">
31 <th>Version</th><th>Date</th><th>Author</th><th>Comments</th>
32 </tr>
33 <tr>
34 <td>1.0</td><td>Thu Feb 13 11:58:12 2003</td><td>Mike Day</td><td><i>initial submission</i></td>
35 </tr>
|
36 mday 1.1.2.2 <tr>
37 <td>2.0</td><td>Fri Mar 7 12:17:45 2003</td><td>Mike Day</td>
38 <td><i>
39 Changed handling of timeout to use an OperationContext container.<br>
40 Upgraded interfaces to be consistent with CIMClient. <br>
41 Changed exception specification to throw CIMException.<br>
42 Exception error code and string are captured from CIMResponseMessage<br>
43 and rethrown to provider whenever the CIM_ERR code is not zero.
44 </i></td>
45 </tr>
|
46 mday 1.1.2.1 </table>
47
48 <hr>
49
50 <h2>Summary</h2>
51 <p>
52 The CIMOMHandle in Pegasus is the object that providers must
53 use to gain access to Pegasus services including the
54 repository and other providers. A functioning CIMOMHandle is
55 necessary for association support.
56 </p>
57 <p>
58 The CIMOMhandle also serves a useful role for asynchronous
59 providers in that it facilitates communication of status
60 between Pegasus and its providers. For example, some providers
61 must always remain loaded, or must ensure they are not
62 unloaded during a critical or time consuming operation. They
63 need the CIMOMHandle to indicate this status back to
64 Pegasus.
65 </p>
66
67 mday 1.1.2.1 <h2>Problem Solved/Feature Added</h2>
68 <p>
69 The CIMOMHandle in Pegasus does not work right now. This
70 document proposes a redesign of the CIMOMHandle to ensure it
71 works and fulfills present and future requirements.
72 </p>
73
74 <h3>Solution Requirements</h3>
75 <p>
76 Pegasus requires the CIMOMHandle to provide the following
77 facilities:
78 </p>
79 <div class="example">
80 <ol>
81 <li>Complete procedural interface to Pegasus client
82 operations.</li>
83 <li>Execution threads must be separated to avoid any
84 possibility of deadlock. Recursion into the provider is
85 therefore allowed. Recursion into the CIMOMHandle is not.</li>
86 <li>The Pegasus Provider Manager must know when a given
87 provider is executing a call back into Pegasus via the
88 mday 1.1.2.1 CIMOMHandle.</li>
89 <li>Providers must be able to proactively protect themselves from being
90 unloaded.</li>
91 <li>The CIMOM handle must recover completely whenever it is
92 called recursively.</li>
93 </ol>
94 </div>
95
96 <h3>Proposed Solution</h3>
97 <p>
98 This document proposes adding a new Server component to
99 Pegasus that acts as a binary request encoder/decoder. The
100 CIMOMHandle presents providers with what is logically a CIMClient
101 interface. However, instead of generating CIM/XML operations,
102 the CIMOMHandle enqueues binary CIMRequest/Response messages
103 to the new Server component.
104 </p>
105
106 <p>
107 The new Server component fulfills the role of both request
108 decoder and response encoder. Except that it does not
109 mday 1.1.2.1 encode/decode; it only passes the preformed messages through
110 the normal execution path and forwards the response back to
111 the CIMOMHandle.
112 </p>
113
114 <h4>Existing Pegasus Client Request Processing</h4>
115 <div class="comment" align="center">
116 <img alt="Existing Pegasus client request flow"
117 src="http://www.soft-hackle.net/peg_client.jpg"</img>
118 <p>
119 Existing client operations arrive at Pegasus as CIM/XML
120 documents and are decoded into CIMMessage objects. Then they
121 are dispatched to Pegasus. Responses are encoded from
122 CIMMessage objects back into CIM/XML documents.
123 </p>
124 </div>
125
126
127 <h4>CIMOMHandle Request Processing</h4>
128 <div class="comment" align="center">
129 <img alt="Existing Pegasus client request flow"
130 mday 1.1.2.1 src="http://www.soft-hackle.net/binary_client.jpg"</img>
131 <p>
132 CIMOMHandle client requests originate as CIMMessage
133 objects. They don't need to be decoded. They follow the
134 exact same processing path as <i>decoded</i> client
135 operations.
136 </p>
137 <p>
138 Responses to CIMOMHandle operations follow the exact same
139 processing paths as Client responses, up to the encoding
140 step. Instead of being encoded and transmitted, they are
141 enqueued back to the CIMOMhandle. The CIMOMHandle marshals
142 the response data and returns from the method call back to
143 the provider.
144 </p>
145 </div>
146
147 <h2> Advantages and disadvantages of proposed design</h2>
148 <p>
149 The advantages to this proposal include the following:
150 <ol class="enumerated">
151 mday 1.1.2.1 <li>Small incremental code size, around 2k. Very small
152 memory footprint. Each CIMOMHandle uses as much memory as
153 a MessageQueue plus around 400 bytes, requires no Thread.</li>
154 <li>Requires no additional libraries (such as
155 CIMClient).</li>
156 <li>Performance is much faster than CIMClient due to the
157 elimination of message encoding/decoding.</li>
158 <li>Asynchronous operation is preserved intact.</li>
159 <li>The Binary Request handler can be reused for other
160 procedural client interfaces (SOAP, Java, etc.).
161 </ol>
162 </p>
163
164 <h2>Alternative approaches and their advantages and
165 disadvantages.</h2>
166 <p>
167 The alternative I considered was to use the CIMClient class to
168 invoke the client interface from the CIMOMHandle. However,
169 this approach has the following disadvantages:
170 <ol class="enumerated">
171 <li>Size and resources. Each CIMOMHandle would require its
172 mday 1.1.2.1 own CIMClient class. It would consume an HTTPConnection
173 and associated resources for every method invocation.</li>
174 <li>Performance. Most of the CPU cycles would be wasted
175 encoding a CIMMessage, transmitting the XML, decoding the XML,
176 re-encoding the XML, and re-decoding the XML once again.</li>
177 </ol>
178 </p>
179
180 <h2> Proposed schedule.</h2>
181 <p>
182 This proposal is already implemented. Source code is included
183 at the end of this document. It can be committed to the head
184 of the repository immediately upon acceptance by the
185 Architecture Team.
186 </p>
187
188 <h2>Risk Mitigation</h2>
189 <p>
190 To Mimimize risk, I have already implemented and tested this
191 proposal in the mday-2-0-patches branch of the CVS repository. </p>
192
193 mday 1.1.2.1 <h2>Source Code</h2>
194
195 <h3>CIMOMHandle.h</h3>
196 <!-- code2html add -lcc -n src/Pegasus/Provider/CIMOMHandle.h
197 --><!-- code2html delete start --><pre><a name="1_line1"> 1</a> <font color="#444444">//%///-*-c++-*-/////////////////////////////////////////////////////////////////</font>
198 <a name="1_line2"> 2</a> <font color="#444444">//</font>
199 <a name="1_line3"> 3</a> <font color="#444444">// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,</font>
200 <a name="1_line4"> 4</a> <font color="#444444">// The Open Group, Tivoli Systems</font>
201 <a name="1_line5"> 5</a> <font color="#444444">//</font>
202 <a name="1_line6"> 6</a> <font color="#444444">// Permission is hereby granted, free of charge, to any person obtaining a copy</font>
203 <a name="1_line7"> 7</a> <font color="#444444">// of this software and associated documentation files (the "Software"), to</font>
204 <a name="1_line8"> 8</a> <font color="#444444">// deal in the Software without restriction, including without limitation the</font>
205 <a name="1_line9"> 9</a> <font color="#444444">// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</font>
206 <a name="1_line10"> 10</a> <font color="#444444">// sell copies of the Software, and to permit persons to whom the Software is</font>
207 <a name="1_line11"> 11</a> <font color="#444444">// furnished to do so, subject to the following conditions:</font>
208 <a name="1_line12"> 12</a> <font color="#444444">//</font>
209 <a name="1_line13"> 13</a> <font color="#444444">// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN</font>
210 <a name="1_line14"> 14</a> <font color="#444444">// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED</font>
211 <a name="1_line15"> 15</a> <font color="#444444">// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT</font>
212 <a name="1_line16"> 16</a> <font color="#444444">// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR</font>
213 <a name="1_line17"> 17</a> <font color="#444444">// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</font>
214 mday 1.1.2.1 <a name="1_line18"> 18</a> <font color="#444444">// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</font>
215 <a name="1_line19"> 19</a> <font color="#444444">// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</font>
216 <a name="1_line20"> 20</a> <font color="#444444">// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</font>
217 <a name="1_line21"> 21</a> <font color="#444444">//</font>
218 <a name="1_line22"> 22</a> <font color="#444444">//==============================================================================</font>
219 <a name="1_line23"> 23</a> <font color="#444444">//</font>
220 <a name="1_line24"> 24</a> <font color="#444444">// Author: Chip Vincent (cvincent@us.ibm.com)</font>
221 <a name="1_line25"> 25</a> <font color="#444444">//</font>
222 <a name="1_line26"> 26</a> <font color="#444444">// Modified By: Mike Brasher (mbrasher@bmc.com)</font>
223 <a name="1_line27"> 27</a> <font color="#444444">// Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)</font>
224 <a name="1_line28"> 28</a> <font color="#444444">// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)</font>
225 <a name="1_line29"> 29</a> <font color="#444444">// Mike Day, IBM (mdday@us.ibm.com)</font>
226 <a name="1_line30"> 30</a> <font color="#444444">//</font>
227 <a name="1_line31"> 31</a> <font color="#444444">//%/////////////////////////////////////////////////////////////////////////////</font>
228 <a name="1_line32"> 32</a>
229 <a name="1_line33"> 33</a>
230 <a name="1_line34"> 34</a> <font color="0000ff"><strong>#ifndef Pegasus_CIMOMHandle_h</strong></font>
231 <a name="1_line35"> 35</a> <font color="0000ff"><strong>#define Pegasus_CIMOMHandle_h</strong></font>
232 <a name="1_line36"> 36</a>
233 <a name="1_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Config.h></font></strong></font>
234 <a name="1_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/ModuleController.h></font></strong></font>
235 mday 1.1.2.1 <a name="1_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/OperationContext.h></font></strong></font>
236 <a name="1_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMObject.h></font></strong></font>
237 <a name="1_line41"> 41</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMObjectPath.h></font></strong></font>
238 <a name="1_line42"> 42</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMClass.h></font></strong></font>
239 <a name="1_line43"> 43</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMInstance.h></font></strong></font>
240 <a name="1_line44"> 44</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMPropertyList.h></font></strong></font>
241 <a name="1_line45"> 45</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/ResponseHandler.h></font></strong></font>
242 <a name="1_line46"> 46</a> <font color="0000ff"><strong>#include <font color="#008000">"Linkage.h"</font></strong></font>
243 <a name="1_line47"> 47</a>
244 <a name="1_line48"> 48</a> <font color="#2040a0">PEGASUS_NAMESPACE_BEGIN</font>
245 <a name="1_line49"> 49</a>
246 <a name="1_line50"> 50</a> <strong>class</strong> <font color="#2040a0">ProviderManager</font><font color="4444FF">;</font>
247 <a name="1_line51"> 51</a> <strong>class</strong> <font color="#2040a0">Provider</font><font color="4444FF">;</font>
248 <a name="1_line52"> 52</a>
249 <a name="1_line53"> 53</a> <strong>class</strong> <font color="#2040a0">cimom_handle_op_semaphore</font><font color="4444FF">;</font>
|
250 mday 1.1.2.2 <a name="1_line54"> 54</a>
251 <a name="1_line55"> 55</a> <strong>class</strong> <font color="#2040a0">PEGASUS_PROVIDER_LINKAGE</font> <font color="#2040a0">TimeoutContainer</font> <font color="4444FF">:</font> <strong>public</strong> <font color="#2040a0">OperationContext</font><font color="4444FF">:</font><font color="4444FF">:</font><font color="#2040a0">Container</font>
252 <a name="1_line56"> 56</a> <font color="4444FF"><strong>{</strong></font>
|
253 mday 1.1.2.1 <a name="1_line57"> 57</a> <strong>public</strong><font color="4444FF">:</font>
|
254 mday 1.1.2.2 <a name="1_line58"> 58</a> <strong>static</strong> <strong>const</strong> <font color="#2040a0">String</font> <font color="#2040a0">NAME</font><font color="4444FF">;</font>
255 <a name="1_line59"> 59</a>
256 <a name="1_line60"> 60</a> <font color="#2040a0">TimeoutContainer</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">OperationContext</font><font color="4444FF">:</font><font color="4444FF">:</font><font color="#2040a0">Container</font> <font color="4444FF">&</font> <font color="#2040a0">container</font><font color="4444FF">)</font><font color="4444FF">;</font>
257 <a name="1_line61"> 61</a> <font color="#2040a0">TimeoutContainer</font><font color="4444FF">(</font><font color="#2040a0">Uint32</font> <font color="#2040a0">timeout</font><font color="4444FF">)</font><font color="4444FF">;</font>
258 <a name="1_line62"> 62</a> <strong>virtual</strong> <font color="#2040a0">String</font> <font color="#2040a0">getName</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font> <strong>const</strong><font color="4444FF">;</font>
259 <a name="1_line63"> 63</a> <strong>virtual</strong> <font color="#2040a0">OperationContext</font><font color="4444FF">:</font><font color="4444FF">:</font><font color="#2040a0">Container</font> <font color="4444FF">*</font> <font color="#2040a0">clone</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font> <strong>const</strong><font color="4444FF">;</font>
260 <a name="1_line64"> 64</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">destroy</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
261 <a name="1_line65"> 65</a>
262 <a name="1_line66"> 66</a> <font color="#2040a0">Uint32</font> <font color="#2040a0">getTimeOut</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font> <strong>const</strong><font color="4444FF">;</font>
263 <a name="1_line67"> 67</a> <strong>protected</strong><font color="4444FF">:</font>
264 <a name="1_line68"> 68</a> <font color="#2040a0">Uint32</font> <font color="#2040a0">_value</font><font color="4444FF">;</font>
265 <a name="1_line69"> 69</a> <strong>private</strong><font color="4444FF">:</font>
266 <a name="1_line70"> 70</a> <font color="#2040a0">TimeoutContainer</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
267 <a name="1_line71"> 71</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
268 <a name="1_line72"> 72</a>
269 <a name="1_line73"> 73</a>
270 <a name="1_line74"> 74</a> <strong>class</strong> <font color="#2040a0">PEGASUS_PROVIDER_LINKAGE</font> <font color="#2040a0">CIMOMHandle</font>
271 <a name="1_line75"> 75</a> <font color="4444FF"><strong>{</strong></font>
|
272 mday 1.1.2.1 <a name="1_line76"> 76</a>
|
273 mday 1.1.2.2 <a name="1_line77"> 77</a> <strong>public</strong><font color="4444FF">:</font>
274 <a name="1_line78"> 78</a>
275 <a name="1_line79"> 79</a> <font color="#444444"><i>/** */</i></font>
276 <a name="1_line80"> 80</a> <font color="#2040a0">CIMOMHandle</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
277 <a name="1_line81"> 81</a> <font color="#2040a0">CIMOMHandle</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">CIMOMHandle</font> <font color="4444FF">&</font><font color="4444FF">)</font><font color="4444FF">;</font>
278 <a name="1_line82"> 82</a>
279 <a name="1_line83"> 83</a> <font color="#444444"><i>/** */</i></font>
280 <a name="1_line84"> 84</a> <strong>virtual</strong> ~<font color="#2040a0">CIMOMHandle</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
281 <a name="1_line85"> 85</a>
282 <a name="1_line86"> 86</a> <font color="#2040a0">CIMOMHandle</font> <font color="4444FF">&</font> <strong>operator</strong><font color="4444FF">=</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">CIMOMHandle</font> <font color="4444FF">&</font> <font color="#2040a0">handle</font><font color="4444FF">)</font><font color="4444FF">;</font>
283 <a name="1_line87"> 87</a>
284 <a name="1_line88"> 88</a> <font color="#2040a0">CIMClass</font> <font color="#2040a0">getClass</font><font color="4444FF">(</font>
285 <a name="1_line89"> 89</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
286 <a name="1_line90"> 90</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
287 <a name="1_line91"> 91</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font>,
|
288 mday 1.1.2.1 <a name="1_line92"> 92</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
289 <a name="1_line93"> 93</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
|
290 mday 1.1.2.2 <a name="1_line94"> 94</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
291 <a name="1_line95"> 95</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
292 <a name="1_line96"> 96</a>
293 <a name="1_line97"> 97</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMClass</font><font color="4444FF">></font> <font color="#2040a0">enumerateClasses</font><font color="4444FF">(</font>
294 <a name="1_line98"> 98</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
295 <a name="1_line99"> 99</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
296 <a name="1_line100">100</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font>,
297 <a name="1_line101">101</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font>,
298 <a name="1_line102">102</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
299 <a name="1_line103">103</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
300 <a name="1_line104">104</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font><font color="4444FF">)</font><font color="4444FF">;</font>
|
301 mday 1.1.2.1 <a name="1_line105">105</a>
|
302 mday 1.1.2.2 <a name="1_line106">106</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMName</font><font color="4444FF">></font> <font color="#2040a0">enumerateClassNames</font><font color="4444FF">(</font>
|
303 mday 1.1.2.1 <a name="1_line107">107</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
304 <a name="1_line108">108</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
305 <a name="1_line109">109</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font>,
306 <a name="1_line110">110</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font><font color="4444FF">)</font><font color="4444FF">;</font>
307 <a name="1_line111">111</a>
|
308 mday 1.1.2.2 <a name="1_line112">112</a> <strong>void</strong> <font color="#2040a0">createClass</font><font color="4444FF">(</font>
|
309 mday 1.1.2.1 <a name="1_line113">113</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
310 <a name="1_line114">114</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
|
311 mday 1.1.2.2 <a name="1_line115">115</a> <strong>const</strong> <font color="#2040a0">CIMClass</font><font color="4444FF">&</font> <font color="#2040a0">newClass</font><font color="4444FF">)</font><font color="4444FF">;</font>
312 <a name="1_line116">116</a>
313 <a name="1_line117">117</a> <strong>void</strong> <font color="#2040a0">modifyClass</font><font color="4444FF">(</font>
314 <a name="1_line118">118</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
315 <a name="1_line119">119</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
316 <a name="1_line120">120</a> <strong>const</strong> <font color="#2040a0">CIMClass</font><font color="4444FF">&</font> <font color="#2040a0">modifiedClass</font><font color="4444FF">)</font><font color="4444FF">;</font>
317 <a name="1_line121">121</a>
318 <a name="1_line122">122</a> <strong>void</strong> <font color="#2040a0">deleteClass</font><font color="4444FF">(</font>
319 <a name="1_line123">123</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
320 <a name="1_line124">124</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
321 <a name="1_line125">125</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font><font color="4444FF">)</font><font color="4444FF">;</font>
322 <a name="1_line126">126</a>
323 <a name="1_line127">127</a> <font color="#2040a0">CIMInstance</font> <font color="#2040a0">getInstance</font><font color="4444FF">(</font>
324 <a name="1_line128">128</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
325 <a name="1_line129">129</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
326 <a name="1_line130">130</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>,
327 <a name="1_line131">131</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
328 <a name="1_line132">132</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
329 <a name="1_line133">133</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
330 <a name="1_line134">134</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
331 <a name="1_line135">135</a>
332 mday 1.1.2.2 <a name="1_line136">136</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMInstance</font><font color="4444FF">></font> <font color="#2040a0">enumerateInstances</font><font color="4444FF">(</font>
333 <a name="1_line137">137</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
334 <a name="1_line138">138</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
335 <a name="1_line139">139</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font>,
336 <a name="1_line140">140</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font>,
337 <a name="1_line141">141</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
338 <a name="1_line142">142</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
339 <a name="1_line143">143</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
340 <a name="1_line144">144</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
|
341 mday 1.1.2.1 <a name="1_line145">145</a>
|
342 mday 1.1.2.2 <a name="1_line146">146</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></font> <font color="#2040a0">enumerateInstanceNames</font><font color="4444FF">(</font>
|
343 mday 1.1.2.1 <a name="1_line147">147</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
344 <a name="1_line148">148</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
|
345 mday 1.1.2.2 <a name="1_line149">149</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font><font color="4444FF">)</font><font color="4444FF">;</font>
346 <a name="1_line150">150</a>
347 <a name="1_line151">151</a> <font color="#2040a0">CIMObjectPath</font> <font color="#2040a0">createInstance</font><font color="4444FF">(</font>
348 <a name="1_line152">152</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
349 <a name="1_line153">153</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
350 <a name="1_line154">154</a> <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&</font> <font color="#2040a0">newInstance</font><font color="4444FF">)</font><font color="4444FF">;</font>
351 <a name="1_line155">155</a>
352 <a name="1_line156">156</a> <strong>void</strong> <font color="#2040a0">modifyInstance</font><font color="4444FF">(</font>
353 <a name="1_line157">157</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
354 <a name="1_line158">158</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
355 <a name="1_line159">159</a> <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&</font> <font color="#2040a0">modifiedInstance</font>,
356 <a name="1_line160">160</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
357 <a name="1_line161">161</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
358 <a name="1_line162">162</a>
359 <a name="1_line163">163</a> <strong>void</strong> <font color="#2040a0">deleteInstance</font><font color="4444FF">(</font>
360 <a name="1_line164">164</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
361 <a name="1_line165">165</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
362 <a name="1_line166">166</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font><font color="4444FF">)</font><font color="4444FF">;</font>
363 <a name="1_line167">167</a>
364 <a name="1_line168">168</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">execQuery</font><font color="4444FF">(</font>
365 <a name="1_line169">169</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
366 mday 1.1.2.2 <a name="1_line170">170</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
367 <a name="1_line171">171</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">queryLanguage</font>,
368 <a name="1_line172">172</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">query</font><font color="4444FF">)</font><font color="4444FF">;</font>
369 <a name="1_line173">173</a>
370 <a name="1_line174">174</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">associators</font><font color="4444FF">(</font>
371 <a name="1_line175">175</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
372 <a name="1_line176">176</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
373 <a name="1_line177">177</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>,
374 <a name="1_line178">178</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">assocClass</font>,
375 <a name="1_line179">179</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>,
376 <a name="1_line180">180</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font>,
377 <a name="1_line181">181</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">resultRole</font>,
378 <a name="1_line182">182</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
379 <a name="1_line183">183</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
380 <a name="1_line184">184</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
381 <a name="1_line185">185</a>
382 <a name="1_line186">186</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></font> <font color="#2040a0">associatorNames</font><font color="4444FF">(</font>
383 <a name="1_line187">187</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
384 <a name="1_line188">188</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
385 <a name="1_line189">189</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>,
386 <a name="1_line190">190</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">assocClass</font>,
387 mday 1.1.2.2 <a name="1_line191">191</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>,
388 <a name="1_line192">192</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font>,
389 <a name="1_line193">193</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">resultRole</font><font color="4444FF">)</font><font color="4444FF">;</font>
390 <a name="1_line194">194</a>
391 <a name="1_line195">195</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">references</font><font color="4444FF">(</font>
392 <a name="1_line196">196</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
393 <a name="1_line197">197</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
394 <a name="1_line198">198</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>,
395 <a name="1_line199">199</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>,
396 <a name="1_line200">200</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font>,
397 <a name="1_line201">201</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
398 <a name="1_line202">202</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
399 <a name="1_line203">203</a> <strong>const</strong> <font color="#2040a0">CIMPropertyList</font><font color="4444FF">&</font> <font color="#2040a0">propertyList</font><font color="4444FF">)</font><font color="4444FF">;</font>
400 <a name="1_line204">204</a>
401 <a name="1_line205">205</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></font> <font color="#2040a0">referenceNames</font><font color="4444FF">(</font>
402 <a name="1_line206">206</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
403 <a name="1_line207">207</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
404 <a name="1_line208">208</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>,
405 <a name="1_line209">209</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>,
406 <a name="1_line210">210</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font><font color="4444FF">)</font><font color="4444FF">;</font>
407 <a name="1_line211">211</a>
408 mday 1.1.2.2 <a name="1_line212">212</a> <font color="#444444">// property operations</font>
409 <a name="1_line213">213</a> <font color="#2040a0">CIMValue</font> <font color="#2040a0">getProperty</font><font color="4444FF">(</font>
410 <a name="1_line214">214</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
411 <a name="1_line215">215</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
412 <a name="1_line216">216</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>,
413 <a name="1_line217">217</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">propertyName</font><font color="4444FF">)</font><font color="4444FF">;</font>
414 <a name="1_line218">218</a>
415 <a name="1_line219">219</a> <strong>void</strong> <font color="#2040a0">setProperty</font><font color="4444FF">(</font>
416 <a name="1_line220">220</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
417 <a name="1_line221">221</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
418 <a name="1_line222">222</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>,
419 <a name="1_line223">223</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">propertyName</font>,
420 <a name="1_line224">224</a> <strong>const</strong> <font color="#2040a0">CIMValue</font><font color="4444FF">&</font> <font color="#2040a0">newValue</font><font color="4444FF">)</font><font color="4444FF">;</font>
421 <a name="1_line225">225</a>
422 <a name="1_line226">226</a> <font color="#2040a0">CIMValue</font> <font color="#2040a0">invokeMethod</font><font color="4444FF">(</font>
423 <a name="1_line227">227</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>,
424 <a name="1_line228">228</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>,
425 <a name="1_line229">229</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>,
426 <a name="1_line230">230</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">methodName</font>,
427 <a name="1_line231">231</a> <strong>const</strong> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">></font><font color="4444FF">&</font> <font color="#2040a0">inParameters</font>,
428 <a name="1_line232">232</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">></font><font color="4444FF">&</font> <font color="#2040a0">outParameters</font><font color="4444FF">)</font><font color="4444FF">;</font>
|
429 mday 1.1.2.1 <a name="1_line233">233</a>
|
430 mday 1.1.2.2 <a name="1_line234">234</a>
431 <a name="1_line235">235</a>
432 <a name="1_line236">236</a> <font color="#444444">// force provider manager to keep in memory</font>
433 <a name="1_line237">237</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">protect</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
434 <a name="1_line238">238</a> <font color="#444444">// allow provider manager to unload when idle </font>
435 <a name="1_line239">239</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">unprotect</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
436 <a name="1_line240">240</a>
437 <a name="1_line241">241</a> <strong>class</strong> <font color="#2040a0">_cimom_handle_rep</font><font color="4444FF">;</font>
438 <a name="1_line242">242</a> <font color="#2040a0">_cimom_handle_rep</font> <font color="4444FF">*</font><font color="#2040a0">_rep</font><font color="4444FF">;</font>
439 <a name="1_line243">243</a> <strong>private</strong><font color="4444FF">:</font>
440 <a name="1_line244">244</a> <strong>friend</strong> <strong>class</strong> <font color="#2040a0">Provider</font><font color="4444FF">;</font>
441 <a name="1_line245">245</a> <strong>friend</strong> <strong>class</strong> <font color="#2040a0">cimom_handle_op_semaphore</font><font color="4444FF">;</font>
442 <a name="1_line246">246</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">get_idle_timer</font><font color="4444FF">(</font><strong>struct</strong> <font color="#2040a0">timeval</font> <font color="4444FF">*</font><font color="4444FF">)</font><font color="4444FF">;</font>
443 <a name="1_line247">247</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">update_idle_timer</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
444 <a name="1_line248">248</a> <strong>virtual</strong> <font color="#2040a0">Boolean</font> <font color="#2040a0">pending_operation</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
445 <a name="1_line249">249</a> <strong>virtual</strong> <font color="#2040a0">Boolean</font> <font color="#2040a0">unload_ok</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
446 <a name="1_line250">250</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
447 <a name="1_line251">251</a>
|
448 mday 1.1.2.1 <a name="1_line252">252</a>
|
449 mday 1.1.2.2 <a name="1_line253">253</a>
450 <a name="1_line254">254</a>
451 <a name="1_line255">255</a>
452 <a name="1_line256">256</a> <font color="#2040a0">PEGASUS_NAMESPACE_END</font>
453 <a name="1_line257">257</a>
454 <a name="1_line258">258</a> <font color="0000ff"><strong>#endif</strong></font>
|
455 mday 1.1.2.1 </pre><!-- code2html delete stop -->
456
457 <h3>BinaryMessageHandler.h</h3>
458 <!-- code2html add -lcc -n src/Pegasus/Server/BinaryMessageHandler.h
|
459 mday 1.1.2.2 --><!-- code2html delete start --><pre><a name="2_line1"> 1</a> <font color="#444444">//%/////////////-*-c++-*-///////////////////////////////////////////////////////</font>
460 <a name="2_line2"> 2</a> <font color="#444444">//</font>
461 <a name="2_line3"> 3</a> <font color="#444444">// Copyright (c) 2000 - 2003 BMC Software, Hewlett-Packard Company, IBM,</font>
462 <a name="2_line4"> 4</a> <font color="#444444">// The Open Group, Tivoli Systems</font>
463 <a name="2_line5"> 5</a> <font color="#444444">//</font>
464 <a name="2_line6"> 6</a> <font color="#444444">// Permission is hereby granted, free of charge, to any person obtaining a copy</font>
465 <a name="2_line7"> 7</a> <font color="#444444">// of this software and associated documentation files (the "Software"), to</font>
466 <a name="2_line8"> 8</a> <font color="#444444">// deal in the Software without restriction, including without limitation the</font>
467 <a name="2_line9"> 9</a> <font color="#444444">// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</font>
468 <a name="2_line10"> 10</a> <font color="#444444">// sell copies of the Software, and to permit persons to whom the Software is</font>
469 <a name="2_line11"> 11</a> <font color="#444444">// furnished to do so, subject to the following conditions:</font>
470 <a name="2_line12"> 12</a> <font color="#444444">// </font>
471 <a name="2_line13"> 13</a> <font color="#444444">// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN</font>
472 <a name="2_line14"> 14</a> <font color="#444444">// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED</font>
473 <a name="2_line15"> 15</a> <font color="#444444">// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT</font>
474 <a name="2_line16"> 16</a> <font color="#444444">// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR</font>
475 <a name="2_line17"> 17</a> <font color="#444444">// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</font>
476 <a name="2_line18"> 18</a> <font color="#444444">// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</font>
477 <a name="2_line19"> 19</a> <font color="#444444">// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</font>
478 <a name="2_line20"> 20</a> <font color="#444444">// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</font>
479 <a name="2_line21"> 21</a> <font color="#444444">//</font>
480 mday 1.1.2.2 <a name="2_line22"> 22</a> <font color="#444444">//==============================================================================</font>
481 <a name="2_line23"> 23</a> <font color="#444444">//</font>
482 <a name="2_line24"> 24</a> <font color="#444444">// Author: Mike Day (mdday@us.ibm.com)</font>
483 <a name="2_line25"> 25</a> <font color="#444444">//</font>
484 <a name="2_line26"> 26</a> <font color="#444444">//%/////////////////////////////////////////////////////////////////////////////</font>
485 <a name="2_line27"> 27</a> <font color="0000ff"><strong>#ifndef Pegasus_BinaryMessageHandler_h</strong></font>
486 <a name="2_line28"> 28</a> <font color="0000ff"><strong>#define Pegasus_BinaryMessageHandler_h</strong></font>
487 <a name="2_line29"> 29</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Config.h></font></strong></font>
488 <a name="2_line30"> 30</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/AsyncOpNode.h></font></strong></font>
489 <a name="2_line31"> 31</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/DQueue.h></font></strong></font>
490 <a name="2_line32"> 32</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/MessageQueueService.h></font></strong></font>
491 <a name="2_line33"> 33</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Message.h></font></strong></font>
492 <a name="2_line34"> 34</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMMessage.h></font></strong></font>
493 <a name="2_line35"> 35</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Tracer.h></font></strong></font>
494 <a name="2_line36"> 36</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/TraceComponents.h></font></strong></font>
495 <a name="2_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/IPC.h></font></strong></font>
496 <a name="2_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Thread.h></font></strong></font>
497 <a name="2_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Constants.h></font></strong></font>
498 <a name="2_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Server/Linkage.h></font></strong></font>
499 <a name="2_line41"> 41</a>
500 <a name="2_line42"> 42</a> <font color="#2040a0">PEGASUS_NAMESPACE_BEGIN</font>
501 mday 1.1.2.2 <a name="2_line43"> 43</a>
502 <a name="2_line44"> 44</a> <font color="#444444"><i>/** This class provides an in-process binary client interface,
503 <a name="2_line45"> 45</a> both for requests and responses.
504 <a name="2_line46"> 46</a> */</i></font>
505 <a name="2_line47"> 47</a>
506 <a name="2_line48"> 48</a> <strong>class</strong> <font color="#2040a0">PEGASUS_SERVER_LINKAGE</font> <font color="#2040a0">BinaryMessageHandler</font> <font color="4444FF">:</font> <strong>public</strong> <font color="#2040a0">MessageQueueService</font>
507 <a name="2_line49"> 49</a> <font color="4444FF"><strong>{</strong></font>
508 <a name="2_line50"> 50</a> <strong>public</strong><font color="4444FF">:</font>
509 <a name="2_line51"> 51</a> <strong>typedef</strong> <font color="#2040a0">MessageQueueService</font> <font color="#2040a0">Base</font><font color="4444FF">;</font>
510 <a name="2_line52"> 52</a>
511 <a name="2_line53"> 53</a> <font color="#2040a0">BinaryMessageHandler</font><font color="4444FF">(</font><font color="#2040a0">MessageQueueService</font> <font color="4444FF">*</font><font color="#2040a0">outputQueue</font><font color="4444FF">)</font><font color="4444FF">;</font>
512 <a name="2_line54"> 54</a> ~<font color="#2040a0">BinaryMessageHandler</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
513 <a name="2_line55"> 55</a>
514 <a name="2_line56"> 56</a> <strong>virtual</strong> <font color="#2040a0">Boolean</font> <font color="#2040a0">messageOK</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">Message</font> <font color="4444FF">*</font> <font color="#2040a0">message</font><font color="4444FF">)</font><font color="4444FF">;</font>
515 <a name="2_line57"> 57</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">handleEnqueue</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
516 <a name="2_line58"> 58</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">handleEnqueue</font><font color="4444FF">(</font><font color="#2040a0">Message</font> <font color="4444FF">*</font> <font color="#2040a0">message</font><font color="4444FF">)</font><font color="4444FF">;</font>
517 <a name="2_line59"> 59</a> <strong>virtual</strong> <strong>void</strong> <font color="#2040a0">_handle_async_request</font><font color="4444FF">(</font><font color="#2040a0">AsyncRequest</font> <font color="4444FF">*</font> <font color="#2040a0">request</font><font color="4444FF">)</font><font color="4444FF">;</font>
518 <a name="2_line60"> 60</a> <strong>protected</strong><font color="4444FF">:</font>
519 <a name="2_line61"> 61</a> <strong>static</strong> <font color="#2040a0">PEGASUS_THREAD_RETURN</font> <font color="#2040a0">PEGASUS_THREAD_CDECL</font> <font color="#2040a0">handle_binary_message</font><font color="4444FF">(</font><strong>void</strong> <font color="4444FF">*</font><font color="4444FF">)</font><font color="4444FF">;</font>
520 <a name="2_line62"> 62</a>
521 <a name="2_line63"> 63</a> <font color="#444444">// **** Request Messages **** //</font>
522 mday 1.1.2.2 <a name="2_line64"> 64</a>
523 <a name="2_line65"> 65</a> <strong>void</strong> <font color="#2040a0">handleCreateClassRequest</font><font color="4444FF">(</font>
524 <a name="2_line66"> 66</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
525 <a name="2_line67"> 67</a> <font color="#2040a0">CIMCreateClassRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
526 <a name="2_line68"> 68</a>
527 <a name="2_line69"> 69</a> <strong>void</strong> <font color="#2040a0">handleGetClassRequest</font><font color="4444FF">(</font>
528 <a name="2_line70"> 70</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
529 <a name="2_line71"> 71</a> <font color="#2040a0">CIMGetClassRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
530 <a name="2_line72"> 72</a>
531 <a name="2_line73"> 73</a> <strong>void</strong> <font color="#2040a0">handleModifyClassRequest</font><font color="4444FF">(</font>
532 <a name="2_line74"> 74</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
533 <a name="2_line75"> 75</a> <font color="#2040a0">CIMModifyClassRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
534 <a name="2_line76"> 76</a>
535 <a name="2_line77"> 77</a> <strong>void</strong> <font color="#2040a0">handleEnumerateClassNamesRequest</font><font color="4444FF">(</font>
536 <a name="2_line78"> 78</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
537 <a name="2_line79"> 79</a> <font color="#2040a0">CIMEnumerateClassNamesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
538 <a name="2_line80"> 80</a>
539 <a name="2_line81"> 81</a> <strong>void</strong> <font color="#2040a0">handleEnumerateClassesRequest</font><font color="4444FF">(</font>
540 <a name="2_line82"> 82</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
541 <a name="2_line83"> 83</a> <font color="#2040a0">CIMEnumerateClassesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
542 <a name="2_line84"> 84</a>
543 mday 1.1.2.2 <a name="2_line85"> 85</a> <strong>void</strong> <font color="#2040a0">handleDeleteClassRequest</font><font color="4444FF">(</font>
544 <a name="2_line86"> 86</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
545 <a name="2_line87"> 87</a> <font color="#2040a0">CIMDeleteClassRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
546 <a name="2_line88"> 88</a>
547 <a name="2_line89"> 89</a> <strong>void</strong> <font color="#2040a0">handleCreateInstanceRequest</font><font color="4444FF">(</font>
548 <a name="2_line90"> 90</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
549 <a name="2_line91"> 91</a> <font color="#2040a0">CIMCreateInstanceRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
550 <a name="2_line92"> 92</a>
551 <a name="2_line93"> 93</a> <strong>void</strong> <font color="#2040a0">handleGetInstanceRequest</font><font color="4444FF">(</font>
552 <a name="2_line94"> 94</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
553 <a name="2_line95"> 95</a> <font color="#2040a0">CIMGetInstanceRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
554 <a name="2_line96"> 96</a>
555 <a name="2_line97"> 97</a> <strong>void</strong> <font color="#2040a0">handleModifyInstanceRequest</font><font color="4444FF">(</font>
556 <a name="2_line98"> 98</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
557 <a name="2_line99"> 99</a> <font color="#2040a0">CIMModifyInstanceRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
558 <a name="2_line100">100</a>
559 <a name="2_line101">101</a> <strong>void</strong> <font color="#2040a0">handleEnumerateInstanceNamesRequest</font><font color="4444FF">(</font>
560 <a name="2_line102">102</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
561 <a name="2_line103">103</a> <font color="#2040a0">CIMEnumerateInstanceNamesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
562 <a name="2_line104">104</a>
563 <a name="2_line105">105</a> <strong>void</strong> <font color="#2040a0">handleEnumerateInstancesRequest</font><font color="4444FF">(</font>
564 mday 1.1.2.2 <a name="2_line106">106</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
565 <a name="2_line107">107</a> <font color="#2040a0">CIMEnumerateInstancesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
566 <a name="2_line108">108</a>
567 <a name="2_line109">109</a> <strong>void</strong> <font color="#2040a0">handleDeleteInstanceRequest</font><font color="4444FF">(</font>
568 <a name="2_line110">110</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
569 <a name="2_line111">111</a> <font color="#2040a0">CIMDeleteInstanceRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
570 <a name="2_line112">112</a>
571 <a name="2_line113">113</a> <strong>void</strong> <font color="#2040a0">handleSetQualifierRequest</font><font color="4444FF">(</font>
572 <a name="2_line114">114</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
573 <a name="2_line115">115</a> <font color="#2040a0">CIMSetQualifierRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
574 <a name="2_line116">116</a>
575 <a name="2_line117">117</a> <strong>void</strong> <font color="#2040a0">handleGetQualifierRequest</font><font color="4444FF">(</font>
576 <a name="2_line118">118</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
577 <a name="2_line119">119</a> <font color="#2040a0">CIMGetQualifierRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
578 <a name="2_line120">120</a>
579 <a name="2_line121">121</a> <strong>void</strong> <font color="#2040a0">handleEnumerateQualifiersRequest</font><font color="4444FF">(</font>
580 <a name="2_line122">122</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
581 <a name="2_line123">123</a> <font color="#2040a0">CIMEnumerateQualifiersRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
582 <a name="2_line124">124</a>
583 <a name="2_line125">125</a> <strong>void</strong> <font color="#2040a0">handleDeleteQualifiersRequest</font><font color="4444FF">(</font>
584 <a name="2_line126">126</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
585 mday 1.1.2.2 <a name="2_line127">127</a> <font color="#2040a0">CIMDeleteQualifierRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
586 <a name="2_line128">128</a>
587 <a name="2_line129">129</a> <strong>void</strong> <font color="#2040a0">handleReferenceNamesRequest</font><font color="4444FF">(</font>
588 <a name="2_line130">130</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
589 <a name="2_line131">131</a> <font color="#2040a0">CIMReferenceNamesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
590 <a name="2_line132">132</a>
591 <a name="2_line133">133</a> <strong>void</strong> <font color="#2040a0">handleReferencesRequest</font><font color="4444FF">(</font>
592 <a name="2_line134">134</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
593 <a name="2_line135">135</a> <font color="#2040a0">CIMReferencesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
594 <a name="2_line136">136</a>
595 <a name="2_line137">137</a> <strong>void</strong> <font color="#2040a0">handleAssociatorNamesRequest</font><font color="4444FF">(</font>
596 <a name="2_line138">138</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
597 <a name="2_line139">139</a> <font color="#2040a0">CIMAssociatorNamesRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
598 <a name="2_line140">140</a>
599 <a name="2_line141">141</a> <strong>void</strong> <font color="#2040a0">handleAssociatorsRequest</font><font color="4444FF">(</font>
600 <a name="2_line142">142</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
601 <a name="2_line143">143</a> <font color="#2040a0">CIMAssociatorsRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
602 <a name="2_line144">144</a>
603 <a name="2_line145">145</a> <strong>void</strong> <font color="#2040a0">handleGetPropertyRequest</font><font color="4444FF">(</font>
604 <a name="2_line146">146</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
605 <a name="2_line147">147</a> <font color="#2040a0">CIMGetPropertyRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
606 mday 1.1.2.2 <a name="2_line148">148</a>
607 <a name="2_line149">149</a> <strong>void</strong> <font color="#2040a0">handleSetPropertyRequest</font><font color="4444FF">(</font>
608 <a name="2_line150">150</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
609 <a name="2_line151">151</a> <font color="#2040a0">CIMSetPropertyRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
610 <a name="2_line152">152</a>
611 <a name="2_line153">153</a> <strong>void</strong> <font color="#2040a0">handleExecQueryRequest</font><font color="4444FF">(</font>
612 <a name="2_line154">154</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
613 <a name="2_line155">155</a> <font color="#2040a0">CIMExecQueryRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
614 <a name="2_line156">156</a>
615 <a name="2_line157">157</a> <strong>void</strong> <font color="#2040a0">handleInvokeMethodRequest</font><font color="4444FF">(</font>
616 <a name="2_line158">158</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
617 <a name="2_line159">159</a> <font color="#2040a0">CIMInvokeMethodRequestMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
618 <a name="2_line160">160</a>
619 <a name="2_line161">161</a> <font color="#444444">// **** Response Messages **** //</font>
620 <a name="2_line162">162</a>
621 <a name="2_line163">163</a> <strong>void</strong> <font color="#2040a0">handleCreateClassResponse</font><font color="4444FF">(</font>
622 <a name="2_line164">164</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
623 <a name="2_line165">165</a> <font color="#2040a0">CIMCreateClassResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
624 <a name="2_line166">166</a>
625 <a name="2_line167">167</a> <strong>void</strong> <font color="#2040a0">handleGetClassResponse</font><font color="4444FF">(</font>
626 <a name="2_line168">168</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
627 mday 1.1.2.2 <a name="2_line169">169</a> <font color="#2040a0">CIMGetClassResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
628 <a name="2_line170">170</a>
629 <a name="2_line171">171</a> <strong>void</strong> <font color="#2040a0">handleModifyClassResponse</font><font color="4444FF">(</font>
630 <a name="2_line172">172</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
631 <a name="2_line173">173</a> <font color="#2040a0">CIMModifyClassResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
632 <a name="2_line174">174</a>
633 <a name="2_line175">175</a> <strong>void</strong> <font color="#2040a0">handleEnumerateClassNamesResponse</font><font color="4444FF">(</font>
634 <a name="2_line176">176</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
635 <a name="2_line177">177</a> <font color="#2040a0">CIMEnumerateClassNamesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
636 <a name="2_line178">178</a>
637 <a name="2_line179">179</a> <strong>void</strong> <font color="#2040a0">handleEnumerateClassesResponse</font><font color="4444FF">(</font>
638 <a name="2_line180">180</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
639 <a name="2_line181">181</a> <font color="#2040a0">CIMEnumerateClassesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
640 <a name="2_line182">182</a>
641 <a name="2_line183">183</a> <strong>void</strong> <font color="#2040a0">handleDeleteClassResponse</font><font color="4444FF">(</font>
642 <a name="2_line184">184</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
643 <a name="2_line185">185</a> <font color="#2040a0">CIMDeleteClassResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
644 <a name="2_line186">186</a>
645 <a name="2_line187">187</a> <strong>void</strong> <font color="#2040a0">handleCreateInstanceResponse</font><font color="4444FF">(</font>
646 <a name="2_line188">188</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
647 <a name="2_line189">189</a> <font color="#2040a0">CIMCreateInstanceResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
648 mday 1.1.2.2 <a name="2_line190">190</a>
649 <a name="2_line191">191</a> <strong>void</strong> <font color="#2040a0">handleGetInstanceResponse</font><font color="4444FF">(</font>
650 <a name="2_line192">192</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
651 <a name="2_line193">193</a> <font color="#2040a0">CIMGetInstanceResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
652 <a name="2_line194">194</a>
653 <a name="2_line195">195</a> <strong>void</strong> <font color="#2040a0">handleModifyInstanceResponse</font><font color="4444FF">(</font>
654 <a name="2_line196">196</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
655 <a name="2_line197">197</a> <font color="#2040a0">CIMModifyInstanceResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
656 <a name="2_line198">198</a>
657 <a name="2_line199">199</a> <strong>void</strong> <font color="#2040a0">handleEnumerateInstanceNamesResponse</font><font color="4444FF">(</font>
658 <a name="2_line200">200</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
659 <a name="2_line201">201</a> <font color="#2040a0">CIMEnumerateInstanceNamesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
660 <a name="2_line202">202</a>
661 <a name="2_line203">203</a> <strong>void</strong> <font color="#2040a0">handleEnumerateInstancesResponse</font><font color="4444FF">(</font>
662 <a name="2_line204">204</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
663 <a name="2_line205">205</a> <font color="#2040a0">CIMEnumerateInstancesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
664 <a name="2_line206">206</a>
665 <a name="2_line207">207</a> <strong>void</strong> <font color="#2040a0">handleDeleteInstanceResponse</font><font color="4444FF">(</font>
666 <a name="2_line208">208</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
667 <a name="2_line209">209</a> <font color="#2040a0">CIMDeleteInstanceResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
668 <a name="2_line210">210</a>
669 mday 1.1.2.2 <a name="2_line211">211</a> <strong>void</strong> <font color="#2040a0">handleGetPropertyResponse</font><font color="4444FF">(</font>
670 <a name="2_line212">212</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
671 <a name="2_line213">213</a> <font color="#2040a0">CIMGetPropertyResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
672 <a name="2_line214">214</a>
673 <a name="2_line215">215</a> <strong>void</strong> <font color="#2040a0">handleSetPropertyResponse</font><font color="4444FF">(</font>
674 <a name="2_line216">216</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
675 <a name="2_line217">217</a> <font color="#2040a0">CIMSetPropertyResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
676 <a name="2_line218">218</a>
677 <a name="2_line219">219</a> <strong>void</strong> <font color="#2040a0">handleSetQualifierResponse</font><font color="4444FF">(</font>
678 <a name="2_line220">220</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
679 <a name="2_line221">221</a> <font color="#2040a0">CIMSetQualifierResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
680 <a name="2_line222">222</a>
681 <a name="2_line223">223</a> <strong>void</strong> <font color="#2040a0">handleGetQualifierResponse</font><font color="4444FF">(</font>
682 <a name="2_line224">224</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
683 <a name="2_line225">225</a> <font color="#2040a0">CIMGetQualifierResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
684 <a name="2_line226">226</a>
685 <a name="2_line227">227</a> <strong>void</strong> <font color="#2040a0">handleEnumerateQualifiersResponse</font><font color="4444FF">(</font>
686 <a name="2_line228">228</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
687 <a name="2_line229">229</a> <font color="#2040a0">CIMEnumerateQualifiersResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
688 <a name="2_line230">230</a>
689 <a name="2_line231">231</a> <strong>void</strong> <font color="#2040a0">handleDeleteQualifierResponse</font><font color="4444FF">(</font>
690 mday 1.1.2.2 <a name="2_line232">232</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
691 <a name="2_line233">233</a> <font color="#2040a0">CIMDeleteQualifierResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
692 <a name="2_line234">234</a>
693 <a name="2_line235">235</a> <strong>void</strong> <font color="#2040a0">handleReferenceNamesResponse</font><font color="4444FF">(</font>
694 <a name="2_line236">236</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
695 <a name="2_line237">237</a> <font color="#2040a0">CIMReferenceNamesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
696 <a name="2_line238">238</a>
697 <a name="2_line239">239</a> <strong>void</strong> <font color="#2040a0">handleReferencesResponse</font><font color="4444FF">(</font>
698 <a name="2_line240">240</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
699 <a name="2_line241">241</a> <font color="#2040a0">CIMReferencesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
700 <a name="2_line242">242</a>
701 <a name="2_line243">243</a> <strong>void</strong> <font color="#2040a0">handleAssociatorNamesResponse</font><font color="4444FF">(</font>
702 <a name="2_line244">244</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
703 <a name="2_line245">245</a> <font color="#2040a0">CIMAssociatorNamesResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
704 <a name="2_line246">246</a>
705 <a name="2_line247">247</a> <strong>void</strong> <font color="#2040a0">handleAssociatorsResponse</font><font color="4444FF">(</font>
706 <a name="2_line248">248</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
707 <a name="2_line249">249</a> <font color="#2040a0">CIMAssociatorsResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
708 <a name="2_line250">250</a>
709 <a name="2_line251">251</a> <strong>void</strong> <font color="#2040a0">handleExecQueryResponse</font><font color="4444FF">(</font>
710 <a name="2_line252">252</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
711 mday 1.1.2.2 <a name="2_line253">253</a> <font color="#2040a0">CIMExecQueryResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
712 <a name="2_line254">254</a>
713 <a name="2_line255">255</a> <strong>void</strong> <font color="#2040a0">handleInvokeMethodResponse</font><font color="4444FF">(</font>
714 <a name="2_line256">256</a> <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
715 <a name="2_line257">257</a> <font color="#2040a0">CIMInvokeMethodResponseMessage</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
716 <a name="2_line258">258</a>
717 <a name="2_line259">259</a> <strong>private</strong><font color="4444FF">:</font>
718 <a name="2_line260">260</a> <font color="#2040a0">BinaryMessageHandler</font><font color="4444FF">(</font><strong>void</strong><font color="4444FF">)</font><font color="4444FF">;</font>
719 <a name="2_line261">261</a> <font color="#2040a0">BinaryMessageHandler</font> <font color="4444FF">&</font> <strong>operator</strong> <font color="4444FF">=</font> <font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">BinaryMessageHandler</font> <font color="4444FF">&</font> <font color="4444FF">)</font> <strong>const</strong><font color="4444FF">;</font>
720 <a name="2_line262">262</a> <strong>void</strong> <font color="#2040a0">_handleRequest</font><font color="4444FF">(</font><font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>, <font color="#2040a0">Message</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
721 <a name="2_line263">263</a> <strong>void</strong> <font color="#2040a0">_handleResponse</font><font color="4444FF">(</font><font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>, <font color="#2040a0">Message</font> <font color="4444FF">*</font><font color="4444FF">)</font> <strong>throw</strong><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
722 <a name="2_line264">264</a>
723 <a name="2_line265">265</a>
724 <a name="2_line266">266</a> <font color="#2040a0">MessageQueueService</font><font color="4444FF">*</font> <font color="#2040a0">_outputQueue</font><font color="4444FF">;</font>
725 <a name="2_line267">267</a>
726 <a name="2_line268">268</a> <font color="#444444">// Flag to indicate whether or not the CIMServer is shutting down.</font>
727 <a name="2_line269">269</a> <font color="#2040a0">Boolean</font> <font color="#2040a0">_serverTerminating</font><font color="4444FF">;</font>
728 <a name="2_line270">270</a> <font color="#2040a0">AsyncDQueue</font><font color="4444FF"><</font><font color="#2040a0">AsyncOpNode</font><font color="4444FF">></font> <font color="#2040a0">_msg_q</font><font color="4444FF">;</font>
729 <a name="2_line271">271</a>
730 <a name="2_line272">272</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
731 <a name="2_line273">273</a>
732 mday 1.1.2.2 <a name="2_line274">274</a>
733 <a name="2_line275">275</a> <font color="#2040a0">PEGASUS_NAMESPACE_END</font>
734 <a name="2_line276">276</a>
735 <a name="2_line277">277</a> <font color="0000ff"><strong>#endif <font color="#444444">// Pegasus_BinaryMessageHandler_h</font></strong></font>
|
736 mday 1.1.2.1 </pre><!-- code2html delete stop -->
737
738 <hr>
739 <address><a href="mailto:mdday@us.ibm.com">Michael Day</a></address>
740 <!-- Created: Thu Feb 13 11:44:30 EST 2003 -->
741 <!-- hhmts start -->
|
742 mday 1.1.2.2 Last modified: Fri Mar 7 12:20:49 EST 2003
|
743 mday 1.1.2.1 <!-- hhmts end -->
744 </body>
745 </html>
|