home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: SysTools / SysTools.zip / taman002.zip / TASKMANA.ZIP / src / kSFNRecord.cpp < prev    next >
C/C++ Source or Header  |  2000-04-29  |  5KB  |  215 lines

  1. /* $Id: kSFNRecord.cpp,v 1.1 2000/04/29 19:06:35 stknut Exp $
  2.  *
  3.  * kSFNRecord - Container record.
  4.  *
  5.  * Copyright (c) 2000 knut st. osmundsen (knut.stange.osmundsen@pmsc.no)
  6.  *
  7.  */
  8.  
  9.  
  10.  
  11. /*******************************************************************************
  12. *   Defined Constants And Macros                                               *
  13. *******************************************************************************/
  14. #define INCL_DOSERRORS
  15. #define INCL_WIN
  16.  
  17. /*******************************************************************************
  18. *   Header Files                                                               *
  19. *******************************************************************************/
  20. #include <os2.h>
  21. #ifdef USE_KLIB
  22.     #include <kAssert.h>
  23.     #include <kLog.h>
  24.     #include <kHeap.h>
  25. #endif
  26. #include <stddef.h>
  27. #include <stdio.h>
  28. #include <string.h>
  29.  
  30. #include "kBase.h"
  31. #include "kError.h"
  32. #include "kContainer.h"
  33.  
  34. #include "kQuerySysState.h"
  35. #include "kSFNRecord.h"
  36.  
  37.  
  38. /*******************************************************************************
  39. *   Global Variables                                                           *
  40. *******************************************************************************/
  41. const FIELDINFO kSFNRecord::aFieldInfo[] =
  42. {
  43.     {
  44.        sizeof(FIELDINFO),
  45.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  46.        CFA_STRING,
  47.        (PVOID)"JFN",
  48.        offsetof(kSFNRecord, pszJFN),
  49.        NULL,
  50.        NULL,
  51.        0L
  52.     }
  53.     ,
  54.     {
  55.        sizeof(FIELDINFO),
  56.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  57.        CFA_STRING,
  58.        (PVOID)"SFN",
  59.        offsetof(kSFNRecord, pszSFN),
  60.        NULL,
  61.        NULL,
  62.        0L
  63.     }
  64.     ,
  65.     {
  66.        sizeof(FIELDINFO),
  67.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  68.        CFA_STRING,
  69.        (PVOID)"RefCnt",
  70.        offsetof(kSFNRecord, pszRefCnt),
  71.        NULL,
  72.        NULL,
  73.        0L
  74.     }
  75.     ,
  76.     {
  77.        sizeof(FIELDINFO),
  78.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  79.        CFA_STRING,
  80.        (PVOID)"Flags",
  81.        offsetof(kSFNRecord, pszFlags),
  82.        NULL,
  83.        NULL,
  84.        0L
  85.     }
  86.     ,
  87.     {
  88.        sizeof(FIELDINFO),
  89.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  90.        CFA_STRING,
  91.        (PVOID)"Flags2",
  92.        offsetof(kSFNRecord, pszFlags2),
  93.        NULL,
  94.        NULL,
  95.        0L
  96.     }
  97.     ,
  98.     {
  99.        sizeof(FIELDINFO),
  100.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  101.        CFA_STRING,
  102.        (PVOID)"Mode",
  103.        offsetof(kSFNRecord, pszMode),
  104.        NULL,
  105.        NULL,
  106.        0L
  107.     }
  108.     ,
  109.     {
  110.        sizeof(FIELDINFO),
  111.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  112.        CFA_STRING,
  113.        (PVOID)"Mode2",
  114.        offsetof(kSFNRecord, pszMode2),
  115.        NULL,
  116.        NULL,
  117.        0L
  118.     }
  119.     ,
  120.     {
  121.        sizeof(FIELDINFO),
  122.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  123.        CFA_STRING,
  124.        (PVOID)"Size",
  125.        offsetof(kSFNRecord, pszSize),
  126.        NULL,
  127.        NULL,
  128.        0L
  129.     }
  130.     ,
  131.     {
  132.        sizeof(FIELDINFO),
  133.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  134.        CFA_STRING,
  135.        (PVOID)"hVPB",
  136.        offsetof(kSFNRecord, pszhVPB),
  137.        NULL,
  138.        NULL,
  139.        0L
  140.     }
  141.     ,
  142.     {
  143.        sizeof(FIELDINFO),
  144.        CFA_STRING | CFA_HORZSEPARATOR | CFA_SEPARATOR | CFA_RIGHT,
  145.        CFA_STRING,
  146.        (PVOID)"Attr",
  147.        offsetof(kSFNRecord, pszAttr),
  148.        NULL,
  149.        NULL,
  150.        0L
  151.     }
  152.     ,
  153.     {
  154.        sizeof(FIELDINFO),
  155.        CFA_STRING | CFA_HORZSEPARATOR,
  156.        CFA_STRING,
  157.        (PVOID)"Name",
  158.        offsetof(kSFNRecord, pszName),
  159.        NULL,
  160.        NULL,
  161.        0L
  162.     }
  163.  
  164. };
  165.  
  166. const unsigned  kSFNRecord::cFieldInfo = 11;
  167.  
  168.  
  169. /**
  170.  * Init function.
  171.  */
  172. VOID    kSFNRecord::init()
  173. {
  174.     pszJFN = &szJFN[0];
  175.     pszSFN = &szSFN[0];
  176.     pszRefCnt = &szRefCnt[0];
  177.     pszFlags = &szFlags[0];
  178.     pszFlags2 = &szFlags2[0];
  179.     pszMode = &szMode[0];
  180.     pszMode2 = &szMode2[0];
  181.     pszSize = &szSize[0];
  182.     pszhVPB = &szhVPB[0];
  183.     pszAttr = &szAttr[0];
  184.     pszName = &szName[0];
  185.     usSFN = 0xFFFF;
  186. }
  187.  
  188.  
  189. /**
  190.  * Set the data of the record.
  191.  * @param     pSftRec       Pointer to SFT record from QS.
  192.  * @param     pszFilename   Pointer to filename string.
  193.  * @param     usJFN         Optional process filehandle value. Used when showing process handles.
  194.  * @remark    TODO: Better formatting of various flags and attributes!
  195.  */
  196. VOID    kSFNRecord::set(qsSft_t *pSftRec, PCSZ pszFilename, USHORT usJFN /* 0xFFFF */)
  197. {
  198.     this->usJFN = usJFN;
  199.     sprintf(szJFN,      "0x%04x", usJFN);
  200.     usSFN = pSftRec->sfn;
  201.     sprintf(szSFN,      "0x%04x", usSFN);
  202.     sprintf(szRefCnt,   "0x%04x", pSftRec->refcnt);
  203.     sprintf(szFlags,    "0x%04x", pSftRec->flags);
  204.     sprintf(szFlags2,   "0x%04x", pSftRec->flags2);
  205.     sprintf(szMode,     "0x%04x", pSftRec->mode);
  206.     sprintf(szMode2,    "0x%04x", pSftRec->mode2);
  207.     sprintf(szSize,     "%9d",     pSftRec->size);
  208.     sprintf(szhVPB,     "0x%04x", pSftRec->hVPB);
  209.     sprintf(szAttr,     "0x%04x", pSftRec->attr);
  210.     szName[0] = '\0';
  211.     strncat(szName, pszFilename, sizeof(szName));
  212. }
  213.  
  214.  
  215.