00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 #include "jaus/core/events/cancelevent.h" 00041 #include "jaus/core/events/confirmeventrequest.h" 00042 #include "jaus/core/events/rejecteventrequest.h" 00043 00044 using namespace JAUS; 00045 00054 CancelEvent::CancelEvent(const Address& dest, 00055 const Address& src) : Message(CANCEL_EVENT, dest, src) 00056 { 00057 mRequestID = mEventID = 0; 00058 } 00059 00060 00066 CancelEvent::CancelEvent(const CancelEvent& message) : Message(CANCEL_EVENT) 00067 { 00068 mRequestID = mEventID = 0; 00069 *this = message; 00070 } 00071 00072 00078 CancelEvent::~CancelEvent() 00079 { 00080 00081 } 00082 00083 00102 bool CancelEvent::IsResponseToMessage(const Message *requestingMessage) const 00103 { 00104 if(mSourceID == requestingMessage->GetDestinationID()) 00105 { 00106 if(requestingMessage->GetMessageCode() == CONFIRM_EVENT_REQUEST) 00107 { 00108 const ConfirmEventRequest* original = dynamic_cast<const ConfirmEventRequest*>(requestingMessage); 00109 if(original && original->GetRequestID() == mRequestID) 00110 { 00111 return true; 00112 } 00113 } 00114 else if(requestingMessage->GetMessageCode() == REJECT_EVENT_REQUEST) 00115 { 00116 const RejectEventRequest* original = dynamic_cast<const RejectEventRequest*>(requestingMessage); 00117 { 00118 return true; 00119 } 00120 } 00121 } 00122 return false; 00123 } 00124 00125 00137 int CancelEvent::WriteMessageBody(Packet& packet) const 00138 { 00139 int total = 0; 00140 int expected = BYTE_SIZE*2; 00141 total += packet.Write(mRequestID); 00142 total += packet.Write(mEventID); 00143 return total == expected ? total : -1; 00144 } 00145 00146 00158 int CancelEvent::ReadMessageBody(const Packet& packet) 00159 { 00160 int total = 0; 00161 int expected = BYTE_SIZE*2; 00162 total += packet.Read(mRequestID); 00163 total += packet.Read(mEventID); 00164 return total == expected ? total : -1; 00165 } 00166 00167 00173 void CancelEvent::ClearMessageBody() 00174 { 00175 mRequestID = mEventID = 0; 00176 } 00177 00178 00184 CancelEvent& CancelEvent::operator =(const CancelEvent& message) 00185 { 00186 if(this != &message) 00187 { 00188 CopyHeaderData(&message); 00189 mRequestID = message.mRequestID; 00190 mEventID = message.mEventID; 00191 } 00192 return *this; 00193 } 00194 00195 00196 /* End of File */