eis/inc/zsub/HandleMessage.h

77 lines
1.5 KiB
C++

#pragma once
#include<iostream>
#include<common/L2Event.h>
#include<zlib/zoneDef.h>
#include<zlib/MemTable.hpp>
#include<zsub/MessageDefine.h>
#include<glob/ProxyMag.h>
#include<proxy/MessageICE.h>
#include<sstream>
#include<string.h>
#include<glob/BinaryTele.h>
#include<IceUtil/Thread.h>
#include<map>
#include<string>
#include<list>
#ifdef _WIN32
#include<io.h>
#include<fstream>
#include<sstream>
#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<float> > 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;
};