00001
00002
00003
00004
00005
00006
00007
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
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105