#include <windows.h> #include <stdio.h> #include "ActiveQueue.h" #include <string> using namespace std; #if _MSC_VER // VC can only handle symbols up to 255 character, STL can easily // produce symbols longer then that. So we turn of this warning. #pragma warning(disable:4786) #endif class MyActiveQueue : public ActiveQueue<string> { protected: virtual bool HandleData(string &data); }; bool MyActiveQueue :: HandleData(string &data) { if (data == "end") return false; printf("%s\n",data.c_str()); return true; } int main(void) { char buffer[10]; try { MyActiveQueue qt; for (int i = 0;i < 50;i++) { sprintf(buffer,"%d",i); qt.Add(string(buffer)); } qt.Add("end"); WaitForSingleObject(qt,INFINITE); } catch (FailedToCreateThread&) { printf("Failed to create thread\n"); } catch (FailedToCreateSemaphore&) { printf("Failed to instansiate MyQueueThread\n"); } return 0; } //End of File