|
|
1.1 ! root 1: #include <pads.pub> ! 2: SRCFILE("stats.c") ! 3: ! 4: class PadStats : public PadRcv { ! 5: Pad *pad; ! 6: void allocfree(); ! 7: void cachestats(); ! 8: void sbrk0(); ! 9: void sf0(); ! 10: void traffic(); ! 11: public: ! 12: PadStats(); ! 13: }; ! 14: ! 15: void NewPadStats() { new PadStats; } ! 16: ! 17: PadStats::PadStats() ! 18: { ! 19: void abort(), exit(int); ! 20: Menu m; ! 21: ! 22: pad = new Pad( (PadRcv*) this ); ! 23: pad->banner( "PadStats:" ); ! 24: pad->name( "stats" ); ! 25: m.sort( "abort()?", (Action)&abort ); ! 26: m.sort( "allocfree()", (Action)&PadStats::allocfree ); ! 27: m.sort( "cachestats()", (Action)&PadStats::cachestats ); ! 28: m.sort( "exit(0)?", (Action)&exit, 0 ); ! 29: m.sort( "sbrk(0)", (Action)&PadStats::sbrk0 ); ! 30: m.sort( "sf(0)", (Action)&PadStats::sf0 ); ! 31: m.sort( "traffic()", (Action)&PadStats::traffic ); ! 32: pad->menu(m); ! 33: } ! 34: ! 35: void PadStats::cachestats() ! 36: { ! 37: char *CacheStats(); ! 38: pad->insert(1, SELECTLINE, CacheStats()); ! 39: } ! 40: ! 41: void PadStats::sf0() ! 42: { ! 43: pad->insert(2, SELECTLINE, sf(0)); ! 44: } ! 45: ! 46: void PadStats::sbrk0() ! 47: { ! 48: pad->insert(3, SELECTLINE, "sbrk(0)=%d=0x%X", sbrk(0), sbrk(0)); ! 49: } ! 50: ! 51: void PadStats::traffic() ! 52: { ! 53: extern long BytesToTerm, BytesFromTerm; ! 54: long k = time(0); ! 55: pad->insert(k, SELECTLINE, ! 56: "%0.9s h->t=%d t->h=%d", ctime(&k)+11, BytesToTerm, BytesFromTerm); ! 57: } ! 58: ! 59: class Allocator { ! 60: public: ! 61: char *profile(long); ! 62: ! 63: }; ! 64: //extern Allocator NewDel; ! 65: ! 66: void PadStats::allocfree() ! 67: { ! 68: // char *p; int i; ! 69: // for( i = 0; p = NewDel.profile(i); ++i ) ! 70: // if( *p ) ! 71: // pad->insert( i+10, SELECTLINE, p ); ! 72: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.