Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

CSMessageListener.cpp

Go to the documentation of this file.
00001 #ifdef WIN32
00002 #pragma warning(disable : 4786 )
00003 #endif
00004 
00005 #include "CSMessageListener.h"
00006 #include "CSMessage.h"
00007 
00008 CSInternalMessages CSMessageListener::mCSInternalMessages;
00009 const char *CSMessageListener::CLASS = "CSMessageListener";
00010 
00011 CSMessageListener::CSMessageListener()
00012 {
00013     static char *functionName="CSMessageListener";
00014     LOG_ENTER 
00015     LOG_EXIT
00016 }
00017 
00018 CSMessageListener::~CSMessageListener()
00019 {
00020     static char *functionName="CSMessageListener";
00021     LOG_ENTER 
00022     LOG_EXIT
00023 }
00024 
00025 void CSMessageListener::addMessageToQueue(CSMessageListener *listener, CSMessage *message)
00026 {
00027     static char *functionName="addMessageToQueue";
00028     if (listener == 0)
00029     {
00030         return;
00031     }
00032     
00033     CSInternalMessage *iMessage = new CSInternalMessage();
00034     iMessage->listener = listener;          
00035     iMessage->message = message;
00036     mCSInternalMessages.push_back(iMessage);
00037 }
00038 
00039 void CSMessageListener::dispatchQueuedMessages()
00040 {
00041     static char *functionName="dispatchQueuedMessages";
00042     CSInternalMessages::iterator iter;
00043     for (iter = mCSInternalMessages.begin(); iter != mCSInternalMessages.end(); iter++)
00044     {
00045         CSInternalMessage *iMessage = *iter;
00046         iMessage->listener->reactOnMessage(iMessage->message);
00047         delete(iMessage);
00048     }
00049     mCSInternalMessages.clear();
00050 }
00051 
00052 void CSMessageListener::dispatchMessage(CSMessage *message)
00053 {
00054     static char *functionName="dispatchMessage";
00055     if (!message->isDispatchAtOnce())
00056     {
00057         addMessageToQueue(this, message);
00058         return;
00059     }
00060     reactOnMessage(message);
00061 }

Generated on Wed Jul 14 00:43:31 2004 for CSLib by doxygen 1.3.6