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

  1 karl  1.2 //%2005////////////////////////////////////////////////////////////////////////
  2 w.white 1.1 //
  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             // 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.2 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10             // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 w.white 1.1 //
 12             // Permission is hereby granted, free of charge, to any person obtaining a copy
 13             // of this software and associated documentation files (the "Software"), to
 14             // deal in the Software without restriction, including without limitation the
 15             // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 16             // sell copies of the Software, and to permit persons to whom the Software is
 17             // furnished to do so, subject to the following conditions:
 18             // 
 19             // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 20             // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 21             // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 22             // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 23             // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 24             // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 25             // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 26             // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27             //
 28             //==============================================================================
 29             //
 30 w.white 1.3 // Author: Willis White (whiwill@us.ibm.com)
 31 w.white 1.1 //
 32 aruran.ms 1.9 // Modified By: Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3674
 33 w.white   1.1 //
 34 w.white   1.3 //%/////////////////////////////////////////////////////////////b////////////////
 35 w.white   1.1 
 36               
 37               #include "ClientPerfDataStore.h"
 38 david.dillard 1.8 #include <Pegasus/Common/XmlWriter.h>
 39 w.white       1.1 
 40                   PEGASUS_USING_STD;
 41                   
 42 w.white       1.3 PEGASUS_USING_STD;
 43 w.white       1.1 PEGASUS_NAMESPACE_BEGIN
 44                   
 45                   ClientPerfDataStore* ClientPerfDataStore::current_Store = NULL;
 46                   
 47 w.white       1.3 ClientPerfDataStore* ClientPerfDataStore::Instance(){
 48                      static ClientPerfDataStore current_Store; 
 49                      return &current_Store;
 50 w.white       1.1 }
 51                   
 52                   ClientPerfDataStore::ClientPerfDataStore()
 53 w.white       1.3 {
 54 w.white       1.1 }
 55                   
 56                   void ClientPerfDataStore::reset()
 57                   {
 58 w.white       1.3     _operationType = CIMOPTYPE_INVOKE_METHOD;
 59                       _serverTimeKnown = false;
 60                       _errorCondition = false;
 61                       _serverTime = 0;                
 62 w.white       1.7     _networkStartTime = TimeValue(); 
 63                       _networkEndTime = TimeValue(); 
 64 w.white       1.3     _requestSize = 0; 
 65                       _responseSize = 0;
 66                       _messID = "";
 67 w.white       1.1 
 68                   }
 69                        
 70                   
 71 w.white       1.4 ClientOpPerformanceData ClientPerfDataStore::createPerfDataStruct()
 72 w.white       1.1 {
 73 w.white       1.3     ClientOpPerformanceData _ClientOpPerfData_obj;
 74 w.white       1.7     _ClientOpPerfData_obj.roundTripTime = _networkEndTime.toMilliseconds()-_networkStartTime.toMilliseconds();
 75 w.white       1.3     _ClientOpPerfData_obj.operationType = _operationType;
 76                       _ClientOpPerfData_obj.requestSize = _requestSize;
 77                       _ClientOpPerfData_obj.responseSize = _responseSize;
 78                       _ClientOpPerfData_obj.serverTimeKnown = _serverTimeKnown;
 79                       if (_serverTimeKnown) {
 80                           _ClientOpPerfData_obj.serverTime = _serverTime;
 81                       }
 82                       return _ClientOpPerfData_obj;
 83                   }  
 84 w.white       1.1 
 85                   
 86                           
 87 w.white       1.7 void ClientPerfDataStore::setServerTime(Uint32 time)
 88 w.white       1.3 {   _serverTime = time;
 89                       _serverTimeKnown = true;
 90 w.white       1.1 }
 91                   
 92                           
 93 w.white       1.3 void ClientPerfDataStore::setResponseSize(Uint64 size)
 94                   { _responseSize = size; }
 95 w.white       1.1        
 96                   
 97 w.white       1.3 void ClientPerfDataStore::setRequestSize(Uint64 size)
 98                   {  _requestSize = size; }
 99 w.white       1.1 
