#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #endif using namespace std; class HandleMessage : public IceUtil::Thread { public: HandleMessage(void); ~HandleMessage(void); virtual void run(); void SplitSignal(const char* msg,int length); /* 解析FDAA 所有变量名与通道号 */ void SplitSignalName(const char* msg,int length); protected: /*自定义组织电文的其它来源数据*/ virtual void AssembleOther(const string& address,int i); /*自定义发送电文电文*/ virtual void MessageSend(); /*电文转发*/ virtual short Proxy(int eventNo, Ice::ByteSeq seq); private: void AssembleTeles(); void AssembleTele(); bool CheckCache(); void CachePop(); void CachePopOne(); protected: MessageICEPrx ztrk_proxy; MessageICEPrx zmtr_proxy; MessageICEPrx znode_proxy; MessageICEPrx zmc_proxy; BinaryTele* p_tele; BinaryTele* p_btel; map< string,list > mp_tagdat; map< string ,string > mp_tagid; MP_ADDR mp_addr; FDA_DATA* mp_fdacache; int id; std::string m_path; private: bool m_isrun; bool m_isfirst; short m_mintagsize; short m_maxtagsize; };