Return to cimom_handle.html CVS log | Up to [Pegasus] / pegasus |
File: [Pegasus] / pegasus / Attic / cimom_handle.html
(download)
/
(as text)
Revision: 1.1.2.2, Fri Mar 7 17:56:48 2003 UTC (21 years, 3 months ago) by mday Branch: mday-2-0-patches Changes since 1.1.2.1: +476 -3569 lines changed CIMOMHandle to incorporate architecture team comments |
<!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 "Software"), 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">// "AS IS", 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"><Pegasus/Common/Config.h></font></strong></font> <a name="1_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/ModuleController.h></font></strong></font> <a name="1_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/OperationContext.h></font></strong></font> <a name="1_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMObject.h></font></strong></font> <a name="1_line41"> 41</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMObjectPath.h></font></strong></font> <a name="1_line42"> 42</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMClass.h></font></strong></font> <a name="1_line43"> 43</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMInstance.h></font></strong></font> <a name="1_line44"> 44</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMPropertyList.h></font></strong></font> <a name="1_line45"> 45</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/ResponseHandler.h></font></strong></font> <a name="1_line46"> 46</a> <font color="0000ff"><strong>#include <font color="#008000">"Linkage.h"</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">&</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">&</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">&</font> <strong>operator</strong><font color="4444FF">=</font><font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">CIMOMHandle</font> <font color="4444FF">&</font> <font color="#2040a0">handle</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line90"> 90</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line91"> 91</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</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">&</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"><</font><font color="#2040a0">CIMClass</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line99"> 99</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line100">100</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</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"><</font><font color="#2040a0">CIMName</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line108">108</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line109">109</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</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">&</font> <font color="#2040a0">context</font>, <a name="1_line114">114</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line115">115</a> <strong>const</strong> <font color="#2040a0">CIMClass</font><font color="4444FF">&</font> <font color="#2040a0">newClass</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line119">119</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line120">120</a> <strong>const</strong> <font color="#2040a0">CIMClass</font><font color="4444FF">&</font> <font color="#2040a0">modifiedClass</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line124">124</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line125">125</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line129">129</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line130">130</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</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">&</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"><</font><font color="#2040a0">CIMInstance</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line138">138</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line139">139</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</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">&</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"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line148">148</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line149">149</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">className</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line153">153</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line154">154</a> <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&</font> <font color="#2040a0">newInstance</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line158">158</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line159">159</a> <strong>const</strong> <font color="#2040a0">CIMInstance</font><font color="4444FF">&</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">&</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">&</font> <font color="#2040a0">context</font>, <a name="1_line165">165</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line166">166</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font><font color="4444FF">)</font><font color="4444FF">;</font> <a name="1_line167">167</a> <a name="1_line168">168</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">execQuery</font><font color="4444FF">(</font> <a name="1_line169">169</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>, <a name="1_line170">170</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line171">171</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">queryLanguage</font>, <a name="1_line172">172</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">query</font><font color="4444FF">)</font><font color="4444FF">;</font> <a name="1_line173">173</a> <a name="1_line174">174</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">associators</font><font color="4444FF">(</font> <a name="1_line175">175</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>, <a name="1_line176">176</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line177">177</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>, <a name="1_line178">178</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">assocClass</font>, <a name="1_line179">179</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>, <a name="1_line180">180</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font>, <a name="1_line181">181</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</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">&</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"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line188">188</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line189">189</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>, <a name="1_line190">190</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">assocClass</font>, <a name="1_line191">191</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>, <a name="1_line192">192</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font>, <a name="1_line193">193</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">resultRole</font><font color="4444FF">)</font><font color="4444FF">;</font> <a name="1_line194">194</a> <a name="1_line195">195</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMObject</font><font color="4444FF">></font> <font color="#2040a0">references</font><font color="4444FF">(</font> <a name="1_line196">196</a> <strong>const</strong> <font color="#2040a0">OperationContext</font> <font color="4444FF">&</font> <font color="#2040a0">context</font>, <a name="1_line197">197</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line198">198</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>, <a name="1_line199">199</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>, <a name="1_line200">200</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</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">&</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"><</font><font color="#2040a0">CIMObjectPath</font><font color="4444FF">></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">&</font> <font color="#2040a0">context</font>, <a name="1_line207">207</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line208">208</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">objectName</font>, <a name="1_line209">209</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">resultClass</font>, <a name="1_line210">210</a> <strong>const</strong> <font color="#2040a0">String</font><font color="4444FF">&</font> <font color="#2040a0">role</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line215">215</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line216">216</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>, <a name="1_line217">217</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">propertyName</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line221">221</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line222">222</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>, <a name="1_line223">223</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">propertyName</font>, <a name="1_line224">224</a> <strong>const</strong> <font color="#2040a0">CIMValue</font><font color="4444FF">&</font> <font color="#2040a0">newValue</font><font color="4444FF">)</font><font color="4444FF">;</font> <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">&</font> <font color="#2040a0">context</font>, <a name="1_line228">228</a> <strong>const</strong> <font color="#2040a0">CIMNamespaceName</font><font color="4444FF">&</font> <font color="#2040a0">nameSpace</font>, <a name="1_line229">229</a> <strong>const</strong> <font color="#2040a0">CIMObjectPath</font><font color="4444FF">&</font> <font color="#2040a0">instanceName</font>, <a name="1_line230">230</a> <strong>const</strong> <font color="#2040a0">CIMName</font><font color="4444FF">&</font> <font color="#2040a0">methodName</font>, <a name="1_line231">231</a> <strong>const</strong> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">></font><font color="4444FF">&</font> <font color="#2040a0">inParameters</font>, <a name="1_line232">232</a> <font color="#2040a0">Array</font><font color="4444FF"><</font><font color="#2040a0">CIMParamValue</font><font color="4444FF">></font><font color="4444FF">&</font> <font color="#2040a0">outParameters</font><font color="4444FF">)</font><font color="4444FF">;</font> <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 "Software"), 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">// "AS IS", 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"><Pegasus/Common/Config.h></font></strong></font> <a name="2_line30"> 30</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/AsyncOpNode.h></font></strong></font> <a name="2_line31"> 31</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/DQueue.h></font></strong></font> <a name="2_line32"> 32</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/MessageQueueService.h></font></strong></font> <a name="2_line33"> 33</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Message.h></font></strong></font> <a name="2_line34"> 34</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/CIMMessage.h></font></strong></font> <a name="2_line35"> 35</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Tracer.h></font></strong></font> <a name="2_line36"> 36</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/TraceComponents.h></font></strong></font> <a name="2_line37"> 37</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/IPC.h></font></strong></font> <a name="2_line38"> 38</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Thread.h></font></strong></font> <a name="2_line39"> 39</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Common/Constants.h></font></strong></font> <a name="2_line40"> 40</a> <font color="0000ff"><strong>#include <font color="#008000"><Pegasus/Server/Linkage.h></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">&</font> <strong>operator</strong> <font color="4444FF">=</font> <font color="4444FF">(</font><strong>const</strong> <font color="#2040a0">BinaryMessageHandler</font> <font color="4444FF">&</font> <font color="4444FF">)</font> <strong>const</strong><font color="4444FF">;</font> <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"><</font><font color="#2040a0">AsyncOpNode</font><font color="4444FF">></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>
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |