Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Tools/MessageQueue/OutMessage.cpp

Go to the documentation of this file.
00001 /**
00002 * @file OutMessage.cpp
00003 *
00004 * Implementation of class OutMessage, OutBinaryMessage, OutTextMessage,
00005 * OutConfigMessage and OutMessageQueue.
00006 *
00007 * @author Martin Lötzsch
00008 */
00009 
00010 #include "OutMessage.h"
00011 #include "Platform/SystemCall.h"
00012 
00013 OutMessageQueue::OutMessageQueue()
00014 : queue(0) 
00015 {
00016 }
00017 
00018 void OutMessageQueue::open(MessageQueueBase* q)
00019 {
00020   if (queue == 0) queue = q;
00021 }
00022 
00023 void OutMessageQueue::writeToStream(const void* p,int size)
00024 {
00025   if (queue != 0) queue->write(p,size);
00026 }
00027 
00028 OutBinaryMessage::OutBinaryMessage(MessageQueueBase* q)
00029 {
00030   open(q);
00031 }
00032 
00033 OutTextMessage::OutTextMessage(MessageQueueBase* q)
00034 {
00035   open(q);
00036 }
00037 
00038 OutTextRawMessage::OutTextRawMessage(MessageQueueBase* q)
00039 {
00040   open(q);
00041 }
00042 
00043 OutMessage::OutMessage(MessageQueueBase& queue)
00044 : queue(queue), bin(&queue), text(&queue), textRaw(&queue),
00045 teamColorForNewMessages(Player::undefinedTeamColor),
00046 playerNumberForNewMessages(Player::undefinedPlayerNumber)
00047 {
00048 }
00049 
00050 void OutMessage::finishMessage(MessageID id)
00051 {
00052   queue.finishMessage(id,SystemCall::getCurrentSystemTime(),
00053     teamColorForNewMessages,playerNumberForNewMessages);
00054 }
00055 
00056 void OutMessage::finishMessage(MessageID id, unsigned long timeStamp,
00057                                Player::teamColor teamColor,
00058                                Player::playerNumber playerNumber,
00059                                bool messageWasSentFromAPhysicalRobot)
00060 {
00061   queue.finishMessage(id, timeStamp,teamColor,
00062     playerNumber,messageWasSentFromAPhysicalRobot);
00063 }
00064 
00065 /*
00066 * Change Log:
00067 *
00068 * $Log: OutMessage.cpp,v $
00069 * Revision 1.1.1.1  2004/05/22 17:37:18  cvsadm
00070 * created new repository GT2004_WM
00071 *
00072 * Revision 1.4  2004/01/28 21:04:33  loetzsch
00073 * bug fix
00074 *
00075 * Revision 1.3  2004/01/28 20:52:32  loetzsch
00076 * Added the OutTextRaw stream writer.
00077 *
00078 * Revision 1.2  2003/12/06 23:23:55  loetzsch
00079 * messages in a MessageQueue now contain
00080 * - the team color of the robot which sent the message
00081 * - the player number of the robot which sent the message
00082 * - if the message was sent from a physical robot or not
00083 *
00084 * Revision 1.1  2003/10/07 10:13:24  cvsadm
00085 * Created GT2004 (M.J.)
00086 *
00087 * Revision 1.1.1.1  2003/07/02 09:40:28  cvsadm
00088 * created new repository for the competitions in Padova from the 
00089 * tamara CVS (Tuesday 2:00 pm)
00090 *
00091 * removed unused solutions
00092 *
00093 * Revision 1.1  2002/09/10 15:53:59  cvsadm
00094 * Created new project GT2003 (M.L.)
00095 * - Cleaned up the /Src/DataTypes directory
00096 * - Removed challenge related source code
00097 * - Removed processing of incoming audio data
00098 * - Renamed AcousticMessage to SoundRequest
00099 *
00100 * Revision 1.1  2002/07/23 13:47:14  loetzsch
00101 * - new streaming classes
00102 * - new debug message handling
00103 * - exchanged StaticQueue by MessageQueue
00104 *
00105 */

Generated on Thu Sep 23 19:57:39 2004 for GT2004 by doxygen 1.3.6