From: Marek P. <ma...@us...> - 2001-08-27 23:08:44
|
Update of /cvsroot/javaprofiler/library/src/commun2 In directory usw-pr-cvs1:/tmp/cvs-serv27021/src/commun2 Modified Files: prof_interface.cpp Log Message: extension of communication interface for possibility to transfer information about Java monitors Index: prof_interface.cpp =================================================================== RCS file: /cvsroot/javaprofiler/library/src/commun2/prof_interface.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** prof_interface.cpp 2001/08/23 23:57:31 1.9 --- prof_interface.cpp 2001/08/27 23:08:41 1.10 *************** *** 136,139 **** --- 136,140 ---- if( type == ALLOC_DATA && (cI & IdObject::ALLOC)); else if( type == CPU_DATA && (cI & IdObject::CPU)); + else if( type == MON_DATA && (cI & IdObject::MON)); else return RC_BAD_DATA_TYPE; *************** *** 194,201 **** AllocStatData::copy( data.alloc, *static_cast<Method*>( p)); } ! else { CpuStatData::copy( data.cpu, *static_cast<Method*>( p)); } } else if( p->isOfType( IdObject::THREAD)) { --- 195,206 ---- AllocStatData::copy( data.alloc, *static_cast<Method*>( p)); } ! else if( type == CPU_DATA) { CpuStatData::copy( data.cpu, *static_cast<Method*>( p)); } + else { + + MonStatData::copy( data.mon, *static_cast<Method*>( p)); + } } else if( p->isOfType( IdObject::THREAD)) { *************** *** 203,206 **** --- 208,223 ---- AllocStatData::copy( data.alloc, *static_cast<Thread*>( p)); } + else if( p->isOfType( IdObject::MON_THREAD_METHOD)) { + + MonStatData::copy( data.mon, *static_cast<MonThreadMethod*>( p)); + } + else if( p->isOfType( IdObject::MON_THREAD_TRACE)) { + + MonStatData::copy( data.mon, *static_cast<MonThreadTrace*>( p)); + } + else if( p->isOfType( IdObject::MON_TRACE)) { + + MonStatData::copy( data.mon, *static_cast<MonTrace*>( p)); + } else if( p->isOfType( IdObject::ALLOC_ARENA)) {} else if( p->isOfType( IdObject::GARBAGE_C)) {} *************** *** 277,280 **** --- 294,315 ---- } + case MON_TRACES: { + + Class* c = classes.first(); + while( c) { + + Method* m = c->methods.first(); + while( m) { + + getDataFromList( m->monTraces, seq, all); + m = c->methods.next( m); + } + + c = classes.next( c); + } + + break; + } + case OBJECT_TYPES: { *************** *** 333,337 **** case ALLOC_METHOD_TRACES: case CPU_METHOD_THREADS: ! case CPU_METHOD_TRACES: { if( !p->isOfType( IdObject::METHOD)) return RC_BAD_COMMAND; --- 368,374 ---- case ALLOC_METHOD_TRACES: case CPU_METHOD_THREADS: ! case CPU_METHOD_TRACES: ! case MON_METHOD_THREADS: ! case MON_METHOD_TRACES: { if( !p->isOfType( IdObject::METHOD)) return RC_BAD_COMMAND; *************** *** 342,346 **** else if( what == ALLOC_METHOD_TRACES) getDataFromList( m->allocTraces, seq, all); else if( what == CPU_METHOD_THREADS) getDataFromList( m->cpuThreadMethods, seq, all); ! else getDataFromList( m->cpuTraces, seq, all); break; --- 379,385 ---- else if( what == ALLOC_METHOD_TRACES) getDataFromList( m->allocTraces, seq, all); else if( what == CPU_METHOD_THREADS) getDataFromList( m->cpuThreadMethods, seq, all); ! else if( what == CPU_METHOD_TRACES) getDataFromList( m->cpuTraces, seq, all); ! else if( what == MON_METHOD_THREADS) getDataFromList( m->monThreadMethods, seq, all); ! else getDataFromList( m->monTraces, seq, all); break; *************** *** 395,399 **** case ALLOC_THREAD_OBJECTS: case ALLOC_THREAD_METHODS: ! case CPU_THREAD_METHODS: { if( !p->isOfType( IdObject::THREAD)) return RC_BAD_COMMAND; --- 434,439 ---- case ALLOC_THREAD_OBJECTS: case ALLOC_THREAD_METHODS: ! case CPU_THREAD_METHODS: ! case MON_THREAD_METHODS: { if( !p->isOfType( IdObject::THREAD)) return RC_BAD_COMMAND; *************** *** 403,407 **** if( what == ALLOC_THREAD_OBJECTS) getDataFromList( th->allocThreadObjects, seq, all); else if( what == ALLOC_THREAD_METHODS) getDataFromList( th->allocThreadMethods, seq, all); ! else getDataFromList( th->cpuThreadMethods, seq, all); break; --- 443,448 ---- if( what == ALLOC_THREAD_OBJECTS) getDataFromList( th->allocThreadObjects, seq, all); else if( what == ALLOC_THREAD_METHODS) getDataFromList( th->allocThreadMethods, seq, all); ! else if( what == CPU_THREAD_METHODS) getDataFromList( th->cpuThreadMethods, seq, all); ! else getDataFromList( th->monThreadMethods, seq, all); break; *************** *** 471,474 **** --- 512,535 ---- } + case MON_METHOD_TRACE_THREADS: { + + if( !p->isOfType( IdObject::MON_TRACE)) return RC_BAD_COMMAND; + + MonTrace* tr = static_cast<MonTrace*>( p); + getDataFromList( tr->threadTraces, seq, all); + + break; + } + + case MON_THREAD_METHOD_TRACES: { + + if( !p->isOfType( IdObject::MON_THREAD_METHOD)) return RC_BAD_COMMAND; + + MonThreadMethod* tm = static_cast<MonThreadMethod*>( p); + getDataFromList( tm->threadTraces, seq, all); + + break; + } + case GROUP_THREADS: { *************** *** 516,522 **** --- 577,585 ---- dest->hasAllocData = src->getClassIdent() & IdObject::ALLOC; dest->hasCpuData = src->getClassIdent() & IdObject::CPU; + dest->hasMonData = src->getClassIdent() & IdObject::MON; AllocStatData* alloc = NULL; CpuStatData* cpu = NULL; + MonStatData* mon = NULL; if( src->isOfType( IdObject::ALLOC_OBJECT)) { *************** *** 572,575 **** --- 635,639 ---- alloc = static_cast<Method*>( src); cpu = static_cast<Method*>( src); + mon = static_cast<Method*>( src); } else if( src->isOfType( IdObject::THREAD)) { *************** *** 577,580 **** --- 641,656 ---- alloc = static_cast<Thread*>( src); } + else if( src->isOfType( IdObject::MON_THREAD_METHOD)) { + + mon = static_cast<MonThreadMethod*>( src); + } + else if( src->isOfType( IdObject::MON_THREAD_TRACE)) { + + mon = static_cast<MonThreadTrace*>( src); + } + else if( src->isOfType( IdObject::MON_TRACE)) { + + mon = static_cast<MonTrace*>( src); + } else if( src->isOfType( IdObject::ALLOC_ARENA)) {} else if( src->isOfType( IdObject::GARBAGE_C)) {} *************** *** 585,588 **** --- 661,665 ---- if( dest->hasAllocData && alloc) AllocStatData::copy( dest->alloc, *alloc); if( dest->hasCpuData && cpu) CpuStatData::copy( dest->cpu, *cpu); + if( dest->hasMonData && mon) MonStatData::copy( dest->mon, *mon); return dest; |