(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             // Modified By: 
 33             //
 34 w.white 1.3 //%/////////////////////////////////////////////////////////////b////////////////
 35 w.white 1.1 
 36             
 37             #include "ClientPerfDataStore.h"
 38             #include <Pegasus/Common/CIMOperationType.h>
 39             
 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 w.white 1.3 Boolean ClientPerfDataStore::checkMessageIDandType(String messageID, Uint32 type)
124             { 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