123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- // netinterfaces.h :
- //
- #if !defined(AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_)
- #define AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_
- #include <vector>
- #include <QObject>
- #include <QList>
- #include <QQmlListProperty>
- #include <qqmlparserstatus.h>
- #include <gfa/gfanet.h>
- /////////////////////////////////////////////////////////////////////////////
- // netinterfaces.h - Declarations:
- class Emitter
- {
- public:
- virtual void emitError(const char *pszFormatStr, ...) const = 0;
- };
- /////////////////////////////////////////////////////////////////////////////
- class IPv4Address : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(QString address READ address WRITE set_address NOTIFY address_Changed)
- Q_PROPERTY(int b0 READ b0 WRITE set_b0 NOTIFY b0_Changed)
- Q_PROPERTY(int b1 READ b1 WRITE set_b1 NOTIFY b1_Changed)
- Q_PROPERTY(int b2 READ b2 WRITE set_b2 NOTIFY b2_Changed)
- Q_PROPERTY(int b3 READ b3 WRITE set_b3 NOTIFY b3_Changed)
- public:
- explicit IPv4Address(struct in_addr &addr, const Emitter &errHandler, QObject *pParent = 0);
- virtual ~IPv4Address(void);
- private:
- QString address(void) const;
- int b0(void) const;
- int b1(void) const;
- int b2(void) const;
- int b3(void) const;
-
- void set_address(const QString &addr);
- void set_b0(int b);
- void set_b1(int b);
- void set_b2(int b);
- void set_b3(int b);
- signals:
- void address_Changed(const QString&);
- void b0_Changed(int);
- void b1_Changed(int);
- void b2_Changed(int);
- void b3_Changed(int);
- private:
- struct in_addr &m_addr;
- const Emitter &m_errHandler;
- };
- /////////////////////////////////////////////////////////////////////////////
- class Interface : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(QString name READ name CONSTANT)
- Q_PROPERTY(QString afName READ afName NOTIFY afName_Changed)
- Q_PROPERTY(int af READ af WRITE set_af NOTIFY af_Changed)
- Q_PROPERTY(QString method READ method)
- Q_PROPERTY(int itfMethod READ itfMethod)
- // static
- Q_PROPERTY(IPv4Address* ipAddress READ ipAddress CONSTANT)
- Q_PROPERTY(IPv4Address* netMask READ netMask CONSTANT)
- Q_PROPERTY(IPv4Address* gateway READ gateway CONSTANT)
- Q_PROPERTY(IPv4Address* bcastAddress READ bcastAddress CONSTANT)
- Q_PROPERTY(IPv4Address* ptpAddress READ ptpAddress CONSTANT)
- Q_PROPERTY(QQmlListProperty<IPv4Address> dnsServer READ dnsServer CONSTANT)
- // dhcp
- public:
- explicit Interface(ITF_IFACE_BLOCK &ifb, const Emitter &errHandler, QObject *pParent = 0);
- virtual ~Interface(void);
- inline const ITF_IFACE_BLOCK & getIface(void) const {
- return m_ifb;}
- enum AddressFamily
- {
- #if 0
- AF_Unknown = -1,
- AF_Inet,
- AF_Inet6,
- AF_Ipx,
- AF_Can,
- AF_Invalid
- #else
- AF_Unknown = 0,
- AF_Inet = 0x0001,
- AF_Inet6 = 0x0002,
- AF_Ipx = 0x0004,
- AF_Can = 0x0008,
- AF_Invalid = 0x0010
- #endif
- };
- Q_ENUMS(AddressFamily)
- enum ItfMethod
- {
- #if 0
- IM_Unknown = -1,
- IM_Static,
- IM_Dhcp,
- IM_Manual,
- IM_BootP,
- IM_Tunnel,
- IM_Ppp,
- IM_WvDial,
- IM_IpV4ll,
- IM_Loopback,
- IM_Auto,
- IM_Invalid
- #else
- IM_Unknown = 0,
- IM_Static = 0x0001,
- IM_Dhcp = 0x0002,
- IM_Manual = 0x0004,
- IM_BootP = 0x0008,
- IM_Tunnel = 0x0010,
- IM_Ppp = 0x0020,
- IM_WvDial = 0x0040,
- IM_IpV4ll = 0x0080,
- IM_Loopback = 0x0100,
- IM_Auto = 0x0200,
- IM_Invalid = 0x0400
- #endif
- };
- Q_ENUMS(ItfMethod)
- private:
- QString name(void) const;
- QString afName(void) const;
- int af(void) const;
- void set_af(int af);
- QString method(void) const;
- int itfMethod(void) const;
- IPv4Address* ipAddress(void);
- IPv4Address* netMask(void);
- IPv4Address* gateway(void);
- IPv4Address* bcastAddress(void);
- IPv4Address* ptpAddress(void);
- QQmlListProperty<IPv4Address> dnsServer(void);
- signals:
- void afName_Changed(void);
- void af_Changed(int af);
- private:
- ITF_IFACE_BLOCK &m_ifb;
- IPv4Address m_ipAddr;
- IPv4Address m_netmask;
- IPv4Address m_gateway;
- IPv4Address m_bcastAddr;
- IPv4Address m_ptpAddr;
- QList<IPv4Address*> m_dnsList;
- const Emitter &m_errHandler;
- };
- /////////////////////////////////////////////////////////////////////////////
- class NetInterfaces : public QObject, public QQmlParserStatus, public Emitter
- {
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<Interface> interfaces READ interfaces NOTIFY interfaces_Changed)
- Q_PROPERTY(QQmlListProperty<Interface> filteredInterfaces READ filteredInterfaces NOTIFY filteredInterfaces_Changed)
- Q_PROPERTY(QString itfFilterName READ itfFilterName WRITE set_itfFilterName NOTIFY itfFilterName_Changed)
- Q_PROPERTY(int itfFilterAF READ itfFilterAF WRITE set_itfFilterAF NOTIFY itfFilterAF_Changed)
- Q_PROPERTY(int itfFilterMethod READ itfFilterMethod WRITE set_itfFilterMethod NOTIFY itfFilterMethod_Changed)
- public:
- explicit NetInterfaces(QObject *pParent = 0);
- virtual ~NetInterfaces(void);
- public:
- Q_INVOKABLE void reset(void);
- Q_INVOKABLE bool initialize(void);
- Q_INVOKABLE bool save(void);
- Q_INVOKABLE bool saveAs(const QString &path);
- // Q_INVOKABLE QVariantList getInterface(const QString &itfName);
- Q_INVOKABLE QVariant newInterface(QString name, int af, int method);
- virtual void classBegin();
- virtual void componentComplete();
- virtual void emitError(const char *pszFormatStr, ...) const;
- signals:
- void interfaces_Changed(void);
- void filteredInterfaces_Changed(void);
- void itfFilterName_Changed(const QString &val);
- void itfFilterAF_Changed(int af);
- void itfFilterMethod_Changed(int method);
- private:
- QQmlListProperty<Interface> interfaces(void);
- QQmlListProperty<Interface> filteredInterfaces(void);
- const QString& itfFilterName(void) const;
- void set_itfFilterName(const QString &val);
- int itfFilterAF(void) const;
- void set_itfFilterAF(int nval);
- int itfFilterMethod(void) const;
- void set_itfFilterMethod(int method);
- signals:
- void sigError(QString msg) const;
- private:
- ETC_NETWORK_INTERFACES m_eni;
- QList<Interface*> m_interfaces;
- QList<Interface*> m_filteredInterfaces;
- QString m_itfFilterName;
- int m_itfFilterAF;
- int m_itfFilterMethod;
- };
- /////////////////////////////////////////////////////////////////////////////
- #endif // !defined(AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_)
|