⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devmgr.h

📁 它是一个可以实时交互的嵌入式软件系统
💻 H
字号:
// DevMgr.h: interface for the CDevMgr class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _DEVMGR_H_
#define _DEVMGR_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "NetSDKDemo.h"
#pragma warning(disable:4786)
#include <list>

using namespace std;

class CDevMgr  
{
public:

	/*
	//设备信息列表结构
	typedef struct _DeviceNode {
		char UserNanme[20]; //登录用户名
		char Name[20];   //设备名称
		char IP[20];     //设备IP地址字符
		LONG LoginID;    //设备登录iD
		NET_DEVICEINFO Info;  //设备信息
		NET_CLIENT_STATE State; //设备状态
		DWORD TotalKbps;     //设备当前总码流
		DWORD Max_Kbps;     //设置最大网络流量
	}DeviceNode;
	*/

	class SearchDevByHandle;
	friend class SearchDevByHandle;

public:
	CDevMgr();
	~CDevMgr();

	static CDevMgr& GetDevMgr(void);

	//protected copy object
private:
	CDevMgr(const CDevMgr&);
	CDevMgr& operator=(const CDevMgr&);

public:

	//加入节点
	int  PushBack(DeviceNode* node);
	
	//删除节点
	int  DelNode(LONG lLoginID);

	//回调函数返回值说明:1 结束枚举, 0 继续枚举
	void For_EachDev(int (* cbForEach)(const DeviceNode& node, DWORD dwUser), DWORD dwUser);
	
	//返回的数据不能做长久保存,下次要重新获取
	int  GetDev(LONG lLoginID, DeviceNode& node);

	//写入回调出来的报警数据
	int SetAlarmInfo(LONG lLoginID, LONG lCommand, char *pchDVRIP, LONG nDVRPort, 
						  char *pBuf, DWORD dwBufLen);

	BOOL IsOnline(LONG lLoginID);

	BOOL IsOnline(DeviceNode* node);

private:

	list<DeviceNode*> m_lstDevice;
	CRITICAL_SECTION  m_cs;
	
};

class CDevMgr::SearchDevByHandle
{
	LONG m_lLoginID;
public:
	SearchDevByHandle(const LONG& lLoginID):m_lLoginID(lLoginID){}

	bool operator()(const DeviceNode*& node)
	{
		if (!node)
		{
			return false;
		}

		return (m_lLoginID==node->LoginID)?true:false;
	}
};

#endif // _DEVMGR_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -