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

Diff for /pegasus/Attic/cimom_handle.html between version 1.1 and 1.1.2.2

version 1.1, 2003/02/28 21:34:05 version 1.1.2.2, 2003/03/07 17:56:48
Line 0 
Line 1 
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   <html>
     <head>
       <title>PEP # ?: Pegasus 2.2 CIMOMHandle</title>
       <link rel="stylesheet" type="text/css" href="http://www.soft-hackle.net/md.css">
     </head>
   
     <body>
     <table >
       <tr>
   
         <td>
           <img height="70" src="http://www.opengroup.org/images/pegicon2.gif" width="70" border="0">
         </td>
         <td>
           <h1>PEP # ?: Pegasus CIMOMHandle</h1>
         </td>
       </tr>
     </table>
   
       <table class="comment">
         <tr align="left">
           <th>Type</th><th>Status</th><th>Approveers</th>
         </tr>
         <tr>
           <td>Architecture</td><td>Draft</td><td>Pegasus architecture team</td>
         </tr>
       </table>
       <table class="comment">
         <tr align="left">
           <th>Version</th><th>Date</th><th>Author</th><th>Comments</th>
         </tr>
         <tr>
           <td>1.0</td><td>Thu Feb 13 11:58:12 2003</td><td>Mike Day</td><td><i>initial submission</i></td>
         </tr>
         <tr>
           <td>2.0</td><td>Fri Mar  7 12:17:45 2003</td><td>Mike Day</td>
           <td><i>
               Changed handling of timeout to use an OperationContext container.<br>
               Upgraded interfaces to be consistent with CIMClient. <br>
               Changed exception specification to throw CIMException.<br>
               Exception error code and string are captured from CIMResponseMessage<br>
               and rethrown to provider whenever the CIM_ERR code is not zero.
             </i></td>
         </tr>
       </table>
   
       <hr>
   
         <h2>Summary</h2>
         <p>
           The CIMOMHandle in Pegasus is the object that providers must
           use to gain access to Pegasus services including the
           repository and other providers. A functioning CIMOMHandle is
           necessary for association support.
         </p>
         <p>
           The CIMOMhandle also serves a useful role for asynchronous
           providers in that it facilitates communication of status
           between Pegasus and its providers. For example, some providers
           must always remain loaded, or must ensure they are not
           unloaded during a critical or time consuming operation. They
           need the CIMOMHandle to indicate this status back to
           Pegasus.
         </p>
   
         <h2>Problem Solved/Feature Added</h2>
         <p>
           The CIMOMHandle in Pegasus does not work right now. This
           document proposes a redesign of the CIMOMHandle to ensure it
           works and fulfills present and future requirements.
         </p>
   
         <h3>Solution Requirements</h3>
         <p>
           Pegasus requires the CIMOMHandle to provide the following
           facilities:
         </p>
         <div class="example">
           <ol>
             <li>Complete procedural interface to Pegasus client
               operations.</li>
             <li>Execution threads must be separated to avoid any
               possibility of deadlock. Recursion into the provider is
               therefore allowed. Recursion into the CIMOMHandle is not.</li>
             <li>The Pegasus Provider Manager must know when a given
               provider is executing a call back into Pegasus via the
               CIMOMHandle.</li>
             <li>Providers must be able to proactively protect themselves from being
               unloaded.</li>
             <li>The CIMOM handle must recover completely whenever it is
               called recursively.</li>
           </ol>
         </div>
   
         <h3>Proposed Solution</h3>
         <p>
           This document proposes adding a new Server component to
           Pegasus that acts as a binary request encoder/decoder. The
           CIMOMHandle presents providers with what is logically a CIMClient
           interface. However, instead of generating CIM/XML operations,
           the CIMOMHandle enqueues binary CIMRequest/Response messages
           to the new Server component.
         </p>
   
         <p>
           The new Server component fulfills the role of both request
           decoder and response encoder. Except that it does not
           encode/decode; it only passes the preformed messages through
           the normal execution path and forwards the response back to
           the CIMOMHandle.
         </p>
   
         <h4>Existing Pegasus Client Request Processing</h4>
         <div class="comment" align="center">
         <img alt="Existing Pegasus client request flow"
              src="http://www.soft-hackle.net/peg_client.jpg"</img>
           <p>
             Existing client operations arrive at Pegasus as CIM/XML
             documents and are decoded into CIMMessage objects. Then they
             are dispatched to Pegasus. Responses are encoded from
             CIMMessage objects back into CIM/XML documents.
           </p>
         </div>
   
   
         <h4>CIMOMHandle Request Processing</h4>
         <div class="comment" align="center">
         <img alt="Existing Pegasus client request flow"
              src="http://www.soft-hackle.net/binary_client.jpg"</img>
           <p>
             CIMOMHandle client requests originate as CIMMessage
             objects. They don't need to be decoded. They follow the
             exact same processing path as <i>decoded</i> client
             operations.
           </p>
           <p>
             Responses to CIMOMHandle operations follow the exact same
             processing paths as Client responses, up to the encoding
             step. Instead of being encoded and transmitted, they are
             enqueued back to the CIMOMhandle. The CIMOMHandle marshals
             the response data and returns from the method call back to
             the provider.
           </p>
         </div>
   
         <h2> Advantages and disadvantages of proposed design</h2>
         <p>
           The advantages to this proposal include the following:
           <ol class="enumerated">
             <li>Small incremental code size, around 2k. Very small
               memory footprint. Each CIMOMHandle uses as much memory as
               a MessageQueue plus around 400 bytes, requires no Thread.</li>
             <li>Requires no additional libraries (such as
               CIMClient).</li>
             <li>Performance is much faster than CIMClient due to the
               elimination of message encoding/decoding.</li>
             <li>Asynchronous operation is preserved intact.</li>
             <li>The Binary Request handler can be reused for other
               procedural client interfaces (SOAP, Java, etc.).
           </ol>
         </p>
   
         <h2>Alternative approaches and their advantages and
           disadvantages.</h2>
         <p>
           The alternative I considered was to use the CIMClient class to
           invoke the client interface from the CIMOMHandle. However,
           this approach has the following disadvantages:
           <ol class="enumerated">
             <li>Size and resources. Each CIMOMHandle would require its
               own CIMClient class. It would consume an HTTPConnection
               and associated resources for every method invocation.</li>
             <li>Performance. Most of the CPU cycles would be wasted
               encoding a CIMMessage, transmitting the XML, decoding the XML,
               re-encoding the XML, and re-decoding the XML once again.</li>
           </ol>
         </p>
   
         <h2> Proposed schedule.</h2>
         <p>
           This proposal is already implemented. Source code is included
           at the end of this document. It can be committed to the head
           of the repository immediately upon acceptance by the
           Architecture Team.
         </p>
   
         <h2>Risk Mitigation</h2>
         <p>
           To Mimimize risk, I have already implemented and tested this
         proposal in the mday-2-0-patches branch of the CVS repository. </p>
   
         <h2>Source Code</h2>
   
         <h3>CIMOMHandle.h</h3>
         <!-- code2html add -lcc -n src/Pegasus/Provider/CIMOMHandle.h
         --><!-- code2html delete start --><pre><a name="1_line1">  1</a> <font color="#444444">//%///-*-c++-*-/////////////////////////////////////////////////////////////////</font>
   <a name="1_line2">  2</a> <font color="#444444">//</font>
   <a name="1_line3">  3</a> <font color="#444444">// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,</font>
   <a name="1_line4">  4</a> <font color="#444444">// The Open Group, Tivoli Systems</font>
   <a name="1_line5">  5</a> <font color="#444444">//</font>
   <a name="1_line6">  6</a> <font color="#444444">// Permission is hereby granted, free of charge, to any person obtaining a copy</font>
   <a name="1_line7">  7</a> <font color="#444444">// of this software and associated documentation files (the &quot;Software&quot;), to</font>
   <a name="1_line8">  8</a> <font color="#444444">// deal in the Software without restriction, including without limitation the</font>
   <a name="1_line9">  9</a> <font color="#444444">// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</font>
   <a name="1_line10"> 10</a> <font color="#444444">// sell copies of the Software, and to permit persons to whom the Software is</font>
   <a name="1_line11"> 11</a> <font color="#444444">// furnished to do so, subject to the following conditions:</font>
   <a name="1_line12"> 12</a> <font color="#444444">//</font>
   <a name="1_line13"> 13</a> <font color="#444444">// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN</font>
   <a name="1_line14"> 14</a> <font color="#444444">// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED</font>
   <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>
   <a name="1_line16"> 16</a> <font color="#444444">// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR</font>
   <a name="1_line17"> 17</a> <font color="#444444">// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</font>
   <a name="1_line18"> 18</a> <font color="#444444">// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</font>
   <a name="1_line19"> 19</a> <font color="#444444">// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</font>
   <a name="1_line20"> 20</a> <font color="#444444">// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</font>
   <a name="1_line21"> 21</a> <font color="#444444">//</font>
   <a name="1_line22"> 22</a> <font color="#444444">//==============================================================================</font>
   <a name="1_line23"> 23</a> <font color="#444444">//</font>
   <a name="1_line24"> 24</a> <font color="#444444">// Author: Chip Vincent (cvincent@us.ibm.com)</font>
   <a name="1_line25"> 25</a> <font color="#444444">//</font>
   <a name="1_line26"> 26</a> <font color="#444444">// Modified By: Mike Brasher (mbrasher@bmc.com)</font>
   <a name="1_line27"> 27</a> <font color="#444444">//              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)</font>
   <a name="1_line28"> 28</a> <font color="#444444">//              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)</font>
   <a name="1_line29"> 29</a> <font color="#444444">//              Mike Day, IBM (mdday@us.ibm.com)</font>
   <a name="1_line30"> 30</a> <font color="#444444">//</font>
   <a name="1_line31"> 31</a> <font color="#444444">//%/////////////////////////////////////////////////////////////////////////////</font>
   <a name="1_line32"> 32</a>
   <a name="1_line33"> 33</a>
   <a name="1_line34"> 34</a> <font color="0000ff"><strong>#ifndef Pegasus_CIMOMHandle_h</strong></font>
   <a name="1_line35"> 35</a> <font color="0000ff"><strong>#define Pegasus_CIMOMHandle_h</strong></font>
   <a name="1_line36"> 36</a>
   <a name="1_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Config.h&gt;</font></strong></font>
   <a name="1_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/ModuleController.h&gt;</font></strong></font>
   <a name="1_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/OperationContext.h&gt;</font></strong></font>
   <a name="1_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMObject.h&gt;</font></strong></font>
   <a name="1_line41"> 41</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMObjectPath.h&gt;</font></strong></font>
   <a name="1_line42"> 42</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMClass.h&gt;</font></strong></font>
   <a name="1_line43"> 43</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMInstance.h&gt;</font></strong></font>
   <a name="1_line44"> 44</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMPropertyList.h&gt;</font></strong></font>
   <a name="1_line45"> 45</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/ResponseHandler.h&gt;</font></strong></font>
   <a name="1_line46"> 46</a> <font color="0000ff"><strong>#include <font color="#008000">&quot;Linkage.h&quot;</font></strong></font>
   <a name="1_line47"> 47</a>
   <a name="1_line48"> 48</a> <font color="#2040a0">PEGASUS_NAMESPACE_BEGIN</font>
   <a name="1_line49"> 49</a>
   <a name="1_line50"> 50</a> <strong>class</strong> <font color="#2040a0">ProviderManager</font><font color="4444FF">;</font>
   <a name="1_line51"> 51</a> <strong>class</strong> <font color="#2040a0">Provider</font><font color="4444FF">;</font>
   <a name="1_line52"> 52</a>
   <a name="1_line53"> 53</a> <strong>class</strong> <font color="#2040a0">cimom_handle_op_semaphore</font><font color="4444FF">;</font>
   <a name="1_line54"> 54</a>
   <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>
   <a name="1_line56"> 56</a> <font color="4444FF"><strong>{</strong></font>
   <a name="1_line57"> 57</a>    <strong>public</strong><font color="4444FF">:</font>
   <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>
   <a name="1_line59"> 59</a>
   <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>
   <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>
   <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>
   <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>
   <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>
   <a name="1_line65"> 65</a>
   <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>
   <a name="1_line67"> 67</a>    <strong>protected</strong><font color="4444FF">:</font>
   <a name="1_line68"> 68</a>       <font color="#2040a0">Uint32</font> <font color="#2040a0">_value</font><font color="4444FF">;</font>
   <a name="1_line69"> 69</a>    <strong>private</strong><font color="4444FF">:</font>
   <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>
   <a name="1_line71"> 71</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
   <a name="1_line72"> 72</a>
   <a name="1_line73"> 73</a>
   <a name="1_line74"> 74</a> <strong>class</strong> <font color="#2040a0">PEGASUS_PROVIDER_LINKAGE</font> <font color="#2040a0">CIMOMHandle</font>
   <a name="1_line75"> 75</a> <font color="4444FF"><strong>{</strong></font>
   <a name="1_line76"> 76</a>
   <a name="1_line77"> 77</a>    <strong>public</strong><font color="4444FF">:</font>
   <a name="1_line78"> 78</a>
   <a name="1_line79"> 79</a>       <font color="#444444"><i>/** */</i></font>
   <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>
   <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>
   <a name="1_line82"> 82</a>
   <a name="1_line83"> 83</a>       <font color="#444444"><i>/** */</i></font>
   <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>
   <a name="1_line85"> 85</a>
   <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>
   <a name="1_line87"> 87</a>
   <a name="1_line88"> 88</a>       <font color="#2040a0">CIMClass</font> <font color="#2040a0">getClass</font><font color="4444FF">(</font>
   <a name="1_line89"> 89</a>       <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line90"> 90</a>       <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line91"> 91</a>       <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">className</font>,
   <a name="1_line92"> 92</a>       <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
   <a name="1_line93"> 93</a>       <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line94"> 94</a>       <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
   <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>
   <a name="1_line96"> 96</a>
   <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>
   <a name="1_line98"> 98</a>       <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line99"> 99</a>       <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line100">100</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">className</font>,
   <a name="1_line101">101</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font>,
   <a name="1_line102">102</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
   <a name="1_line103">103</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line104">104</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font><font color="4444FF">)</font><font color="4444FF">;</font>
   <a name="1_line105">105</a>
   <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>
   <a name="1_line107">107</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line108">108</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line109">109</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">className</font>,
   <a name="1_line110">110</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font><font color="4444FF">)</font><font color="4444FF">;</font>
   <a name="1_line111">111</a>
   <a name="1_line112">112</a>       <strong>void</strong> <font color="#2040a0">createClass</font><font color="4444FF">(</font>
   <a name="1_line113">113</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line114">114</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line116">116</a>
   <a name="1_line117">117</a>       <strong>void</strong> <font color="#2040a0">modifyClass</font><font color="4444FF">(</font>
   <a name="1_line118">118</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line119">119</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line121">121</a>
   <a name="1_line122">122</a>       <strong>void</strong> <font color="#2040a0">deleteClass</font><font color="4444FF">(</font>
   <a name="1_line123">123</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line124">124</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line126">126</a>
   <a name="1_line127">127</a>       <font color="#2040a0">CIMInstance</font> <font color="#2040a0">getInstance</font><font color="4444FF">(</font>
   <a name="1_line128">128</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line129">129</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line130">130</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
   <a name="1_line131">131</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
   <a name="1_line132">132</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line133">133</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
   <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>
   <a name="1_line135">135</a>
   <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>
   <a name="1_line137">137</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line138">138</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line139">139</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">className</font>,
   <a name="1_line140">140</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">deepInheritance</font>,
   <a name="1_line141">141</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">localOnly</font>,
   <a name="1_line142">142</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line143">143</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
   <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>
   <a name="1_line145">145</a>
   <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>
   <a name="1_line147">147</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line148">148</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line150">150</a>
   <a name="1_line151">151</a>       <font color="#2040a0">CIMObjectPath</font> <font color="#2040a0">createInstance</font><font color="4444FF">(</font>
   <a name="1_line152">152</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line153">153</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line155">155</a>
   <a name="1_line156">156</a>       <strong>void</strong> <font color="#2040a0">modifyInstance</font><font color="4444FF">(</font>
   <a name="1_line157">157</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line158">158</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line159">159</a>      <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&amp;</font> <font color="#2040a0">modifiedInstance</font>,
   <a name="1_line160">160</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <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>
   <a name="1_line162">162</a>
   <a name="1_line163">163</a>       <strong>void</strong> <font color="#2040a0">deleteInstance</font><font color="4444FF">(</font>
   <a name="1_line164">164</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line165">165</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <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>
   <a name="1_line167">167</a>
   <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>
   <a name="1_line169">169</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line170">170</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line171">171</a>      <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">queryLanguage</font>,
   <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>
   <a name="1_line173">173</a>
   <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>
   <a name="1_line175">175</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line176">176</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line177">177</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
   <a name="1_line178">178</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">assocClass</font>,
   <a name="1_line179">179</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
   <a name="1_line180">180</a>      <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">role</font>,
   <a name="1_line181">181</a>      <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultRole</font>,
   <a name="1_line182">182</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line183">183</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
   <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>
   <a name="1_line185">185</a>
   <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>
   <a name="1_line187">187</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line188">188</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line189">189</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
   <a name="1_line190">190</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">assocClass</font>,
   <a name="1_line191">191</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
   <a name="1_line192">192</a>      <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">role</font>,
   <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>
   <a name="1_line194">194</a>
   <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>
   <a name="1_line196">196</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line197">197</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line198">198</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
   <a name="1_line199">199</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
   <a name="1_line200">200</a>      <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&amp;</font> <font color="#2040a0">role</font>,
   <a name="1_line201">201</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeQualifiers</font>,
   <a name="1_line202">202</a>      <font color="#2040a0">Boolean</font> <font color="#2040a0">includeClassOrigin</font>,
   <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>
   <a name="1_line204">204</a>
   <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>
   <a name="1_line206">206</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line207">207</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line208">208</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">objectName</font>,
   <a name="1_line209">209</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">resultClass</font>,
   <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>
   <a name="1_line211">211</a>
   <a name="1_line212">212</a>       <font color="#444444">// property operations</font>
   <a name="1_line213">213</a>       <font color="#2040a0">CIMValue</font> <font color="#2040a0">getProperty</font><font color="4444FF">(</font>
   <a name="1_line214">214</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line215">215</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line216">216</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
   <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>
   <a name="1_line218">218</a>
   <a name="1_line219">219</a>       <strong>void</strong> <font color="#2040a0">setProperty</font><font color="4444FF">(</font>
   <a name="1_line220">220</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line221">221</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line222">222</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
   <a name="1_line223">223</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">propertyName</font>,
   <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>
   <a name="1_line225">225</a>
   <a name="1_line226">226</a>       <font color="#2040a0">CIMValue</font> <font color="#2040a0">invokeMethod</font><font color="4444FF">(</font>
   <a name="1_line227">227</a>      <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&amp;</font> <font color="#2040a0">context</font>,
   <a name="1_line228">228</a>      <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&amp;</font> <font color="#2040a0">nameSpace</font>,
   <a name="1_line229">229</a>      <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&amp;</font> <font color="#2040a0">instanceName</font>,
   <a name="1_line230">230</a>      <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&amp;</font> <font color="#2040a0">methodName</font>,
   <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>,
   <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>
   <a name="1_line233">233</a>
   <a name="1_line234">234</a>
   <a name="1_line235">235</a>
   <a name="1_line236">236</a> <font color="#444444">//   force provider manager to keep in memory</font>
   <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>
   <a name="1_line238">238</a> <font color="#444444">// allow provider manager to unload when idle </font>
   <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>
   <a name="1_line240">240</a>
   <a name="1_line241">241</a>       <strong>class</strong> <font color="#2040a0">_cimom_handle_rep</font><font color="4444FF">;</font>
   <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>
   <a name="1_line243">243</a>    <strong>private</strong><font color="4444FF">:</font>
   <a name="1_line244">244</a>       <strong>friend</strong> <strong>class</strong> <font color="#2040a0">Provider</font><font color="4444FF">;</font>
   <a name="1_line245">245</a>       <strong>friend</strong> <strong>class</strong> <font color="#2040a0">cimom_handle_op_semaphore</font><font color="4444FF">;</font>
   <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>
   <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>
   <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>
   <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>
   <a name="1_line250">250</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
   <a name="1_line251">251</a>
   <a name="1_line252">252</a>
   <a name="1_line253">253</a>
   <a name="1_line254">254</a>
   <a name="1_line255">255</a>
   <a name="1_line256">256</a> <font color="#2040a0">PEGASUS_NAMESPACE_END</font>
   <a name="1_line257">257</a>
   <a name="1_line258">258</a> <font color="0000ff"><strong>#endif</strong></font>
   </pre><!-- code2html delete stop -->
   
         <h3>BinaryMessageHandler.h</h3>
         <!-- code2html add -lcc -n src/Pegasus/Server/BinaryMessageHandler.h
         --><!-- code2html delete start --><pre><a name="2_line1">  1</a> <font color="#444444">//%/////////////-*-c++-*-///////////////////////////////////////////////////////</font>
   <a name="2_line2">  2</a> <font color="#444444">//</font>
   <a name="2_line3">  3</a> <font color="#444444">// Copyright (c) 2000 - 2003 BMC Software, Hewlett-Packard Company, IBM,</font>
   <a name="2_line4">  4</a> <font color="#444444">// The Open Group, Tivoli Systems</font>
   <a name="2_line5">  5</a> <font color="#444444">//</font>
   <a name="2_line6">  6</a> <font color="#444444">// Permission is hereby granted, free of charge, to any person obtaining a copy</font>
   <a name="2_line7">  7</a> <font color="#444444">// of this software and associated documentation files (the &quot;Software&quot;), to</font>
   <a name="2_line8">  8</a> <font color="#444444">// deal in the Software without restriction, including without limitation the</font>
   <a name="2_line9">  9</a> <font color="#444444">// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</font>
   <a name="2_line10"> 10</a> <font color="#444444">// sell copies of the Software, and to permit persons to whom the Software is</font>
   <a name="2_line11"> 11</a> <font color="#444444">// furnished to do so, subject to the following conditions:</font>
   <a name="2_line12"> 12</a> <font color="#444444">// </font>
   <a name="2_line13"> 13</a> <font color="#444444">// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN</font>
   <a name="2_line14"> 14</a> <font color="#444444">// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED</font>
   <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>
   <a name="2_line16"> 16</a> <font color="#444444">// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR</font>
   <a name="2_line17"> 17</a> <font color="#444444">// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</font>
   <a name="2_line18"> 18</a> <font color="#444444">// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</font>
   <a name="2_line19"> 19</a> <font color="#444444">// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</font>
   <a name="2_line20"> 20</a> <font color="#444444">// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</font>
   <a name="2_line21"> 21</a> <font color="#444444">//</font>
   <a name="2_line22"> 22</a> <font color="#444444">//==============================================================================</font>
   <a name="2_line23"> 23</a> <font color="#444444">//</font>
   <a name="2_line24"> 24</a> <font color="#444444">// Author: Mike Day (mdday@us.ibm.com)</font>
   <a name="2_line25"> 25</a> <font color="#444444">//</font>
   <a name="2_line26"> 26</a> <font color="#444444">//%/////////////////////////////////////////////////////////////////////////////</font>
   <a name="2_line27"> 27</a> <font color="0000ff"><strong>#ifndef Pegasus_BinaryMessageHandler_h</strong></font>
   <a name="2_line28"> 28</a> <font color="0000ff"><strong>#define Pegasus_BinaryMessageHandler_h</strong></font>
   <a name="2_line29"> 29</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Config.h&gt;</font></strong></font>
   <a name="2_line30"> 30</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/AsyncOpNode.h&gt;</font></strong></font>
   <a name="2_line31"> 31</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/DQueue.h&gt;</font></strong></font>
   <a name="2_line32"> 32</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/MessageQueueService.h&gt;</font></strong></font>
   <a name="2_line33"> 33</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Message.h&gt;</font></strong></font>
   <a name="2_line34"> 34</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/CIMMessage.h&gt;</font></strong></font>
   <a name="2_line35"> 35</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Tracer.h&gt;</font></strong></font>
   <a name="2_line36"> 36</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/TraceComponents.h&gt;</font></strong></font>
   <a name="2_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/IPC.h&gt;</font></strong></font>
   <a name="2_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Thread.h&gt;</font></strong></font>
   <a name="2_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Common/Constants.h&gt;</font></strong></font>
   <a name="2_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000">&lt;Pegasus/Server/Linkage.h&gt;</font></strong></font>
   <a name="2_line41"> 41</a>
   <a name="2_line42"> 42</a> <font color="#2040a0">PEGASUS_NAMESPACE_BEGIN</font>
   <a name="2_line43"> 43</a>
   <a name="2_line44"> 44</a> <font color="#444444"><i>/** This class provides an in-process binary client interface,
   <a name="2_line45"> 45</a>     both for requests and responses.
   <a name="2_line46"> 46</a> */</i></font>
   <a name="2_line47"> 47</a>
   <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>
   <a name="2_line49"> 49</a> <font color="4444FF"><strong>{</strong></font>
   <a name="2_line50"> 50</a>    <strong>public</strong><font color="4444FF">:</font>
   <a name="2_line51"> 51</a>       <strong>typedef</strong> <font color="#2040a0">MessageQueueService</font> <font color="#2040a0">Base</font><font color="4444FF">;</font>
   <a name="2_line52"> 52</a>
   <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>
   <a name="2_line54"> 54</a>       ~<font color="#2040a0">BinaryMessageHandler</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>
   <a name="2_line55"> 55</a>
   <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>
   <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>
   <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>
   <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>
   <a name="2_line60"> 60</a>    <strong>protected</strong><font color="4444FF">:</font>
   <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>
   <a name="2_line62"> 62</a>
   <a name="2_line63"> 63</a>       <font color="#444444">// **** Request Messages **** //</font>
   <a name="2_line64"> 64</a>
   <a name="2_line65"> 65</a>       <strong>void</strong> <font color="#2040a0">handleCreateClassRequest</font><font color="4444FF">(</font>
   <a name="2_line66"> 66</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line68"> 68</a>
   <a name="2_line69"> 69</a>       <strong>void</strong> <font color="#2040a0">handleGetClassRequest</font><font color="4444FF">(</font>
   <a name="2_line70"> 70</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line72"> 72</a>
   <a name="2_line73"> 73</a>       <strong>void</strong> <font color="#2040a0">handleModifyClassRequest</font><font color="4444FF">(</font>
   <a name="2_line74"> 74</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line76"> 76</a>
   <a name="2_line77"> 77</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateClassNamesRequest</font><font color="4444FF">(</font>
   <a name="2_line78"> 78</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line80"> 80</a>
   <a name="2_line81"> 81</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateClassesRequest</font><font color="4444FF">(</font>
   <a name="2_line82"> 82</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line84"> 84</a>
   <a name="2_line85"> 85</a>       <strong>void</strong> <font color="#2040a0">handleDeleteClassRequest</font><font color="4444FF">(</font>
   <a name="2_line86"> 86</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line88"> 88</a>
   <a name="2_line89"> 89</a>       <strong>void</strong> <font color="#2040a0">handleCreateInstanceRequest</font><font color="4444FF">(</font>
   <a name="2_line90"> 90</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line92"> 92</a>
   <a name="2_line93"> 93</a>       <strong>void</strong> <font color="#2040a0">handleGetInstanceRequest</font><font color="4444FF">(</font>
   <a name="2_line94"> 94</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line96"> 96</a>
   <a name="2_line97"> 97</a>       <strong>void</strong> <font color="#2040a0">handleModifyInstanceRequest</font><font color="4444FF">(</font>
   <a name="2_line98"> 98</a>       <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line100">100</a>
   <a name="2_line101">101</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateInstanceNamesRequest</font><font color="4444FF">(</font>
   <a name="2_line102">102</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line104">104</a>
   <a name="2_line105">105</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateInstancesRequest</font><font color="4444FF">(</font>
   <a name="2_line106">106</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line108">108</a>
   <a name="2_line109">109</a>       <strong>void</strong> <font color="#2040a0">handleDeleteInstanceRequest</font><font color="4444FF">(</font>
   <a name="2_line110">110</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line112">112</a>
   <a name="2_line113">113</a>       <strong>void</strong> <font color="#2040a0">handleSetQualifierRequest</font><font color="4444FF">(</font>
   <a name="2_line114">114</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line116">116</a>
   <a name="2_line117">117</a>       <strong>void</strong> <font color="#2040a0">handleGetQualifierRequest</font><font color="4444FF">(</font>
   <a name="2_line118">118</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line120">120</a>
   <a name="2_line121">121</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateQualifiersRequest</font><font color="4444FF">(</font>
   <a name="2_line122">122</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line124">124</a>
   <a name="2_line125">125</a>       <strong>void</strong> <font color="#2040a0">handleDeleteQualifiersRequest</font><font color="4444FF">(</font>
   <a name="2_line126">126</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line128">128</a>
   <a name="2_line129">129</a>       <strong>void</strong> <font color="#2040a0">handleReferenceNamesRequest</font><font color="4444FF">(</font>
   <a name="2_line130">130</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line132">132</a>
   <a name="2_line133">133</a>       <strong>void</strong> <font color="#2040a0">handleReferencesRequest</font><font color="4444FF">(</font>
   <a name="2_line134">134</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line136">136</a>
   <a name="2_line137">137</a>       <strong>void</strong> <font color="#2040a0">handleAssociatorNamesRequest</font><font color="4444FF">(</font>
   <a name="2_line138">138</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line140">140</a>
   <a name="2_line141">141</a>       <strong>void</strong> <font color="#2040a0">handleAssociatorsRequest</font><font color="4444FF">(</font>
   <a name="2_line142">142</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line144">144</a>
   <a name="2_line145">145</a>       <strong>void</strong> <font color="#2040a0">handleGetPropertyRequest</font><font color="4444FF">(</font>
   <a name="2_line146">146</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line148">148</a>
   <a name="2_line149">149</a>       <strong>void</strong> <font color="#2040a0">handleSetPropertyRequest</font><font color="4444FF">(</font>
   <a name="2_line150">150</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line152">152</a>
   <a name="2_line153">153</a>       <strong>void</strong> <font color="#2040a0">handleExecQueryRequest</font><font color="4444FF">(</font>
   <a name="2_line154">154</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line156">156</a>
   <a name="2_line157">157</a>       <strong>void</strong> <font color="#2040a0">handleInvokeMethodRequest</font><font color="4444FF">(</font>
   <a name="2_line158">158</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line160">160</a>
   <a name="2_line161">161</a>       <font color="#444444">// **** Response Messages **** //</font>
   <a name="2_line162">162</a>
   <a name="2_line163">163</a>       <strong>void</strong> <font color="#2040a0">handleCreateClassResponse</font><font color="4444FF">(</font>
   <a name="2_line164">164</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line166">166</a>
   <a name="2_line167">167</a>       <strong>void</strong> <font color="#2040a0">handleGetClassResponse</font><font color="4444FF">(</font>
   <a name="2_line168">168</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line170">170</a>
   <a name="2_line171">171</a>       <strong>void</strong> <font color="#2040a0">handleModifyClassResponse</font><font color="4444FF">(</font>
   <a name="2_line172">172</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line174">174</a>
   <a name="2_line175">175</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateClassNamesResponse</font><font color="4444FF">(</font>
   <a name="2_line176">176</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line178">178</a>
   <a name="2_line179">179</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateClassesResponse</font><font color="4444FF">(</font>
   <a name="2_line180">180</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line182">182</a>
   <a name="2_line183">183</a>       <strong>void</strong> <font color="#2040a0">handleDeleteClassResponse</font><font color="4444FF">(</font>
   <a name="2_line184">184</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line186">186</a>
   <a name="2_line187">187</a>       <strong>void</strong> <font color="#2040a0">handleCreateInstanceResponse</font><font color="4444FF">(</font>
   <a name="2_line188">188</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line190">190</a>
   <a name="2_line191">191</a>       <strong>void</strong> <font color="#2040a0">handleGetInstanceResponse</font><font color="4444FF">(</font>
   <a name="2_line192">192</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line194">194</a>
   <a name="2_line195">195</a>       <strong>void</strong> <font color="#2040a0">handleModifyInstanceResponse</font><font color="4444FF">(</font>
   <a name="2_line196">196</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line198">198</a>
   <a name="2_line199">199</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateInstanceNamesResponse</font><font color="4444FF">(</font>
   <a name="2_line200">200</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line202">202</a>
   <a name="2_line203">203</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateInstancesResponse</font><font color="4444FF">(</font>
   <a name="2_line204">204</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line206">206</a>
   <a name="2_line207">207</a>       <strong>void</strong> <font color="#2040a0">handleDeleteInstanceResponse</font><font color="4444FF">(</font>
   <a name="2_line208">208</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line210">210</a>
   <a name="2_line211">211</a>       <strong>void</strong> <font color="#2040a0">handleGetPropertyResponse</font><font color="4444FF">(</font>
   <a name="2_line212">212</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line214">214</a>
   <a name="2_line215">215</a>       <strong>void</strong> <font color="#2040a0">handleSetPropertyResponse</font><font color="4444FF">(</font>
   <a name="2_line216">216</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line218">218</a>
   <a name="2_line219">219</a>       <strong>void</strong> <font color="#2040a0">handleSetQualifierResponse</font><font color="4444FF">(</font>
   <a name="2_line220">220</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line222">222</a>
   <a name="2_line223">223</a>       <strong>void</strong> <font color="#2040a0">handleGetQualifierResponse</font><font color="4444FF">(</font>
   <a name="2_line224">224</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line226">226</a>
   <a name="2_line227">227</a>       <strong>void</strong> <font color="#2040a0">handleEnumerateQualifiersResponse</font><font color="4444FF">(</font>
   <a name="2_line228">228</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line230">230</a>
   <a name="2_line231">231</a>       <strong>void</strong> <font color="#2040a0">handleDeleteQualifierResponse</font><font color="4444FF">(</font>
   <a name="2_line232">232</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line234">234</a>
   <a name="2_line235">235</a>       <strong>void</strong> <font color="#2040a0">handleReferenceNamesResponse</font><font color="4444FF">(</font>
   <a name="2_line236">236</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line238">238</a>
   <a name="2_line239">239</a>       <strong>void</strong> <font color="#2040a0">handleReferencesResponse</font><font color="4444FF">(</font>
   <a name="2_line240">240</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line242">242</a>
   <a name="2_line243">243</a>       <strong>void</strong> <font color="#2040a0">handleAssociatorNamesResponse</font><font color="4444FF">(</font>
   <a name="2_line244">244</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line246">246</a>
   <a name="2_line247">247</a>       <strong>void</strong> <font color="#2040a0">handleAssociatorsResponse</font><font color="4444FF">(</font>
   <a name="2_line248">248</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line250">250</a>
   <a name="2_line251">251</a>       <strong>void</strong> <font color="#2040a0">handleExecQueryResponse</font><font color="4444FF">(</font>
   <a name="2_line252">252</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line254">254</a>
   <a name="2_line255">255</a>       <strong>void</strong> <font color="#2040a0">handleInvokeMethodResponse</font><font color="4444FF">(</font>
   <a name="2_line256">256</a>      <font color="#2040a0">AsyncOpNode</font> <font color="4444FF">*</font>,
   <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>
   <a name="2_line258">258</a>
   <a name="2_line259">259</a>    <strong>private</strong><font color="4444FF">:</font>
   <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>
   <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>
   <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>
   <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>
   <a name="2_line264">264</a>
   <a name="2_line265">265</a>
   <a name="2_line266">266</a>       <font color="#2040a0">MessageQueueService</font><font color="4444FF">*</font> <font color="#2040a0">_outputQueue</font><font color="4444FF">;</font>
   <a name="2_line267">267</a>
   <a name="2_line268">268</a>       <font color="#444444">// Flag to indicate whether or not the CIMServer is shutting down.</font>
   <a name="2_line269">269</a>       <font color="#2040a0">Boolean</font> <font color="#2040a0">_serverTerminating</font><font color="4444FF">;</font>
   <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>
   <a name="2_line271">271</a>
   <a name="2_line272">272</a> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font>
   <a name="2_line273">273</a>
   <a name="2_line274">274</a>
   <a name="2_line275">275</a> <font color="#2040a0">PEGASUS_NAMESPACE_END</font>
   <a name="2_line276">276</a>
   <a name="2_line277">277</a> <font color="0000ff"><strong>#endif <font color="#444444">// Pegasus_BinaryMessageHandler_h</font></strong></font>
   </pre><!-- code2html delete stop -->
   
       <hr>
       <address><a href="mailto:mdday@us.ibm.com">Michael Day</a></address>
   <!-- Created: Thu Feb 13 11:44:30 EST 2003 -->
   <!-- hhmts start -->
   Last modified: Fri Mar  7 12:20:49 EST 2003
   <!-- hhmts end -->
     </body>
   </html>


Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2