00001 00002 #include <time.h> 00003 #include "Utility.h" 00004 #include "Message.h" 00005 00006 namespace rwil { 00007 Message::Message(std::string deviceName, std::string command) : m_when(time(0)) 00008 { 00009 m_parameters["device"] = deviceName; 00010 m_parameters["command"] = command; 00011 } 00012 00013 Message::Message(std::string deviceName, std::string command, time_t when) : m_when(when) 00014 { 00015 m_parameters["device"] = deviceName; 00016 m_parameters["command"] = command; 00017 } 00018 00019 Message::Message(std::map<std::string,std::string> params) : m_parameters(params), m_when(time(0)) 00020 { 00021 } 00022 00023 Message::Message(std::map<std::string,std::string> params, time_t when) : m_parameters(params), m_when(when) 00024 { 00025 } 00026 00027 Message::Message(const Message &msg) : m_parameters(msg.m_parameters), m_when(msg.m_when) {} 00028 00029 00030 const std::string& Message::GetDevice() const { return m_parameters["device"]; } 00031 const std::string& Message::GetCommand() const { return m_parameters["command"]; } 00032 00033 bool Message::operator<(const Message& rhs) 00034 { 00035 return this->m_when < rhs.m_when; 00036 } 00037 00038 void Message::SetParam(std::string n, std::string param) { m_parameters[n] = param; } 00039 std::string Message::GetParam(std::string n) const { return m_parameters[n]; } 00040 00041 time_t Message::GetWhen() const { return m_when; } 00042 const std::map<std::string,std::string>& Message::GetMap() const { return m_parameters; } 00043 00044 00045 EncapsulatingMessage::EncapsulatingMessage(std::string encapsulateCommand, const Message &oldMessage) : Message(oldMessage.GetMap()) 00046 { 00047 this->SetParam("message", encapsulateCommand); 00048 } 00049 EncapsulatingMessage::EncapsulatingMessage(std::string encapsulateCommand, const Message & oldMessage, time_t when) : Message(oldMessage.GetMap(), when) 00050 { 00051 this->SetParam("message", encapsulateCommand); 00052 } 00053 00054 FailedAfterRetryingMessage::FailedAfterRetryingMessage(const Message & oldMessage) : EncapsulatingMessage("Failed after retrying message", oldMessage) {} 00055 00056 SetRetriesMessage::SetRetriesMessage(std::string deviceName, unsigned retries) : Message(deviceName, "SetRetries") 00057 { 00058 this->SetParam("retries", IntToString(retries)); 00059 } 00060 }