clientperfdatastore.cpp
来自「Pegasus is an open-source implementation」· C++ 代码 · 共 198 行
CPP
198 行
//%2006//////////////////////////////////////////////////////////////////////////// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;// IBM Corp.; EMC Corporation, The Open Group.// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;// EMC Corporation; VERITAS Software Corporation; The Open Group.// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;// EMC Corporation; Symantec Corporation; The Open Group.//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to// deal in the Software without restriction, including without limitation the// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or// sell copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions:// // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.////==============================================================================////%/////////////////////////////////////////////////////////////////////////////#include "ClientPerfDataStore.h"#include <Pegasus/Common/XmlWriter.h>PEGASUS_USING_STD;PEGASUS_NAMESPACE_BEGINClientPerfDataStore::ClientPerfDataStore(){ _classRegistered = false;}void ClientPerfDataStore::reset(){ _operationType = CIMOPTYPE_INVOKE_METHOD; _serverTimeKnown = false; _errorCondition = false; _serverTime = 0; _networkStartTime = TimeValue(); _networkEndTime = TimeValue(); _requestSize = 0; _responseSize = 0; _messID = "";}ClientOpPerformanceData ClientPerfDataStore::createPerfDataStruct(){ ClientOpPerformanceData _ClientOpPerfData_obj; _ClientOpPerfData_obj.roundTripTime = _networkEndTime.toMicroseconds() - _networkStartTime.toMicroseconds(); _ClientOpPerfData_obj.operationType = _operationType; _ClientOpPerfData_obj.requestSize = _requestSize; _ClientOpPerfData_obj.responseSize = _responseSize; _ClientOpPerfData_obj.serverTimeKnown = _serverTimeKnown; if (_serverTimeKnown) { _ClientOpPerfData_obj.serverTime = _serverTime; } return _ClientOpPerfData_obj;}void ClientPerfDataStore::setServerTime(Uint32 time){ _serverTime = time; _serverTimeKnown = true;}void ClientPerfDataStore::setResponseSize(Uint64 size){ _responseSize = size;}void ClientPerfDataStore::setRequestSize(Uint64 size){ _requestSize = size;}void ClientPerfDataStore::setStartNetworkTime(){ _networkStartTime = TimeValue::getCurrentTime();}void ClientPerfDataStore::setEndNetworkTime(TimeValue time){ _networkEndTime = time;}void ClientPerfDataStore::setServerTimeKnown(Boolean bol){ _serverTimeKnown = bol;}void ClientPerfDataStore::setMessageID(String messageID){ _messID = messageID;}void ClientPerfDataStore::setOperationType(Uint32 type){ _operationType = Message::convertMessageTypetoCIMOpType(type);}Boolean ClientPerfDataStore::checkMessageIDandType( const String& messageID, Uint32 type){ if (_messID != messageID) { _errorCondition = true; return false; } if (_operationType != Message::convertMessageTypetoCIMOpType(type)) { _errorCondition = true; return false; } return true;}String ClientPerfDataStore::toString() const{ Buffer out; /*XMLWriter::append(out, String(" serverTime = "); XMLWriter::append(out, _serverTime); << "\r\n"; */ out << " operation type = " << (Uint32)_operationType << "\r\n"; out << " network start time is = " << _networkStartTime.toMilliseconds() << "\r\n"; out << " network end time = " << _networkEndTime.toMilliseconds() << "\r\n"; out << " numberofRequestBytes = " << (Uint32)_requestSize << "\r\n"; out << " number foRespoonse Bytes = " << (Uint32)_responseSize << "\r\n"; out << "the message ID is " << _messID << "\r\n"; if (_errorCondition) { out << "the error condition is true " << "\r\n"; } else { out << "the error condition is false" << "\r\n"; } if (_classRegistered) { out << "there is a class registered" << "\r\n"; } else { out << "no class is registered" << "\r\n"; } if (_serverTimeKnown) { out << "_serverTimeKnown is true" << "\r\n"; } else { out << "_serverTimeKnown is false" << "\r\n"; } return (String(out.getData(), out.size()));}Boolean ClientPerfDataStore::getStatError() const{ return _errorCondition;}void ClientPerfDataStore::setClassRegistered(Boolean bol){ _classRegistered = bol;}Boolean ClientPerfDataStore::isClassRegistered() const{ return _classRegistered;}PEGASUS_NAMESPACE_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?