1 karl 1.57 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.4 //
|
3 karl 1.36 // 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 karl 1.26 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.36 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.39 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.57 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.4 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
15 kumpf 1.21 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
18 mike 1.4 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
20 //
|
21 kumpf 1.21 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
22 mike 1.4 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
24 kumpf 1.21 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
27 mike 1.4 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
34 #include "Message.h"
|
35 kumpf 1.64 #include <Pegasus/Common/StatisticalData.h>
|
36 kumpf 1.66 #include <Pegasus/Common/PegasusAssert.h>
|
37 mike 1.4
38 PEGASUS_USING_STD;
39
40 PEGASUS_NAMESPACE_BEGIN
41
|
42 kumpf 1.65 Uint32 MessageMask::type_legacy = 0x00000000;
43 Uint32 MessageMask::type_cimom = 0x00000001;
44 Uint32 MessageMask::type_service = 0x00000002;
45
46 Uint32 MessageMask::ha_request = 0x00100000;
47 Uint32 MessageMask::ha_reply = 0x00200000;
48 Uint32 MessageMask::ha_async = 0x00400000;
|
49 mike 1.6
|
50 mike 1.4 Message::~Message()
51 {
52 }
53
|
54 joyce.j 1.49 #ifdef PEGASUS_DEBUG
|
55 mike 1.20 void Message::print(ostream& os, Boolean printHeader) const
|
56 mike 1.4 {
|
57 mike 1.20 if (printHeader)
58 {
59 os << "Message\n";
60 os << "{";
61 }
62
63 os << " messageType: " << MessageTypeToString(_type) << endl;
64
65 if (printHeader)
66 {
67 os << "}";
68 }
|
69 mike 1.5 }
|
70 joyce.j 1.49 #endif
|
71 mike 1.4
|
72 mike 1.5 static const char* _MESSAGE_TYPE_STRINGS[] =
73 {
74 "CIM_GET_CLASS_REQUEST_MESSAGE",
75 "CIM_GET_INSTANCE_REQUEST_MESSAGE",
|
76 mike 1.6 "CIM_EXPORT_INDICATION_REQUEST_MESSAGE",
|
77 mike 1.5 "CIM_DELETE_CLASS_REQUEST_MESSAGE",
78 "CIM_DELETE_INSTANCE_REQUEST_MESSAGE",
79 "CIM_CREATE_CLASS_REQUEST_MESSAGE",
80 "CIM_CREATE_INSTANCE_REQUEST_MESSAGE",
81 "CIM_MODIFY_CLASS_REQUEST_MESSAGE",
82 "CIM_MODIFY_INSTANCE_REQUEST_MESSAGE",
|
83 kumpf 1.23 "CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE", // 10
|
84 mike 1.5 "CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE",
85 "CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE",
86 "CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE",
87 "CIM_EXEC_QUERY_REQUEST_MESSAGE",
88 "CIM_ASSOCIATORS_REQUEST_MESSAGE",
89 "CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE",
90 "CIM_REFERENCES_REQUEST_MESSAGE",
91 "CIM_REFERENCE_NAMES_REQUEST_MESSAGE",
92 "CIM_GET_PROPERTY_REQUEST_MESSAGE",
|
93 kumpf 1.23 "CIM_SET_PROPERTY_REQUEST_MESSAGE", // 20
|
94 mike 1.5 "CIM_GET_QUALIFIER_REQUEST_MESSAGE",
95 "CIM_SET_QUALIFIER_REQUEST_MESSAGE",
96 "CIM_DELETE_QUALIFIER_REQUEST_MESSAGE",
97 "CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE",
98 "CIM_INVOKE_METHOD_REQUEST_MESSAGE",
|
99 kumpf 1.10 "CIM_PROCESS_INDICATION_REQUEST_MESSAGE",
|
100 kumpf 1.58 "CIM_HANDLE_INDICATION_REQUEST_MESSAGE",
|
101 kumpf 1.60 "CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE",
|
102 kumpf 1.10 "CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE",
|
103 kumpf 1.60 "CIM_CREATE_SUBSCRIPTION_REQUEST_MESSAGE", // 30
|
104 kumpf 1.14 "CIM_MODIFY_SUBSCRIPTION_REQUEST_MESSAGE",
105 "CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE",
|
106 kumpf 1.23 "CIM_DISABLE_MODULE_REQUEST_MESSAGE",
107 "CIM_ENABLE_MODULE_REQUEST_MESSAGE",
|
108 carolann.graves 1.41 "CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE",
|
109 mike 1.5 "CIM_GET_CLASS_RESPONSE_MESSAGE",
|
110 kumpf 1.58 "CIM_GET_INSTANCE_RESPONSE_MESSAGE",
|
111 kumpf 1.60 "CIM_EXPORT_INDICATION_RESPONSE_MESSAGE",
|
112 mike 1.5 "CIM_DELETE_CLASS_RESPONSE_MESSAGE",
|
113 kumpf 1.60 "CIM_DELETE_INSTANCE_RESPONSE_MESSAGE", // 40
|
114 mike 1.5 "CIM_CREATE_CLASS_RESPONSE_MESSAGE",
115 "CIM_CREATE_INSTANCE_RESPONSE_MESSAGE",
116 "CIM_MODIFY_CLASS_RESPONSE_MESSAGE",
117 "CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE",
|
118 carolann.graves 1.41 "CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE",
|
119 mike 1.5 "CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE",
|
120 kumpf 1.58 "CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE",
|
121 kumpf 1.60 "CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE",
|
122 mike 1.5 "CIM_EXEC_QUERY_RESPONSE_MESSAGE",
|
123 kumpf 1.60 "CIM_ASSOCIATORS_RESPONSE_MESSAGE", // 50
|
124 mike 1.5 "CIM_ASSOCIATOR_NAMES_RESPONSE_MESSAGE",
125 "CIM_REFERENCES_RESPONSE_MESSAGE",
126 "CIM_REFERENCE_NAMES_RESPONSE_MESSAGE",
127 "CIM_GET_PROPERTY_RESPONSE_MESSAGE",
|
128 carolann.graves 1.41 "CIM_SET_PROPERTY_RESPONSE_MESSAGE",
|
129 mike 1.5 "CIM_GET_QUALIFIER_RESPONSE_MESSAGE",
|
130 kumpf 1.58 "CIM_SET_QUALIFIER_RESPONSE_MESSAGE",
|
131 kumpf 1.60 "CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE",
|
132 mike 1.5 "CIM_ENUMERATE_QUALIFIERS_RESPONSE_MESSAGE",
|
133 kumpf 1.60 "CIM_INVOKE_METHOD_RESPONSE_MESSAGE", // 60
|
134 kumpf 1.10 "CIM_PROCESS_INDICATION_RESPONSE_MESSAGE",
|
135 carolann.graves 1.41 "CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE",
|
136 kumpf 1.10 "CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE",
|
137 kumpf 1.58 "CIM_HANDLE_INDICATION_RESPONSE_MESSAGE",
|
138 kumpf 1.14 "CIM_CREATE_SUBSCRIPTION_RESPONSE_MESSAGE",
|
139 kumpf 1.60 "CIM_MODIFY_SUBSCRIPTION_RESPONSE_MESSAGE",
|
140 kumpf 1.14 "CIM_DELETE_SUBSCRIPTION_RESPONSE_MESSAGE",
|
141 kumpf 1.23 "CIM_DISABLE_MODULE_RESPONSE_MESSAGE",
142 "CIM_ENABLE_MODULE_RESPONSE_MESSAGE",
|
143 kumpf 1.60 "CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE", // 70
|
144 mike 1.6 "SOCKET_MESSAGE",
145 "CLOSE_CONNECTION_MESSAGE",
146 "HTTP_MESSAGE",
|
147 kumpf 1.58 "HTTP_ERROR_MESSAGE",
|
148 mday 1.19 "CLIENT_EXCEPTION_MESSAGE",
149
|
150 kumpf 1.60 "ASYNC::REGISTER_CIM_SERVICE", // async_message::0x00000001;
|
151 mday 1.19 "ASYNC::DEREGISTER_CIM_SERVICE", // async_message::0x00000002;
152 "ASYNC::UPDATE_CIM_SERVICE", // async_message::0x00000003;
153 "ASYNC::IOCTL", // async_message::0x00000004;
|
154 kumpf 1.60 "ASYNC::CIMSERVICE_START", // 80 async_message::0x00000005;
|
155 mday 1.19 "ASYNC::CIMSERVICE_STOP", // async_message::0x00000006;
156 "ASYNC::CIMSERVICE_PAUSE", // async_message::0x00000007;
157 "ASYNC::CIMSERVICE_RESUME", // async_message::0x00000008;
158
|
159 kumpf 1.58 "ASYNC::ASYNC_OP_START", // async_message::0x00000009;
|
160 mday 1.19 "ASYNC::ASYNC_OP_RESULT", // async_message::0x0000000a;
|
161 kumpf 1.60 "ASYNC::ASYNC_LEGACY_OP_START", // async_message::0x0000000b;
|
162 mday 1.19 "ASYNC::ASYNC_LEGACY_OP_RESULT", // async_message::0x0000000c;
163
164 "ASYNC::FIND_SERVICE_Q", // async_message::0x0000000d;
165 "ASYNC::FIND_SERVICE_Q_RESULT", // async_message::0x0000000e;
|
166 kumpf 1.60 "ASYNC::ENUMERATE_SERVICE", // 90 async_message::0x0000000f;
|
167 mday 1.19 "ASYNC::ENUMERATE_SERVICE_RESULT", // async_message::0x00000010;
168
169 "ASYNC::REGISTERED_MODULE", // async_message::0x00000011;
170 "ASYNC::DEREGISTERED_MODULE", // async_message::0x00000012;
|
171 kumpf 1.58 "ASYNC::FIND_MODULE_IN_SERVICE", // async_message::0x00000013;
|
172 mday 1.19 "ASYNC::FIND_MODULE_IN_SERVICE_RESPONSE", // async_message::0x00000014;
173
|
174 kumpf 1.60 "ASYNC::ASYNC_MODULE_OP_START", // async_message::0x00000015;
|
175 kumpf 1.23 "ASYNC::ASYNC_MODULE_OP_RESULT", // async_message::0x00000016;
|
176 mday 1.19
|
177 kumpf 1.27 "CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE",
|
178 kumpf 1.28 "CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE",
179
|
180 kumpf 1.60 "CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE", // 100
|
181 carolann.graves 1.59 "CIM_NOTIFY_PROVIDER_FAIL_RESPONSE_MESSAGE",
182
|
183 kumpf 1.31 "CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE",
184 "CIM_INITIALIZE_PROVIDER_RESPONSE_MESSAGE",
185
186 "CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE",
|
187 kumpf 1.32 "CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE",
188
189 "CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE",
|
190 carolann.graves 1.41 "CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE",
191
192 "CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE",
193 "CIM_SUBSCRIPTION_INIT_COMPLETE_RESPONSE_MESSAGE"
|
194 mike 1.5 };
195
|
196 jim.wunderlich 1.50 char s[128];
197
|
198 mike 1.5 const char* MessageTypeToString(Uint32 messageType)
199 {
|
200 mday 1.19 if (messageType > DUMMY_MESSAGE && messageType < NUMBER_OF_MESSAGES )
|
201 mike 1.5 return _MESSAGE_TYPE_STRINGS[messageType - 1];
|
202 mday 1.19 if(messageType == 0 )
203 return "HEARTBEAT/REPLY" ;
|
204 jim.wunderlich 1.50 sprintf (s, "Unknown message type ( %d ) ( 0x%04X )", messageType, messageType);
205 return s;
|
206 sage 1.17 }
207
|
208 w.white 1.40
|
209 w.white 1.44 CIMOperationType Message::convertMessageTypetoCIMOpType(Uint32 type)
|
210 w.white 1.46 {
211
|
212 kumpf 1.56 CIMOperationType enum_type = CIMOPTYPE_GET_CLASS;
|
213 w.white 1.46 switch (type)
214 {
|
215 w.white 1.47 case CIM_GET_CLASS_REQUEST_MESSAGE:
216 case CIM_GET_CLASS_RESPONSE_MESSAGE:
217 enum_type = CIMOPTYPE_GET_CLASS;
218 break;
|
219 w.white 1.46
220 case CIM_GET_INSTANCE_REQUEST_MESSAGE:
|
221 w.white 1.47 case CIM_GET_INSTANCE_RESPONSE_MESSAGE:
|
222 w.white 1.46 enum_type = CIMOPTYPE_GET_INSTANCE;
223 break;
|
224 w.white 1.47
|
225 w.white 1.46 case CIM_DELETE_CLASS_REQUEST_MESSAGE:
|
226 w.white 1.47 case CIM_DELETE_CLASS_RESPONSE_MESSAGE:
|
227 w.white 1.46 enum_type = CIMOPTYPE_DELETE_CLASS;
228 break;
|
229 w.white 1.47
|
230 w.white 1.46 case CIM_DELETE_INSTANCE_REQUEST_MESSAGE:
231 case CIM_DELETE_INSTANCE_RESPONSE_MESSAGE:
232 enum_type = CIMOPTYPE_DELETE_INSTANCE;
233 break;
234
235 case CIM_CREATE_CLASS_REQUEST_MESSAGE:
|
236 w.white 1.47 case CIM_CREATE_CLASS_RESPONSE_MESSAGE:
|
237 w.white 1.46 enum_type = CIMOPTYPE_CREATE_CLASS;
238 break;
239
240 case CIM_CREATE_INSTANCE_REQUEST_MESSAGE:
|
241 w.white 1.47 case CIM_CREATE_INSTANCE_RESPONSE_MESSAGE:
|
242 w.white 1.46 enum_type = CIMOPTYPE_CREATE_INSTANCE;
243 break;
|
244 w.white 1.47
|
245 w.white 1.46 case CIM_MODIFY_CLASS_REQUEST_MESSAGE:
|
246 w.white 1.47 case CIM_MODIFY_CLASS_RESPONSE_MESSAGE:
|
247 w.white 1.46 enum_type = CIMOPTYPE_MODIFY_CLASS;
248 break;
|
249 w.white 1.47
|
250 w.white 1.46 case CIM_MODIFY_INSTANCE_REQUEST_MESSAGE:
|
251 w.white 1.47 case CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE:
|
252 w.white 1.46 enum_type = CIMOPTYPE_MODIFY_INSTANCE;
253 break;
|
254 w.white 1.47
|
255 w.white 1.46 case CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE:
|
256 w.white 1.47 case CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE:
|
257 w.white 1.46 enum_type = CIMOPTYPE_ENUMERATE_CLASSES;
258 break;
259
260 case CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE:
|
261 w.white 1.47 case CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE:
|
262 w.white 1.46 enum_type = CIMOPTYPE_ENUMERATE_CLASS_NAMES;
263 break;
264
265 case CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE:
|
266 w.white 1.47 case CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE:
|
267 w.white 1.46 enum_type = CIMOPTYPE_ENUMERATE_INSTANCES;
268 break;
269
270 case CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE:
|
271 w.white 1.47 case CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE:
|
272 w.white 1.46 enum_type = CIMOPTYPE_ENUMERATE_INSTANCE_NAMES;
273 break;
274
275 case CIM_EXEC_QUERY_REQUEST_MESSAGE:
|
276 w.white 1.47 case CIM_EXEC_QUERY_RESPONSE_MESSAGE:
|
277 w.white 1.46 enum_type = CIMOPTYPE_EXEC_QUERY;
278 break;
279
280 case CIM_ASSOCIATORS_REQUEST_MESSAGE:
|
281 w.white 1.47 case CIM_ASSOCIATORS_RESPONSE_MESSAGE:
|
282 w.white 1.46 enum_type = CIMOPTYPE_ASSOCIATORS;
283 break;
284
285 case CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE:
|
286 w.white 1.47 case CIM_ASSOCIATOR_NAMES_RESPONSE_MESSAGE:
|
287 w.white 1.46 enum_type = CIMOPTYPE_ASSOCIATORS;
288 break;
289
290 case CIM_REFERENCES_REQUEST_MESSAGE:
|
291 w.white 1.47 case CIM_REFERENCES_RESPONSE_MESSAGE:
|
292 w.white 1.46 enum_type = CIMOPTYPE_REFERENCES;
293 break;
294
295 case CIM_REFERENCE_NAMES_REQUEST_MESSAGE:
|
296 w.white 1.47 case CIM_REFERENCE_NAMES_RESPONSE_MESSAGE:
|
297 w.white 1.46 enum_type = CIMOPTYPE_REFERENCE_NAMES;
298 break;
299
300 case CIM_GET_PROPERTY_REQUEST_MESSAGE:
|
301 w.white 1.47 case CIM_GET_PROPERTY_RESPONSE_MESSAGE:
|
302 w.white 1.46 enum_type = CIMOPTYPE_GET_PROPERTY;
303 break;
304
305 case CIM_SET_PROPERTY_REQUEST_MESSAGE:
|
306 w.white 1.47 case CIM_SET_PROPERTY_RESPONSE_MESSAGE:
|
307 w.white 1.46 enum_type = CIMOPTYPE_SET_PROPERTY;
308 break;
309
310 case CIM_GET_QUALIFIER_REQUEST_MESSAGE:
|
311 w.white 1.47 case CIM_GET_QUALIFIER_RESPONSE_MESSAGE:
|
312 w.white 1.46 enum_type = CIMOPTYPE_GET_QUALIFIER;
313 break;
314
315 case CIM_SET_QUALIFIER_REQUEST_MESSAGE:
|
316 w.white 1.47 case CIM_SET_QUALIFIER_RESPONSE_MESSAGE:
|
317 w.white 1.46 enum_type = CIMOPTYPE_SET_QUALIFIER;
318 break;
319
320 case CIM_DELETE_QUALIFIER_REQUEST_MESSAGE:
|
321 w.white 1.47 case CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE:
|
322 w.white 1.46 enum_type = CIMOPTYPE_DELETE_QUALIFIER;
323 break;
324
325 case CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE:
|
326 w.white 1.47 case CIM_ENUMERATE_QUALIFIERS_RESPONSE_MESSAGE:
|
327 w.white 1.46 enum_type = CIMOPTYPE_ENUMERATE_QUALIFIERS;
328 break;
329
330 case CIM_INVOKE_METHOD_REQUEST_MESSAGE:
|
331 w.white 1.47 case CIM_INVOKE_METHOD_RESPONSE_MESSAGE:
|
332 w.white 1.46 enum_type = CIMOPTYPE_INVOKE_METHOD;
333 break;
334 default:
335 // exicution should never get to this point
336 PEGASUS_ASSERT(false);
337
338 }
339 return enum_type;
340 }
|
341 w.white 1.40
342
|
343 karl 1.38 #ifndef PEGASUS_DISABLE_PERFINST
|
344 sage 1.17 void Message::endServer()
345 {
|
346 kumpf 1.66 PEGASUS_ASSERT(_serverStartTimeMicroseconds != 0);
|
347 jim.wunderlich 1.54
|
348 kumpf 1.66 _totalServerTimeMicroseconds =
349 TimeValue::getCurrentTime().toMicroseconds() -
350 _serverStartTimeMicroseconds;
|
351 sage 1.17
|
352 kumpf 1.66 Uint64 serverTimeMicroseconds =
353 _totalServerTimeMicroseconds - _providerTimeMicroseconds;
|
354 w.white 1.35
|
355 kumpf 1.66 Uint16 statType = (Uint16)((_type >= CIM_GET_CLASS_RESPONSE_MESSAGE) ?
356 _type - CIM_GET_CLASS_RESPONSE_MESSAGE : _type - 1);
|
357 jim.wunderlich 1.54
|
358 kumpf 1.66 StatisticalData::current()->addToValue(serverTimeMicroseconds, statType,
359 StatisticalData::PEGASUS_STATDATA_SERVER);
|
360 jim.wunderlich 1.54
|
361 kumpf 1.66 StatisticalData::current()->addToValue(_providerTimeMicroseconds, statType,
362 StatisticalData::PEGASUS_STATDATA_PROVIDER);
|
363 jim.wunderlich 1.54
364 /*This adds the number of bytes read to the total.the request size
365 value must be stored (requSize) and passed to the StatisticalData
366 object at the end of processing other wise it will be the ONLY vlaue
367 that is passed to the client which reports the current state of the
368 object, not the pevious (one command ago) state */
|
369 w.white 1.48
|
370 jim.wunderlich 1.54 StatisticalData::current()->addToValue(StatisticalData::current()->requSize,
371 statType, StatisticalData::PEGASUS_STATDATA_BYTES_READ);
372 }
|
373 sage 1.18 #endif
|
374 mike 1.4
|
375 karl 1.37 ////////////////////////////////////////////////////////////////////////////////
376 //
377 // QueueIdStack
378 //
379 ////////////////////////////////////////////////////////////////////////////////
380
381 QueueIdStack::QueueIdStack(const QueueIdStack& x) : _size(x._size)
382 {
383 memcpy(_items, x._items, sizeof(_items));
384 }
385
386 QueueIdStack::QueueIdStack(Uint32 x) : _size(0)
387 {
388 push(x);
389 }
390
391 QueueIdStack::QueueIdStack(Uint32 x1, Uint32 x2) : _size(0)
392 {
393 push(x1);
394 push(x2);
395 }
396 karl 1.37
397 QueueIdStack& QueueIdStack::operator=(const QueueIdStack& x)
398 {
399 if (this != &x)
400 {
401 memcpy(_items, x._items, sizeof(_items));
402 _size = x._size;
403 }
404 return *this;
405 }
406
407 QueueIdStack QueueIdStack::copyAndPop() const
408 {
409 return QueueIdStack(*this, 0);
410 }
411
412 QueueIdStack::QueueIdStack(const QueueIdStack& x, int) : _size(x._size)
413 {
414 memcpy(_items, x._items, sizeof(_items));
415 pop();
416 }
417 karl 1.37
|
418 mike 1.4 PEGASUS_NAMESPACE_END
|