/********************************************************************* * * 文 件: Snapshot.h 启动文件 * * 版权所有: Shanghai Baosight Software Co., Ltd. * * 概述://TODO请添加本文件包含功能详细描述 * ://TODO * ://TODO * * 版本历史 * %USER% *********************************************************************/ #ifndef __SNAPSHOT_h__ #define __SNAPSHOT_h__ #include #include #include #include #include #include #include #include #include #include namespace baosight { const int IHD_SIZE_MAX = 10000; struct IHD_TAGID{ int size; unsigned int tagID[IHD_SIZE_MAX]; }; class Snapshot { public: Snapshot(); virtual ~Snapshot(); public: virtual int Dispatch(int eventNo,const ::Ice::ByteSeq& seq) = 0; protected: virtual int CacheCase(int eventNo, const char* seq) = 0; virtual int StatCase(int eventNo, const char* seq) = 0; virtual int TeleCase(int eventNo, const char* seq) = 0; virtual int iMultiLinkCase(int eventNo, const char* seq) = 0; protected: int ConnectDB(); void DisConnectDB(int retcode); int SnapShotLocal(int eventNo, int tagitemcount, bool isArchiving); int GetTagIDs(int eventNo,bool isArchiving = true); int IDBStorage(TeleItem &item, int tagItemCount, bool Statcase = 0, float value=0); int IDBStorage(char type, int tagItemCount, const string& value); protected: int CheckTagName(HD3HANDLE hServer,string szTagName,HD3_TAG_TYPE tagType,uint32 &tagID,bool isArchiving = true); int CheckTagNames(HD3HANDLE hServer,int32 nTagNum,char szTagNames[][TAGNAME_MAXLEN],HD3_TAG_TYPE tagTypes[],uint32 tagID[],bool isArchiving = true); protected: HD3Connection conn; bool m_isconn; protected: BinaryTele* mp_btele; HD3HANDLE hServer; string nodeName; HD3Record snapshotsSaved[IHD_SIZE_MAX]; int32 nErrorCodes[IHD_SIZE_MAX]; char tagNames[IHD_SIZE_MAX][TAGNAME_MAXLEN]; char tagChinese[IHD_SIZE_MAX][TAGNAME_MAXLEN]; HD3_TAG_TYPE tagTypes[IHD_SIZE_MAX]; int tagItemCount; IHD_TAGID m_tagids; map mv_tagids; }; } #endif