Go to the documentation of this file.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 #ifndef FLATHEADERS
00032 #include "simple_message/message_handler.h"
00033 #include "simple_message/log_wrapper.h"
00034 #else
00035 #include "message_handler.h"
00036 #include "log_wrapper.h"
00037 #endif
00038
00039 namespace industrial
00040 {
00041 namespace message_handler
00042 {
00043
00044 using namespace industrial::smpl_msg_connection;
00045 using namespace industrial::simple_message;
00046
00047 MessageHandler::MessageHandler(void)
00048 {
00049 this->setConnection(NULL);
00050 this->setMsgType(StandardMsgTypes::INVALID);
00051 }
00052
00053
00054 MessageHandler::~MessageHandler(void)
00055 {
00056 }
00057
00058
00059 bool MessageHandler::init(int msg_type, SmplMsgConnection* connection)
00060 {
00061 bool rtn = false;
00062
00063 if (StandardMsgTypes::INVALID != msg_type)
00064 {
00065 if (NULL != connection)
00066 {
00067 this->setConnection(connection);
00068 this->setMsgType(msg_type);
00069 rtn = true;
00070 }
00071 else
00072 {
00073 LOG_ERROR("Message connection is NULL");
00074 rtn = false;
00075 }
00076 }
00077 else
00078 {
00079 LOG_ERROR("Message handler type: %d, not valid", msg_type);
00080 rtn = false;
00081 }
00082
00083 return rtn;
00084 }
00085
00086
00087
00088 bool MessageHandler::callback(SimpleMessage & in)
00089 {
00090 bool rtn = false;
00091
00092 if (validateMsg(in))
00093 {
00094 this->internalCB(in);
00095 }
00096 else
00097 {
00098 LOG_ERROR("Invalid message passed to callback");
00099 rtn = true;
00100 }
00101
00102 return rtn;
00103 }
00104
00105
00106 bool MessageHandler::validateMsg(SimpleMessage & in)
00107 {
00108 bool rtn = false;
00109
00110 if (in.validateMessage())
00111 {
00112 if (in.getMessageType() == this->getMsgType())
00113 {
00114 rtn = true;
00115 }
00116 else
00117 {
00118 LOG_WARN("Message type: %d, doesn't match handler type: %d",
00119 in.getMessageType(), this->getMsgType());
00120 rtn = false;
00121 }
00122 }
00123 else
00124 {
00125 LOG_WARN("Passed in message invalid");
00126 }
00127
00128 return rtn;
00129
00130 }
00131
00132 }
00133 }