home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 July & August / PCWorld_2002-07-08_cd.bin / Software / Topware / hackman / _SETUP.1 / Varbinds.h < prev    next >
C/C++ Source or Header  |  2000-07-09  |  3KB  |  161 lines

  1. #ifndef _VARBINDS_H
  2. #define _VARBINDS_H
  3.  
  4. #include "bindstructs.h"
  5. #include "string.h"
  6.  
  7. class CVARBINDS
  8. {
  9.     private:
  10.             int iCount,sCount,lCount,fCount,dCount;
  11.  
  12.             CSTRBIND *bStrings[100];
  13.             CINTBIND *bInts[100];
  14.             CLONGBIND *bLongs[100];
  15.             CFUNCBIND *bFuncs[100];
  16.             CDBLBIND *bDbls[100];
  17.     public:
  18.             CVARBINDS();
  19.             ~CVARBINDS();
  20.             
  21.             void BindDbl(double *, LPSTR);
  22.             void BindInt(int *,LPSTR);
  23.             void BindLong(long*,LPSTR);
  24.             void BindString(LPSTR,LPSTR);
  25.             void BindFunc(FARPROC,LPSTR);
  26.  
  27.             int GetInt(LPSTR);
  28.             long GetLong(LPSTR);
  29.             LPSTR GetString(LPSTR);
  30.             FARPROC GetFunc(LPSTR);
  31.             double GetDbl(LPSTR);
  32. };
  33.  
  34. CVARBINDS::CVARBINDS() : iCount(0), sCount(0), lCount(0), fCount(0), dCount(0)
  35. }
  36.  
  37. CVARBINDS::~CVARBINDS()
  38. {
  39.     delete []* bStrings;
  40.     delete []* bInts;
  41.     delete []* bLongs;
  42.     delete []* bFuncs;
  43.     delete []* bDbls;
  44. }
  45.  
  46. void CVARBINDS::BindDbl(double *bDouble,LPSTR bStringD)
  47. {    bDbls[dCount]=new CDBLBIND(bDouble,bStringD);
  48.     dCount++;
  49. }
  50.  
  51. void CVARBINDS::BindInt(int *bInt,LPSTR bStringI)
  52. {    bInts[iCount]=new CINTBIND(bInt,bStringI);
  53.     iCount++;
  54. }
  55.  
  56. void CVARBINDS::BindLong(long *bLong,LPSTR bStringL)
  57. {    bLongs[lCount]=new CLONGBIND(bLong,bStringL);
  58.     lCount++;
  59. }
  60.  
  61. void CVARBINDS::BindString(LPSTR bStr,LPSTR bStringS)
  62. {    bStrings[sCount]=new CSTRBIND(bStr,bStringS);
  63.     sCount++;
  64. }
  65.  
  66. void CVARBINDS::BindFunc(FARPROC bFunc,LPSTR bStringF)
  67. {    bFuncs[fCount]=new CFUNCBIND(FARPROC(bFunc),bStringF);
  68.     fCount++;
  69. }
  70.  
  71. int CVARBINDS::GetInt(LPSTR xBind)
  72. {int i=0;
  73.     while((i<iCount) && strcmp(bInts[i]->GetBind(),xBind))
  74.     {
  75.         i++;
  76.     }
  77.  
  78.     if( (i==iCount) && !(strcmp(bInts[i]->GetBind(),xBind)) )
  79.     {
  80.         return -1;
  81.     }
  82.     else
  83.     {
  84.         return bInts[i]->GetData();
  85.     }
  86. }
  87.  
  88. FARPROC CVARBINDS::GetFunc(LPSTR xBind)
  89. {int i=0;
  90.     while((i<fCount) && strcmp(bFuncs[i]->GetBind(),xBind))
  91.     {
  92.         i++;
  93.     }
  94.  
  95.     if( (i==iCount) && !(strcmp(bFuncs[i]->GetBind(),xBind)))
  96.     {
  97.         return NULL;
  98.     }
  99.     else
  100.     {
  101.         return bFuncs[i]->GetFunction();
  102.     }
  103.  
  104. }
  105.  
  106. long CVARBINDS::GetLong(LPSTR xBind)    //get a Long little doggies...
  107. {int i=0;
  108.     while((i<lCount) && strcmp(bLongs[i]->GetBind(),xBind))
  109.     {
  110.         i++;
  111.     }
  112.  
  113.     if( (i==lCount) && !strcmp(bLongs[i-1]->GetBind(),xBind) )
  114.     {
  115.         return -1;
  116.     }
  117.     else
  118.     {
  119.         return bLongs[i]->GetData();
  120.     }
  121. }
  122.  
  123. LPSTR CVARBINDS::GetString(LPSTR xBind)
  124. {int i=0;
  125.     while((i<sCount) && strcmp(bStrings[i]->GetBind(),xBind))
  126.     {
  127.         i++;
  128.     }
  129.  
  130.     if( (i==sCount) && bStrings[i]->GetBind()==0)
  131.     {
  132.         return NULL;
  133.     }
  134.     else
  135.     {
  136.         return bStrings[i]->GetData();
  137.     }
  138.  
  139. }
  140.  
  141. double CVARBINDS::GetDbl(LPSTR xBind)
  142. {
  143. int i=0;
  144.     while( (i<dCount) && strcmp(bDbls[i]->GetBind(),xBind))
  145.     {
  146.         i++;
  147.     }
  148.  
  149.     if( (i==dCount) && !strcmp(bDbls[i]->GetBind(),xBind) )
  150.     {
  151.         return -1;
  152.     }
  153.     else
  154.     {
  155.         return bDbls[i]->GetData();
  156.     }
  157. }
  158.  
  159. #endif
  160.