1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // Created by zx on 2020/6/18.
- //
- #ifndef NNXX_TESTS_LOCATE_COMMUNICATOR_H
- #define NNXX_TESTS_LOCATE_COMMUNICATOR_H
- #include <mutex>
- #include "communication_socket_base.h"
- #include "singleton.h"
- #include "measure_message.pb.h"
- #include "error_code.h"
- #include "thread_safe_map.h"
- namespace message
- {
- bool operator<(const message::Measure_request_msg& msg1,const message::Measure_request_msg& msg2);
- bool operator==(const message::Measure_request_msg& msg1,const message::Measure_request_msg& msg2);
- }
- class Locate_communicator: public Singleton<Locate_communicator>, public Communication_socket_base
- {
- friend Singleton<Locate_communicator>;
- public:
- virtual ~Locate_communicator();
- Error_manager locate_request(message::Measure_request_msg& request,message::Measure_response_msg& result);
- /*
- * 提前取消请求
- */
- Error_manager cancel_request(message::Measure_request_msg& request);
- Error_manager check_statu();
- protected:
- Locate_communicator();
- virtual Error_manager encapsulate_msg(Communication_message* message);
- virtual Error_manager execute_msg(Communication_message* p_msg);
- /*
- * 检测消息是否可被处理
- */
- virtual Error_manager check_msg(Communication_message* p_msg);
- /*
- * 心跳发送函数,重载
- */
- virtual Error_manager encapsulate_send_data();
- //检查消息是否可以被解析, 需要重载
- virtual Error_manager check_executer(Communication_message* p_msg);
- /*
- * 根据接收到的response,生成对应的 request
- */
- message::Measure_request_msg create_request_by_response(message::Measure_response_msg& msg);
- protected:
- thread_safe_map<message::Measure_request_msg,message::Measure_response_msg> m_response_table;
- Communication_message m_measure_statu_msg;
- };
- #endif //NNXX_TESTS_LOCATE_COMMUNICATOR_H
|