home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / windbase / memslcpp.3 / set2.cpp < prev    next >
C/C++ Source or Header  |  1995-11-04  |  6KB  |  165 lines

  1. /***************************************************************************\
  2. **                                                                         **
  3. ** WW     WW IIIIIIII NNN   NN DDDDDDD  BBBBBBB     AA     SSSSSS EEEEEEEE **
  4. ** WW  W  WW    II    NNNN  NN DD    DD BB    BB  AA  AA  SS      EE       **
  5. ** WW  W  WW    II    NN NN NN DD    DD BBBBBBB  AAAAAAAA  SSSSSS EEEEEE   **
  6. **  WW W WW     II    NN  NNNN DD    DD BB    BB AA    AA      SS EE       **
  7. **   WWWWW   IIIIIIII NN   NNN DDDDDDD  BBBBBBB  AA    AA SSSSSS  EEEEEEEE **
  8. **                                                                         **
  9. **  SSSSSS  OOOOOO  FFFFFFFF TTTTTTTT WW     WW    AA    RRRRRRR  EEEEEEEE **
  10. ** SS      OO    OO FF          TT    WW  W  WW  AA  AA  RR    RR EE       **
  11. **  SSSSS  OO    OO FFFFF       TT    WW  W  WW AAAAAAAA RRRRRRR  EEEEEE   **
  12. **      SS OO    OO FF          TT     WW W WW  AA    AA RR   RR  EE       **
  13. ** SSSSSS   OOOOOO  FF          TT      WWWWW   AA    AA RR    RR EEEEEEEE **
  14. **                                                                         **
  15. ********** NOTICE ***********************************************************
  16. **       This file contains valuable trade secrets and proprietary         **
  17. **       assets of Windbase Software Inc.  Embodying substantial           **
  18. **       creative efforts and confidential information.  Unauthorized      **
  19. **       use, copying, decompiling, translating, disclosure or             **
  20. **       transfer, of any kind, is strictly prohibited.                    **
  21. **                                                                         **
  22. **       COPYRIGHT (C) 1992, 1993, 1994, 1995.  Windbase Software Inc.     **
  23. **       ALL RIGHTS RESERVED.                                              **
  24. \***************************************************************************/
  25.  
  26. /*
  27. ** Set - Non Templates Version
  28. */
  29.  
  30. int WBCompareFunct(void *nullitem, char *item1, char *item2)
  31.   {
  32.     nullitem = nullitem;
  33.     return(strcmp(item1,item2));
  34.   }
  35.  
  36. void WBExecuteFunct(void *nullitem, char *item)
  37.   {
  38.     nullitem = nullitem;
  39.     cout << "Execute: " << item << "\n";
  40.   }
  41.  
  42. char *WBCopyFunct(void *nullitem, char *item)
  43.   {
  44.     nullitem = nullitem;
  45.     return(item);
  46.   }
  47.  
  48. main()
  49.   {
  50.     WBSet set1, set2, newset;
  51.     int rval;
  52.  
  53.     set1.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  54.     set1.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  55.  
  56.     set2.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  57.     set2.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  58.  
  59.     newset.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  60.     newset.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  61.     newset.SetCopy(NULL,(void *(*)(void *, void *))WBCopyFunct);
  62.  
  63.     set1+="Item01";
  64.     set1+="Item02";
  65.     set1+="Item03";
  66.     set1+="Item04";
  67.     set1+="Item05";
  68.     set1+="Item07";
  69.  
  70.     set2+="Item03";
  71.     set2+="Item04";
  72.     set2+="Item05";
  73.     set2+="Item06";
  74.     set2+="Item07";
  75.     set2+="Item08";
  76.     set2+="Item09";
  77.     set2+="Item10";
  78.     set2+="Item11";
  79.  
  80.     cout << "Set one members\n";
  81.     set1.Execute();
  82.     cout << "Set two members\n";
  83.     set2.Execute();
  84.  
  85.     cout << "SetCmp(): return val == " << set1.SetCmp(set2,&rval);
  86.     cout << " rval == " << rval << "\n";
  87.     cout << "IsEqual(): " << (set1.IsEqual(set2) ? "True" : "False") << "\n";
  88.     cout << "IsSubset(): " << (set1.IsSubset(set2) ? "True" : "False") << "\n";
  89.     cout << "IsSuperset(): " << (set1.IsSuperset(set2) ? "True" : "False") << "\n";
  90.     cout << "set1 < set2: " << (set1 < set2 ? "True" : "False") << "\n";
  91.     cout << "set1 <= set2: " << (set1 <= set2 ? "True" : "False") << "\n";
  92.     cout << "set1 > set2: " << (set1 > set2 ? "True" : "False") << "\n";
  93.     cout << "set1 >= set2: " << (set1 >= set2 ? "True" : "False") << "\n";
  94.     cout << "set1 == set2: " << (set1 == set2 ? "True" : "False") << "\n";
  95.     cout << "set1 != set2: " << (set1 != set2 ? "True" : "False") << "\n";
  96.  
  97.     cout << "Union Operators\n";
  98.     cout << "newset.Union(set1,set2)\n";
  99.     newset.Clear();
  100.     newset.Union(set1,set2);
  101.     newset.Execute();
  102.  
  103.     cout << "newset = set1\n";
  104.     newset = set1;
  105.     newset.Execute();
  106.  
  107.     cout << "newset += set2\n";
  108.     newset += set2;
  109.     newset.Execute();
  110.  
  111.     cout << "newset = set1 + set2\n";
  112.     newset = set1 + set2;
  113.     newset.Execute();
  114.  
  115.     cout << "Difference Operators\n";
  116.     cout << "newset.Difference(set1,set2)\n";
  117.     newset.Clear();
  118.     newset.Difference(set2,set1);
  119.     newset.Execute();
  120.  
  121.     cout << "newset = set2\n";
  122.     newset = set2;
  123.     newset.Execute();
  124.  
  125.     cout << "newset -= set1\n";
  126.     newset -= set1;
  127.     newset.Execute();
  128.  
  129.     cout << "newset = set2 - set1\n";
  130.     newset = set2 - set1;
  131.     newset.Execute();
  132.  
  133.     cout << "Intersection Operators\n";
  134.     cout << "newset.Intersection(set1,set2)\n";
  135.     newset.Clear();
  136.     newset.Intersection(set1,set2);
  137.     newset.Execute();
  138.  
  139.     cout << "newset = set1\n";
  140.     newset = set1;
  141.     newset.Execute();
  142.  
  143.     cout << "newset *= set2\n";
  144.     newset *= set2;
  145.     newset.Execute();
  146.  
  147.     cout << "newset = set1 * set2\n";
  148.     newset = set1 * set2;
  149.     newset.Execute();
  150.  
  151.     cout << "SetCmp(): return val == " << newset.SetCmp(set2,&rval);
  152.     cout << " rval == " << rval << "\n";
  153.     cout << "IsEqual(): " << (newset.IsEqual(set2) ? "True" : "False") << "\n";
  154.     cout << "IsSubset(): " << (newset.IsSubset(set2) ? "True" : "False") << "\n";
  155.     cout << "IsSuperset(): " << (newset.IsSuperset(set2) ? "True" : "False") << "\n";
  156.     cout << "newset < set2: " << (newset < set2 ? "True" : "False") << "\n";
  157.     cout << "newset <= set2: " << (newset <= set2 ? "True" : "False") << "\n";
  158.     cout << "newset > set2: " << (newset > set2 ? "True" : "False") << "\n";
  159.     cout << "newset >= set2: " << (newset >= set2 ? "True" : "False") << "\n";
  160.     cout << "newset == set2: " << (newset == set2 ? "True" : "False") << "\n";
  161.     cout << "newset != set2: " << (newset != set2 ? "True" : "False") << "\n";
  162.  
  163.     return(0);
  164.   }
  165.