Main Page   Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

profilerOop.h

This is the verbatim text of the profilerOop.h include file.
/* Sun-$Revision: 23.4 $ $ */

/* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University.
   See the LICENSE file for license information. */

# pragma interface

// A profilerOop is an object collect profiling information from
// a single Self process.

class profilerOopClass : public slotsOopClass {
 protected:
  Profiler* _profiler;
  oop       _process; // process to which I'm attached

  profilerOop addr()             { return (profilerOop)slotsOopClass::addr(); }

  void       set_process(oop p) { Memory->store((oop*)&addr()->_process, p); }
  processOop get_process()      { return (processOop)addr()->_process; }
  void       set_profiler(Profiler* prof) { addr()->_profiler = prof; }
  Profiler*  get_profiler()     { return addr()->_profiler; }
  processOop illegal_process()  { return (processOop) smiOop_zero; }

 public:
  // Primitives

  oop ProfilerProcess_prim(void *FH);
  // fails with: 
  //  NOPROCESSERROR if profiler is passive.
  // returns the processOop beeing observed..

  oop ProfilerEngage_prim(oop process, void *FH);
  // fails with: 
  //  BADTYPEERROR  if argument is not a processOop.
  //  NOPROCESSERROR if argument has no real process.
  // returns the processOop.

  oop ProfilerDisengage_prim(void *FH);
  // fails with:
  //  NOPROCESSERROR if profiler is not engaged.
  // returns the engaged processOop.

  oop ProfilerReset_prim();

  oop ProfilerTicks_prim(oop tick_pt, void *FH);           

  oop ProfilerTimes_prim(oop time_pt, void *FH);

  oop ProfilerCopyGraph_prim(oop method_pt, oop block_pt, oop access_pt,
                             oop prim_pt,   oop leaf_pt,  oop fold_pt, 
                             oop unknown_oop, void *FH);
  // returns the call graph with annotated nodes.

  oop ProfilerPrint_prim(float cutoff);
  // Print a VM low level dump of the call graph;

  bool is_active() { return get_process() != illegal_process(); }

  void initialize(); // Initialize all instance variables
};

Generated at Tue Jun 27 12:16:41 2000 for SelfVM by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999