Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

monThreadTrace.cpp

00001 /*
00002  *                         Sun Public License Notice
00003  *
00004  * The contents of this file are subject to the Sun Public License
00005  * Version 1.0 (the "License"); you may not use this file except
00006  * in compliance with the License. A copy of the License is available
00007  * at http://www.sun.com/
00008  *
00009  * The Original Code is the Java Profiler module.  The Initial Developers
00010  * of the Original Code are Jan Stola, Pavel Vacha, Michal Pise, Petr Luner,
00011  * Lukas Petru and Marek Przeczek.
00012  *
00013  * Portions created by Jan Stola are Copyright (C) 2000-2001.
00014  * All Rights Reserved.
00015  *
00016  * Portions created by Pavel Vacha are Copyright (C) 2000-2001.
00017  * All Rights Reserved.
00018  *
00019  * Portions created by Michal Pise are Copyright (C) 2000-2001.
00020  * All Rights Reserved.
00021  *
00022  * Portions created by Petr Luner are Copyright (C) 2000-2001.
00023  * All Rights Reserved.
00024  *
00025  * Portions created by Lukas Petru are Copyright (C) 2000-2001.
00026  * All Rights Reserved.
00027  *
00028  * Portions created by Marek Przeczek are Copyright (C) 2000-2001.
00029  * All Rights Reserved.
00030  *
00031  * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner,
00032  *               Lukas Petru and Marek Przeczek.
00033  */
00034 
00035 #include "../mon/monThreadTrace.h"
00036 #include "../mon/monThreadMethod.h"
00037 #include "../shared/thread.h"
00038 #include "../mon/monTrace.h"
00039 #include "../prof/prof.h"
00040 
00041 #ifdef USE_ALLOCATOR
00042 Allocator MonThreadTrace::_allocator;
00043 #endif
00044 
00045 void MonThreadTrace::addMonStat(jlong addHits, jlong addTime) {
00046 
00047         MonStatData::addMonStat(addHits, addTime);
00048         threadMethod->addMonStat(addHits, addTime);
00049         trace->addMonStat(addHits, addTime);
00050 }
00051 
00052 void MonThreadTrace::deactivate() {
00053 
00054         Prof::prof().activeMonThreadTraces.removeNoRehash(this);
00055 }
00056 
00057 const MonThreadTraceKey& MonThreadTrace::getKey( MonThreadTraceKey& key) {
00058                 
00059         threadMethod->thread->getKey(key.envId);
00060         trace->getKey(key.traceKey);
00061 
00062         return key;
00063 }
00064 
00065 int MonThreadTrace::operator==( const MonThreadTraceKey& key) {
00066         
00067         return (*threadMethod->thread == key.envId) && (*trace == key.traceKey);
00068 }
00069 
00070 int MonThreadTrace::hashKey( const MonThreadTraceKey& key) {
00071 
00072         return Thread::hashKey(key.envId) ^ Trace::hashKey(key.traceKey);
00073 }
00074 
00075 int MonThreadTrace::isActive() {
00076 
00077         return (trace->isActive() && threadMethod->isActive());
00078 }
00079 
00080 void MonThreadTrace::setUnchanged() {
00081                 
00082         IdObject::setUnchanged();
00083         clearDataChanged();
00084 }

Generated on Mon Jan 28 14:53:26 2002 for Java Profiler Dynamic Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001