|
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;
|