100                           
101                   void ClientPerfDataStore::setStartNetworkTime(void)
102 w.white       1.7 { _networkStartTime = TimeValue::getCurrentTime();  }
103 w.white       1.3 
104 w.white       1.1 
105 w.white       1.7 void ClientPerfDataStore::setEndNetworkTime(TimeValue time)
106 w.white       1.3 { _networkEndTime = time; }
107 w.white       1.1 
108                           
109 w.white       1.3 void ClientPerfDataStore::setServerTimeKnown(Boolean bol)
110                   {   _serverTimeKnown = bol; }
111                   
112 w.white       1.1 
113                   void ClientPerfDataStore::setMessageID(String messageID)
114 w.white       1.3 { _messID = messageID; }
115                          
116 w.white       1.1 
117 w.white       1.3 void ClientPerfDataStore::setOperationType(Uint32 type)
118                   {   
119                     _operationType = Message::convertMessageTypetoCIMOpType(type);                             
120                   }
121 w.white       1.1 
122                   
123 aruran.ms     1.9 Boolean ClientPerfDataStore::checkMessageIDandType(const String& messageID, Uint32 type)
124 w.white       1.3 { if(_messID != messageID)
125                     {
126                       _errorCondition = true;
127                       return false; 
128                     }
129                     
130                     if (_operationType != Message::convertMessageTypetoCIMOpType(type)) 
131                     {
132                       _errorCondition = true;
133                       return false; 
134                     }
135 w.white       1.1 
136 w.white       1.3   return true;
137                   }
138                    
139 w.white       1.6 String ClientPerfDataStore::toString() const
140 w.white       1.3 {
141                       Array<char> out;
142                       /*XMLWriter::append(out, String(" serverTime = ");
143                       XMLWriter::append(out, _serverTime);
144                        << "\r\n";  */
145                       out << " operation type  = " << (Uint32)_operationType << "\r\n";
146 w.white       1.7     out << " network start time is = " << _networkStartTime.toMilliseconds() << "\r\n";
147                       out << " network end time = " << _networkEndTime.toMilliseconds() << "\r\n";
148 w.white       1.3     out << " numberofRequestBytes = " << (Uint32)_requestSize << "\r\n";
149                       out << " number foRespoonse Bytes = " << (Uint32)_responseSize << "\r\n";
150                       out << "the message ID is " << _messID << "\r\n";
151                       if (_errorCondition) {
152                           out << "the error condition is true " << "\r\n";
153                       }
154                       else{
155                           out << " he error condition is false" << "\r\n";
156                       }
157                       if (_classRegistered) {
158                           out << "there is a class registered" << "\r\n";
159 w.white       1.1     }
160 w.white       1.3     else{
161                           out << "no class is registered" << "\r\n";
162 w.white       1.1     }
163 w.white       1.3     if (_serverTimeKnown) {
164                           out << "_serverTimeKnown is true" << "\r\n";
165 w.white       1.1     }
166                       else{
167 w.white       1.3         out << "_serverTimeKnown is false" << "\r\n";
168 w.white       1.1     }
169 w.white       1.3 
170                       //return a Pegasus String constructed form the array "out"
171                       return (String(out.getData(), out.size()));
172                   }
173 w.white       1.1     
174 w.white       1.3  
175 w.white       1.1 
176 w.white       1.6 Boolean ClientPerfDataStore::getStatError() const
177 w.white       1.3 {
178                       return _errorCondition;
179 w.white       1.1 }
180                   
181 w.white       1.3 void ClientPerfDataStore::setClassRegistered(Boolean bol)
182                   {
183                       _classRegistered = bol;
184 w.white       1.1 }
185 w.white       1.3 
186 w.white       1.6 Boolean ClientPerfDataStore::isClassRegistered() const
187 w.white       1.1 {
188 w.white       1.3     return _classRegistered;
189 w.white       1.1 }
190                   
191                   PEGASUS_NAMESPACE_END
192                   
193                   
194                   

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2