Annotation of mstools/samples/sdktools/capview/list.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *   LIST.H
                      3:  */
                      4: 
                      5: enum {
                      6:     LIST_ALPHA=3,
                      7:     LIST_TIME=1,
                      8:     LIST_PER_TIME=4,
                      9:     LIST_CALLS=2,
                     10:     LIST_TIME_TOTAL=LIST_TIME+8,
                     11:     LIST_PER_TIME_TOTAL=LIST_PER_TIME+8
                     12: };
                     13: 
                     14: class ListItem
                     15: {
                     16:     TIMETYPE    totalTime;
                     17:     TIMETYPE    timeAll;
                     18:     CString     strMod;
                     19:     CString     strFunc;
                     20:     int         calls;
                     21: 
                     22: public:
                     23:     ListItem(char * szModule, char * szName, int cCalls, TIMETYPE time, TIMETYPE timeAll);
                     24:     ~ListItem(){;};
                     25: 
                     26:     TIMETYPE    Time() { return totalTime; };
                     27:     TIMETYPE    TimeAll() { return timeAll; };
                     28:     int         Calls() { return calls; };
                     29:     TIMETYPE    TimePerCall()
                     30:     {
                     31:         TIMETYPE t;
                     32:         if (calls < 2) return totalTime;
                     33:         t = totalTime / calls;
                     34:         return t;
                     35:     }
                     36:     TIMETYPE    TimeAllPerCall()
                     37:     {
                     38:         TIMETYPE t;
                     39:         if (calls < 2) return timeAll;
                     40:         t = timeAll / calls;
                     41:         return t;
                     42:     }
                     43:     CString& strModule() { return strMod;};
                     44:     CString& strFunction() { return strFunc;};
                     45:     void AddTime(int callsx, TIMETYPE time2, TIMETYPE timeFunc)
                     46:     {
                     47:         totalTime += timeFunc;
                     48:         timeAll += time2;
                     49:         calls += callsx;
                     50:         return;
                     51:     }
                     52: };                               /* Class ListItem */
                     53: 
                     54: 
                     55: class ListArray : public CPtrArray
                     56: {
                     57: public:
                     58:     int Search(char * szModule, char * szName);
                     59:     void Sort(int (_CRTAPI1 * fnCmp)(const void *, const void *))
                     60:     {
                     61:        qsort(m_pData, GetSize(), sizeof(int *), fnCmp);
                     62:     }
                     63: };
                     64: 
                     65: 
                     66: 
                     67: class ListHead
                     68: {
                     69:     ListArray           rgAlpha;
                     70:     ListArray           rgCalls;
                     71:     ListArray           rgRoutineTime;
                     72:     ListArray           rgTreeTime;
                     73:     ListArray           rgRoutineTimePer;
                     74:     ListArray           rgTreeTimePer;
                     75: 
                     76:     TIMETYPE            timeTotal;
                     77: 
                     78: public:
                     79: 
                     80:     ListHead() { timeTotal = (int) 0; return; }
                     81: 
                     82:     void AddTiming(char * szModule, char * szName, int cCalls,
                     83:                    TIMETYPE time, TIMETYPE timeAll);
                     84: 
                     85:     int GetCount() { return rgAlpha.GetSize(); };
                     86:     TIMETYPE TotalTime() { return timeTotal; };
                     87: 
                     88:     ListItem * GetPosition(int pos, int list = LIST_ALPHA)
                     89:     {
                     90:         switch( list ) {
                     91:         case LIST_ALPHA:                return (ListItem *) rgAlpha[pos];
                     92:         case LIST_CALLS:                return (ListItem *) rgCalls[pos];
                     93:         case LIST_TIME:                 return (ListItem *) rgRoutineTime[pos];
                     94:         case LIST_PER_TIME:             return (ListItem *) rgRoutineTimePer[pos];
                     95:         case LIST_TIME_TOTAL:           return (ListItem *) rgTreeTime[pos];
                     96:         case LIST_PER_TIME_TOTAL:       return (ListItem *) rgTreeTimePer[pos];
                     97:         default:                        return NULL;
                     98:         }
                     99:     }
                    100: 
                    101:     void SortByTotalTime();
                    102:     void SortByPerTime();
                    103:     void SortByCallCount();
                    104:     void SortByTimeAll();
                    105:     void SortByTPerTime();
                    106: };                              /* class ListHead */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.