(file) Return to cimom_handle.html CVS log (file) (dir) Up to [Pegasus] / pegasus

  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 &quot;Software&quot;), 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">// &quot;AS IS&quot;, 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">&lt;Pegasus/Common/Config.h&gt;</font></strong></font>
234               <a name="1_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/ModuleController.h&gt;</font></strong></font>
235 mday  1.1.2.1 <a name="1_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/OperationContext.h&gt;</font></strong></font>
236               <a name="1_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMObject.h&gt;</font></strong></font>
237               <a name="1_line41"> 41</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMObjectPath.h&gt;</font></strong></font>
238               <a name="1_line42"> 42</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMClass.h&gt;</font></strong></font>
239               <a name="1_line43"> 43</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMInstance.h&gt;</font></strong></font>
240               <a name="1_line44"> 44</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMPropertyList.h&gt;</font></strong></font>
241               <a name="1_line45"> 45</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/ResponseHandler.h&gt;</font></strong></font>
242               <a name="1_line46"> 46</a> <font color="0000ff"><strong>#include <font color="#008000">&quot;Linkage.h&quot;</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">&amp;</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">&amp;</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">&amp;</font> <strong>operator</strong><font color="4444FF">=</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">CIMOMHandle</font> <font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
286               <a name="1_line90"> 90</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
287               <a name="1_line91"> 91</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</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">&lt;</font><font color="#2040a0">CIMClass</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
295               <a name="1_line99"> 99</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
296               <a name="1_line100">100</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&lt;</font><font color="#2040a0">CIMName</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
304               <a name="1_line108">108</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
305               <a name="1_line109">109</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
310               <a name="1_line114">114</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</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">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
315               <a name="1_line119">119</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
316               <a name="1_line120">120</a> 	 <strong>const</strong> <font color="#2040a0">CIMClass</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
320               <a name="1_line124">124</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
321               <a name="1_line125">125</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
325               <a name="1_line129">129</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
326               <a name="1_line130">130</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</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">&amp;</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">&lt;</font><font color="#2040a0">CIMInstance</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
334               <a name="1_line138">138</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
335               <a name="1_line139">139</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</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">&lt;</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
344               <a name="1_line148">148</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</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">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
349               <a name="1_line153">153</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
350               <a name="1_line154">154</a> 	 <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
354               <a name="1_line158">158</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
355               <a name="1_line159">159</a> 	 <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&amp;</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">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
361               <a name="1_line165">165</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
362               <a name="1_line166">166</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</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">&lt;</font><font color="#2040a0">CIMObject</font><font color="4444FF">&gt;</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">&amp;</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">&amp;</font> <font color="#2040a0">nameSpace</font>,
367               <a name="1_line171">171</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">queryLanguage</font>,
368               <a name="1_line172">172</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</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">&lt;</font><font color="#2040a0">CIMObject</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
372               <a name="1_line176">176</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
373               <a name="1_line177">177</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
374               <a name="1_line178">178</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">assocClass</font>,
375               <a name="1_line179">179</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
376               <a name="1_line180">180</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">role</font>,
377               <a name="1_line181">181</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</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">&amp;</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">&lt;</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
384               <a name="1_line188">188</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
385               <a name="1_line189">189</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
386               <a name="1_line190">190</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">resultClass</font>,
388               <a name="1_line192">192</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">role</font>,
389               <a name="1_line193">193</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</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">&lt;</font><font color="#2040a0">CIMObject</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
393               <a name="1_line197">197</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
394               <a name="1_line198">198</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
395               <a name="1_line199">199</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
396               <a name="1_line200">200</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</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">&amp;</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">&lt;</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">&gt;</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">&amp;</font> <font color="#2040a0">context</font>,
403               <a name="1_line207">207</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
404               <a name="1_line208">208</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
405               <a name="1_line209">209</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
406               <a name="1_line210">210</a> 	 <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
411               <a name="1_line215">215</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
412               <a name="1_line216">216</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
413               <a name="1_line217">217</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
417               <a name="1_line221">221</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
418               <a name="1_line222">222</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
419               <a name="1_line223">223</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">propertyName</font>,
420               <a name="1_line224">224</a> 	 <strong>const</strong> <font color="#2040a0">CIMValue</font><font color="4444FF">&amp;</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">&amp;</font> <font color="#2040a0">context</font>,
424               <a name="1_line228">228</a> 	 <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
425               <a name="1_line229">229</a> 	 <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
426               <a name="1_line230">230</a> 	 <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">methodName</font>,
427               <a name="1_line231">231</a> 	 <strong>const</strong> <font color="#2040a0">Array</font><font color="4444FF">&lt;</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">&gt;</font><font color="4444FF">&amp;</font> <font color="#2040a0">inParameters</font>,
428               <a name="1_line232">232</a> 	 <font color="#2040a0">Array</font><font color="4444FF">&lt;</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">&gt;</font><font color="4444FF">&amp;</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 &quot;Software&quot;), 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">// &quot;AS IS&quot;, 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">&lt;Pegasus/Common/Config.h&gt;</font></strong></font>
488               <a name="2_line30"> 30</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/AsyncOpNode.h&gt;</font></strong></font>
489               <a name="2_line31"> 31</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/DQueue.h&gt;</font></strong></font>
490               <a name="2_line32"> 32</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/MessageQueueService.h&gt;</font></strong></font>
491               <a name="2_line33"> 33</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Message.h&gt;</font></strong></font>
492               <a name="2_line34"> 34</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMMessage.h&gt;</font></strong></font>
493               <a name="2_line35"> 35</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Tracer.h&gt;</font></strong></font>
494               <a name="2_line36"> 36</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/TraceComponents.h&gt;</font></strong></font>
495               <a name="2_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/IPC.h&gt;</font></strong></font>
496               <a name="2_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Thread.h&gt;</font></strong></font>
497               <a name="2_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Constants.h&gt;</font></strong></font>
498               <a name="2_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Server/Linkage.h&gt;</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">&amp;</font> <strong>operator</strong> <font color="4444FF">=</font> <font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">BinaryMessageHandler</font> <font color="4444FF">&amp;</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">&lt;</font><font color="#2040a0">AsyncOpNode</font><font color="4444FF">&gt;</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>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2