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

  1 karl  1.13 //%2006////////////////////////////////////////////////////////////////////////
  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 karl    1.13 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12              // EMC Corporation; Symantec Corporation; The Open Group.
 13 w.white 1.1  //
 14              // Permission is hereby granted, free of charge, to any person obtaining a copy
 15              // 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              // 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              // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22              // 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              // 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              // 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 w.white 1.3  // Author: Willis White (whiwill@us.ibm.com)
 33 w.white 1.1  //
 34 aruran.ms 1.9  // Modified By: Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3674
 35 aruran.ms 1.11 //              Muni S Reddy, IBM(mreddy@in.ibm.com) for Bug# 4227
 36 w.white   1.1  //
 37 w.white   1.3  //%/////////////////////////////////////////////////////////////b////////////////
 38 w.white   1.1  
 39                
 40                #include "ClientPerfDataStore.h"
 41 david.dillard 1.8  #include <Pegasus/Common/XmlWriter.h>
 42 w.white       1.1  
 43                    PEGASUS_USING_STD;
 44                    PEGASUS_NAMESPACE_BEGIN
 45                    
 46                    
 47 a.dunfey      1.12 ClientPerfDataStore::ClientPerfDataStore(){
 48                       _classRegistered = false;
 49                    } 
 50 w.white       1.1  
 51                    
 52                    void ClientPerfDataStore::reset()
 53                    {
 54 w.white       1.3      _operationType = CIMOPTYPE_INVOKE_METHOD;
 55                        _serverTimeKnown = false;
 56                        _errorCondition = false;
 57                        _serverTime = 0;                
 58 w.white       1.7      _networkStartTime = TimeValue(); 
 59                        _networkEndTime = TimeValue(); 
 60 w.white       1.3      _requestSize = 0; 
 61                        _responseSize = 0;
 62                        _messID = "";
 63 w.white       1.1  
 64                    }
 65                         
 66                    
 67 w.white       1.4  ClientOpPerformanceData ClientPerfDataStore::createPerfDataStruct()
 68 w.white       1.1  {
 69 w.white       1.3      ClientOpPerformanceData _ClientOpPerfData_obj;
 70 dave.sudlik   1.14     _ClientOpPerfData_obj.roundTripTime = _networkEndTime.toMicroseconds()-_networkStartTime.toMicroseconds();
 71 w.white       1.3      _ClientOpPerfData_obj.operationType = _operationType;
 72                        _ClientOpPerfData_obj.requestSize = _requestSize;
 73                        _ClientOpPerfData_obj.responseSize = _responseSize;
 74                        _ClientOpPerfData_obj.serverTimeKnown = _serverTimeKnown;
 75                        if (_serverTimeKnown) {
 76                            _ClientOpPerfData_obj.serverTime = _serverTime;
 77                        }
 78                        return _ClientOpPerfData_obj;
 79                    }  
 80 w.white       1.1  
 81                    
 82                            
 83 w.white       1.7  void ClientPerfDataStore::setServerTime(Uint32 time)
 84 w.white       1.3  {   _serverTime = time;
 85                        _serverTimeKnown = true;
 86 w.white       1.1  }
 87                    
 88                            
 89 w.white       1.3  void ClientPerfDataStore::setResponseSize(Uint64 size)
 90                    { _responseSize = size; }
 91 w.white       1.1         
 92                    
 93 w.white       1.3  void ClientPerfDataStore::setRequestSize(Uint64 size)
 94                    {  _requestSize = size; }
 95 w.white       1.1  
 96                            
 97                    void ClientPerfDataStore::setStartNetworkTime(void)
 98 w.white       1.7  { _networkStartTime = TimeValue::getCurrentTime();  }
 99 w.white       1.3  
100 w.white       1.1  
101 w.white       1.7  void ClientPerfDataStore::setEndNetworkTime(TimeValue time)
102 w.white       1.3  { _networkEndTime = time; }
103 w.white       1.1  
104                            
105 w.white       1.3  void ClientPerfDataStore::setServerTimeKnown(Boolean bol)
106                    {   _serverTimeKnown = bol; }
107                    
108 w.white       1.1  
109                    void ClientPerfDataStore::setMessageID(String messageID)
110 w.white       1.3  { _messID = messageID; }
111                           
112 w.white       1.1  
113 w.white       1.3  void ClientPerfDataStore::setOperationType(Uint32 type)
114                    {   
115                      _operationType = Message::convertMessageTypetoCIMOpType(type);                             
116                    }
117 w.white       1.1  
118                    
119 aruran.ms     1.9  Boolean ClientPerfDataStore::checkMessageIDandType(const String& messageID, Uint32 type)
120 w.white       1.3  { if(_messID != messageID)
121                      {
122                        _errorCondition = true;
123                        return false; 
124                      }
125                      
126                      if (_operationType != Message::convertMessageTypetoCIMOpType(type)) 
127                      {
128                        _errorCondition = true;
129                        return false; 
130                      }
131 w.white       1.1  
132 w.white       1.3    return true;
133                    }
134                     
135 w.white       1.6  String ClientPerfDataStore::toString() const
136 w.white       1.3  {
137 mike          1.10     Buffer out;
138 w.white       1.3      /*XMLWriter::append(out, String(" serverTime = ");
139                        XMLWriter::append(out, _serverTime);
140                         << "\r\n";  */
141                        out << " operation type  = " << (Uint32)_operationType << "\r\n";
142 w.white       1.7      out << " network start time is = " << _networkStartTime.toMilliseconds() << "\r\n";
143                        out << " network end time = " << _networkEndTime.toMilliseconds() << "\r\n";
144 w.white       1.3      out << " numberofRequestBytes = " << (Uint32)_requestSize << "\r\n";
145                        out << " number foRespoonse Bytes = " << (Uint32)_responseSize << "\r\n";
146                        out << "the message ID is " << _messID << "\r\n";
147                        if (_errorCondition) {
148                            out << "the error condition is true " << "\r\n";
149                        }
150                        else{
151                            out << " he error condition is false" << "\r\n";
152                        }
153                        if (_classRegistered) {
154                            out << "there is a class registered" << "\r\n";
155 w.white       1.1      }
156 w.white       1.3      else{
157                            out << "no class is registered" << "\r\n";
158 w.white       1.1      }
159 w.white       1.3      if (_serverTimeKnown) {
160                            out << "_serverTimeKnown is true" << "\r\n";
161 w.white       1.1      }
162                        else{
163 w.white       1.3          out << "_serverTimeKnown is false" << "\r\n";
164 w.white       1.1      }
165 w.white       1.3  
166                        //return a Pegasus String constructed form the array "out"
167                        return (String(out.getData(), out.size()));
168                    }
169 w.white       1.1      
170 w.white       1.3   
171 w.white       1.1  
172 w.white       1.6  Boolean ClientPerfDataStore::getStatError() const
173 w.white       1.3  {
174                        return _errorCondition;
175 w.white       1.1  }
176                    
177 w.white       1.3  void ClientPerfDataStore::setClassRegistered(Boolean bol)
178                    {
179                        _classRegistered = bol;
180 w.white       1.1  }
181 w.white       1.3  
182 w.white       1.6  Boolean ClientPerfDataStore::isClassRegistered() const
183 w.white       1.1  {
184 w.white       1.3      return _classRegistered;
185 w.white       1.1  }
186                    
187                    PEGASUS_NAMESPACE_END
188                    
189                    
190                    

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2