1 kumpf 1.1 //%2003////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development
4 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
6 // IBM Corp.; EMC Corporation, The Open Group.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to
10 // deal in the Software without restriction, including without limitation the
11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 // sell copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 kumpf 1.1 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 //
24 //==============================================================================
25 //
26 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
27 //
28 // Modified By:
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMMessageDeserializer_h
33 #define Pegasus_CIMMessageDeserializer_h
34
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/CIMMessage.h>
37 #include <Pegasus/Common/XmlParser.h>
38
39 PEGASUS_NAMESPACE_BEGIN
40
41 /**
42 CIMMessageDeserializer provides a mechanism to convert a stream of bytes
43 kumpf 1.1 generated by the CIMMessageSerializer class into a CIMMessage object.
44 For additional information, please see the CIMMessageSerializer
45 description.
46 */
47 class PEGASUS_COMMON_LINKAGE CIMMessageDeserializer
48 {
49 public:
50
51 static CIMMessage* deserialize(Sint8* buffer);
52
53 private:
54
55 static CIMRequestMessage* _deserializeCIMRequestMessage(
56 XmlParser& parser,
57 Uint32 type);
58
59 static CIMResponseMessage* _deserializeCIMResponseMessage(
60 XmlParser& parser,
61 Uint32 type);
62
63 //
64 kumpf 1.1 // Utility Methods
65 //
66
67 static void _deserializeUserInfo(
68 XmlParser& parser,
69 String& authType,
70 String& userName);
71
72 static void _deserializeQueueIdStack(
73 XmlParser& parser,
74 QueueIdStack& queueIdStack);
75
76 static void _deserializeOperationContext(
77 XmlParser& parser,
78 OperationContext& operationContext);
79
80 static void _deserializeContentLanguages(
81 XmlParser& parser,
82 ContentLanguages& contentLanguages);
83
84 static void _deserializeAcceptLanguages(
85 kumpf 1.1 XmlParser& parser,
86 AcceptLanguages& acceptLanguages);
87
88 static void _deserializeCIMException(
89 XmlParser& parser,
90 CIMException& cimException);
91
92 static void _deserializeCIMPropertyList(
93 XmlParser& parser,
94 CIMPropertyList& propertyList);
95
96 static Boolean _deserializeCIMObjectPath(
97 XmlParser& parser,
98 CIMObjectPath& cimObjectPath);
99
100 static Boolean _deserializeCIMInstance(
101 XmlParser& parser,
102 CIMInstance& cimInstance);
103
104 static void _deserializeCIMNamespaceName(
105 XmlParser& parser,
106 kumpf 1.1 CIMNamespaceName& cimNamespaceName);
107
108 static Boolean _deserializeCIMName(
109 XmlParser& parser,
110 CIMName& cimName);
111
112 //
113 //
114 // CIM Request Messages
115 //
116 //
117
118 //
119 // CIMOperationRequestMessages
120 //
121
122 static CIMGetInstanceRequestMessage*
123 _deserializeCIMGetInstanceRequestMessage(XmlParser& parser);
124
125 static CIMDeleteInstanceRequestMessage*
126 _deserializeCIMDeleteInstanceRequestMessage(XmlParser& parser);
127 kumpf 1.1
128 static CIMCreateInstanceRequestMessage*
129 _deserializeCIMCreateInstanceRequestMessage(XmlParser& parser);
130
131 static CIMModifyInstanceRequestMessage*
132 _deserializeCIMModifyInstanceRequestMessage(XmlParser& parser);
133
134 static CIMEnumerateInstancesRequestMessage*
135 _deserializeCIMEnumerateInstancesRequestMessage(XmlParser& parser);
136
137 static CIMEnumerateInstanceNamesRequestMessage*
138 _deserializeCIMEnumerateInstanceNamesRequestMessage(XmlParser& parser);
139
140 static CIMExecQueryRequestMessage*
141 _deserializeCIMExecQueryRequestMessage(XmlParser& parser);
142
143 static CIMAssociatorsRequestMessage*
144 _deserializeCIMAssociatorsRequestMessage(XmlParser& parser);
145
146 static CIMAssociatorNamesRequestMessage*
147 _deserializeCIMAssociatorNamesRequestMessage(XmlParser& parser);
148 kumpf 1.1
149 static CIMReferencesRequestMessage*
150 _deserializeCIMReferencesRequestMessage(XmlParser& parser);
151
152 static CIMReferenceNamesRequestMessage*
153 _deserializeCIMReferenceNamesRequestMessage(XmlParser& parser);
154
155 static CIMGetPropertyRequestMessage*
156 _deserializeCIMGetPropertyRequestMessage(XmlParser& parser);
157
158 static CIMSetPropertyRequestMessage*
159 _deserializeCIMSetPropertyRequestMessage(XmlParser& parser);
160
161 static CIMInvokeMethodRequestMessage*
162 _deserializeCIMInvokeMethodRequestMessage(XmlParser& parser);
163
|