home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************\
- ** **
- ** WW WW IIIIIIII NNN NN DDDDDDD BBBBBBB AA SSSSSS EEEEEEEE **
- ** WW W WW II NNNN NN DD DD BB BB AA AA SS EE **
- ** WW W WW II NN NN NN DD DD BBBBBBB AAAAAAAA SSSSSS EEEEEE **
- ** WW W WW II NN NNNN DD DD BB BB AA AA SS EE **
- ** WWWWW IIIIIIII NN NNN DDDDDDD BBBBBBB AA AA SSSSSS EEEEEEEE **
- ** **
- ** SSSSSS OOOOOO FFFFFFFF TTTTTTTT WW WW AA RRRRRRR EEEEEEEE **
- ** SS OO OO FF TT WW W WW AA AA RR RR EE **
- ** SSSSS OO OO FFFFF TT WW W WW AAAAAAAA RRRRRRR EEEEEE **
- ** SS OO OO FF TT WW W WW AA AA RR RR EE **
- ** SSSSSS OOOOOO FF TT WWWWW AA AA RR RR EEEEEEEE **
- ** **
- ********** NOTICE ***********************************************************
- ** This file contains valuable trade secrets and proprietary **
- ** assets of Windbase Software Inc. Embodying substantial **
- ** creative efforts and confidential information. Unauthorized **
- ** use, copying, decompiling, translating, disclosure or **
- ** transfer, of any kind, is strictly prohibited. **
- ** **
- ** COPYRIGHT (C) 1992, 1993, 1994, 1995. Windbase Software Inc. **
- ** ALL RIGHTS RESERVED. **
- \***************************************************************************/
-
- /*
- ** Single Linked List - Templates version
- */
-
- template <class USRDEF>
- class MyList : public WBSList<USRDEF>
- {
- public:
- void WBExecuteFunct(void *nullitem, USRDEF item)
- {
- nullitem = nullitem;
-
- cout << "Execute: " << item << "\n";
- }
-
- void WBDeleteFunct(void *nullitem, USRDEF item)
- {
- nullitem = nullitem;
-
- cout << "Delete: " << item << "\n";
- }
-
- USRDEF WBCopyFunct(void *nullitem, USRDEF item)
- {
- nullitem = nullitem;
-
- return(item);
- }
-
- int WBCompareFunct(void *nullitem, USRDEF item1, USRDEF item2)
- {
- nullitem = nullitem;
-
- return(strcmp(item1,item2));
- }
- };
-
- template <class USRDEF>
- void Execute(void *nullitem, USRDEF item)
- {
- nullitem = nullitem;
-
- cout << "Execute: " << item << "\n";
- }
-
- main()
- {
- MyList<char *> lstptr1, lstptr2, *strlist, copylist, cutlist, addlist;
- WBSList<int> intlist;
- char *strptr;
-
- strlist = new MyList<char *>;
-
- strlist->Add("Item02");
- strlist->Add("Item03");
- strlist->Add("Item04");
- strlist->GetFirst();
- strlist->Insert("Item01");
- strlist->GetLast();
- *strlist += "Item05";
- *strlist += "Item06";
- *strlist += "Item07";
- *strlist += "Item09";
- strlist->Insert("Item08");
- strlist->AddFirst("Item00");
- strlist->AddLast("Item10");
- strlist->Append("Item11");
- strlist->AddSorted("Item12");
- strlist->AddSorted("Item14");
- strlist->AddSorted("Item17");
- strlist->AddSorted("Item16");
- strlist->AddSorted("Item18");
- strlist->AddSorted("Item15");
- strlist->AddSorted("Item13");
- strlist->AddSorted("Item19");
- strlist->Execute();
- cout << "Num Items: " << strlist->NumItems() << "\n";
- cout << "Search: " << strlist->Search("Item01") << "\n";
- strlist->DelCurrent();
- strlist->DelLast();
- strlist->DelFirst();
- strlist->DelNext();
- strlist->Execute();
- cout << "Num Items: " << strlist->NumItems() << "\n";
- cout << "Get Current: " << strlist->GetCurrent() << "\n";
- cout << "Get Next: " << strlist->GetNext() << "\n";
- cout << "Get Last: " << strlist->GetLast() << "\n";
-
- cout << "Get First: " << strlist->GetFirst() << "\n";
- while ((strptr = (*strlist)++) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- cout << "Get First: " << strlist->GetFirst() << "\n";
- while ((strptr = strlist->GetNext()) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- cout << "On Base: " << ((strlist->Is()&WB_BASE) ? "Yes" : "No") << "\n";
- cout << "Get First: " << strlist->GetFirst() << "\n";
- cout << "On Base: " << ((strlist->Is()&WB_BASE) ? "Yes" : "No") << "\n";
-
- (*strlist)++;
- cout << "On Base: " << strlist->OnBase() << "\n";
- cout << "Get First: " << strlist->GetFirst() << "\n";
- cout << "On Base: " << strlist->OnBase() << "\n";
-
- lstptr1 = *strlist;
-
- cout << "Equal: " << ((lstptr1 == *strlist) ? "Yes" : "No") << "\n";
- cout << "Not Equal: " << (!(lstptr1 == *strlist) ? "Yes" : "No") << "\n";
-
- cout << "Get First: " << lstptr1.GetFirst() << "\n";
- cout << "On Base: " << lstptr1.OnBase() << "\n";
- while ((strptr = lstptr1++) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- cout << "Equal: " << ((lstptr1 == *strlist) ? "Yes" : "No") << "\n";
- cout << "Not Equal: " << (!(lstptr1 == *strlist) ? "Yes" : "No") << "\n";
-
- lstptr1.GetFirst();
- strlist->GetLast();
- cout << "Num copied: " << copylist.Copy(lstptr1,*strlist) << "\n";
-
- cout << "Get First: " << lstptr1.GetFirst() << "\n";
- cout << "On Base: " << lstptr1.OnBase() << "\n";
- while ((strptr = lstptr1++) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- cout << "On Base: " << lstptr1.OnBase() << "\n";
-
- cout << "Get First: " << copylist.GetFirst() << "\n";
- cout << "On Base: " << copylist.OnBase() << "\n";
- while ((strptr = copylist++) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- delete strlist;
-
- copylist.GetFirst();
- lstptr1 = copylist;
- lstptr2 = copylist;
- lstptr2++;
-
- cutlist.Cut(lstptr1,lstptr2);
-
- cout << "Get First: " << copylist.GetFirst() << "\n";
- cout << "On Base: " << copylist.OnBase() << "\n";
- while ((strptr = copylist++) != NULL)
- cout << "Get Next: " << strptr << "\n";
-
- addlist.Paste(copylist,WB_SORTED,1);
- addlist.Execute();
- addlist.Paste(cutlist,WB_SORTED,1);
- addlist.Execute();
-
- intlist.SetExecute(NULL,Execute);
- intlist.AddFirst(10);
- intlist.AddFirst(12);
- intlist.AddFirst(14);
- intlist.AddFirst(15);
- intlist.AddFirst(16);
- intlist.AddFirst(18);
- intlist.Execute();
-
- return 0;
- }
-