version 1.1, 2003/02/28 21:34:05
|
version 1.1.2.2, 2003/03/07 17:56:48
|
|
|
|
<!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> |