(file) Return to Message.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2