📄 bmssnmpagent.h
字号:
#pragma once
#include "BmsSnmpNode.h"
#include <IceUtil/Mutex.h>
#include <list>
#include <map>
#include <snmp.h>
#include <mgmtapi.h>
class SnmpTableFiled
{
public:
SnmpTableFiled();
virtual ~SnmpTableFiled();
void setOid(std::string Oid);
void setValues(std::string val);
std::string& getOid();
std::string& getValues();
protected:
private:
std::string _Oid;
std::string _value;
};
class BmsSnmpAgent
{
public:
BmsSnmpAgent(void);
virtual ~BmsSnmpAgent(void);
typedef ::std::list<BmsSnmpNode> BmsSnmpNodeList;
typedef ::std::map<::std::string,BmsSnmpNode> BmsSnmpNodeMap;
typedef std::list<SnmpTableFiled>SnmpTable;
typedef SnmpTable::iterator SnmpTableItem;
public:
//************************************
// Method: iniAgent
// FullName: BmsSnmpAgent::iniAgent
// Access: public
// Returns: bool
// Qualifier:
// Parameter: const std::string & IpAd ip地址
// Parameter: const std::string & commStr 默认链接方式 public/private
//************************************
bool iniAgent(const std::string IpAd ,const std::string commStr);
//************************************
// Method: connectSnmpServer
// FullName: BmsSnmpAgent::connectSnmpServer
// Access: public
// Returns: bool
// Qualifier:链接到snmp服务器
//************************************
bool connectSnmpServer();
//************************************
// Method: reConnectSnmpServer
// FullName: BmsSnmpAgent::reConnectSnmpServer
// Access: public
// Returns: bool
// Qualifier: 重新连接数据
//************************************
bool reConnectSnmpServer();
//************************************
// Method: getLastErMsg
// FullName: BmsSnmpAgent::getLastErMsg
// Access: public
// Returns: void
// Qualifier: 获取最后一次错误信息
// Parameter: ::std::string & Msg
//************************************
void getLastErMsg(::std::string &Msg);
//************************************
// Method: disConnectSnmpServer
// FullName: BmsSnmpAgent::disConnectSnmpServer
// Access: public
// Returns: bool
// Qualifier: 断开snmp服务器
//************************************
bool disConnectSnmpServer();
//************************************
// Method: UpdateNodeMapOidValueByOid
// FullName: BmsSnmpAgent::UpdateNodeMapOidValueByOid
// Access: public
// Returns: bool
// Qualifier: 根据传入的node map中node的oid获取oid values
// Parameter: BmsSnmpNodeMap &
//************************************
bool UpdateNodeMapOidValueByOid(BmsSnmpNodeMap&);
public:
//************************************
// Method: walkNode
// FullName: BmsSnmpAgent::walkNode
// Access: public
// Returns: bool
// Qualifier: 遍历一个oid节点
// Parameter: const std::string & Oid
// Parameter: BmsSnmpNodeList & NodeList
//************************************
bool walkNode(const std::string &Oid,BmsSnmpNodeList& NodeList);
//************************************
// Method: walkNode
// FullName: BmsSnmpAgent::walkNode
// Access: public
// Returns: bool
// Qualifier: 遍历一个oid节点
// Parameter: const std::string & Oid
// Parameter: std::list<std::string> *TableList
//************************************
bool walkNode(const std::string &Oid,SnmpTable*TableList);
//************************************
// Method: getNodeValue
// FullName: BmsSnmpAgent::getNodeValue
// Access: public
// Returns: bool
// Qualifier: 根据oid 获取相应的值
// Parameter: const std::string & Oid
//************************************
bool getNodeValue(const std::string &Oid,std::string &OidValues);
bool setNodeValue(const std::string &Oid);
int GetRequest(AsnObjectIdentifier &asnOid ,std::string &OidValues);
char * SNMP_AnyToStr(AsnObjectSyntax *sAny);
void PrintStatusError(int nErrorStatus, char *&szErrorMsg);
static void EncodeNodeMapToJson( std::string &serStr ,BmsSnmpAgent::BmsSnmpNodeMap& nodeMap);
private:
::std::string m_ip;
::std::string m_commStr;
bool m_isIni;
bool m_isConn;
std::string m_lastErMsg;
::IceUtil::Mutex m_mutex;
LPSNMP_MGR_SESSION m_lpMgrSession;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -