📄 upnp.h
字号:
#ifndef MYUPNP_H_
#include "bt.h"
typedef bool (*PUPNPCALLBACK)(void* lp);
const int UPNPREPEAT = 5;
const int UPNPDELAY = 6;
class QMyUPNP
{
public:
QMyUPNP();
QMyUPNP(const QString& device);
~QMyUPNP();
void Clear();
bool Comfirmed()const{return (Valid()&&!m_controlurl.IsEmpty());}
bool Search(const QString& name, const char* type="service", int repeat=UPNPREPEAT, int delay=UPNPDELAY, int version=1, PUPNPCALLBACK lpCall=NULL);
bool GetDescription(int delay=UPNPDELAY);
QString GetProperty(const QString& name, const QString& rsp, int delay=UPNPDELAY);
bool InvokeCommand(const QString& name, QStringList& args,int delay=UPNPDELAY);
bool SetDescriptionUrl(const QString& name, const QString& descri);
void SetDeviceName(const QString& p){m_devicename = p;}
QString GetDeviceName()const{return m_devicename;}
QString GetDescriptionUrl()const{return m_description;}
QString GetControlUrl()const{return m_controlurl;}
QString GetBaseUrl()const{return m_baseurl;}
QString GetDescriptionName()const{return m_name;}
QString GetFriendlyName()const{return m_friendlyname;}
QString GetModelName()const{return m_modelname;}
QMyUPNP& operator=(const QMyUPNP& up);
protected:
bool Valid()const{return (!m_name.IsEmpty()&&!m_description.IsEmpty());}
void InternalClear();
bool InternalSearch(const QString& name, const char* type, int repeat, int delay, int version, ulong ip, PUPNPCALLBACK lpCall);
bool InternalSearch2(const QString& name, const char* type, int repeat, int delay, int version, ulong ip, PUPNPCALLBACK lpCall);
QString m_devicename;
QString m_name;
QString m_description;
QString m_baseurl;
QString m_controlurl;
QString m_friendlyname;
QString m_modelname;
int m_version;
};
inline QMyUPNP& QMyUPNP::operator=(const QMyUPNP& upnp)
{
if(this==&upnp)return *this;
m_devicename = upnp.m_devicename;
m_name = upnp.m_name;
m_description = upnp.m_description;
m_baseurl = upnp.m_baseurl;
m_controlurl = upnp.m_controlurl;
m_friendlyname = upnp.m_friendlyname;
m_modelname = upnp.m_modelname;
m_version = upnp.m_version;
return *this;
}
#define UPNPPORTMAP0 "WANIPConnection"
#define UPNPPORTMAP1 "WANPPPConnection"
#define UPNPGETEXTERNALIP "GetExternalIPAddress","NewExternalIPAddress"
#define UPNPADDPORTMAP "AddPortMapping"
#define UPNPDELPORTMAP "DeletePortMapping"
void GetAddPortmapArgs(QStringList& args, int eport, int iport, const char* iclient,
const char* descri, bool enabled = true, int dur = 0,
const char* type = "TCP", const char* remote = NULL);
void GetDeletePortmapArgs(QStringList& args, int eport, const char* type = "TCP", const char* remote=NULL);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -