netinterfaces.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // netinterfaces.h :
  2. //
  3. #if !defined(AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_)
  4. #define AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_
  5. #include <vector>
  6. #include <QObject>
  7. #include <QList>
  8. #include <QQmlListProperty>
  9. #include <qqmlparserstatus.h>
  10. #include <gfa/gfanet.h>
  11. /////////////////////////////////////////////////////////////////////////////
  12. // netinterfaces.h - Declarations:
  13. class Interface : public QObject
  14. {
  15. Q_OBJECT
  16. Q_PROPERTY(QString name READ name)
  17. Q_PROPERTY(QString family READ family)
  18. Q_PROPERTY(QString method READ method)
  19. // static
  20. Q_PROPERTY(QString ipAddress READ ipAddress)
  21. Q_PROPERTY(QString netMask READ netMask)
  22. Q_PROPERTY(QString gateway READ gateway)
  23. Q_PROPERTY(QStringList dnsServers READ dnsServers)
  24. // dhcp
  25. public:
  26. explicit Interface(ITF_IFACE_BLOCK &ifb, QObject *pParent = 0);
  27. virtual ~Interface(void);
  28. inline const ITF_IFACE_BLOCK & getIface(void) const {
  29. return m_ifb;}
  30. enum AddressFamily
  31. {
  32. AF_Unknown = -1,
  33. AF_Inet,
  34. AF_Inet6,
  35. AF_Ipx,
  36. AF_Can,
  37. AF_Invalid
  38. };
  39. Q_ENUMS(AddressFamily)
  40. private:
  41. QString name(void) const;
  42. QString family(void) const;
  43. QString method(void) const;
  44. QString ipAddress(void) const;
  45. QString netMask(void) const;
  46. QString gateway(void) const;
  47. QStringList dnsServers(void) const;
  48. private:
  49. ITF_IFACE_BLOCK &m_ifb;
  50. QStringList m_dnsList;
  51. };
  52. /////////////////////////////////////////////////////////////////////////////
  53. class NetInterfaces : public QObject, public QQmlParserStatus
  54. {
  55. Q_OBJECT
  56. Q_INTERFACES(QQmlParserStatus)
  57. public:
  58. explicit NetInterfaces(QObject *pParent = 0);
  59. virtual ~NetInterfaces(void);
  60. public:
  61. Q_INVOKABLE void reset(void);
  62. Q_INVOKABLE bool initialize(void);
  63. Q_INVOKABLE QVariantList getInterface(const QString &itfName);
  64. virtual void classBegin();
  65. virtual void componentComplete();
  66. private:
  67. ETC_NETWORK_INTERFACES m_eni;
  68. std::vector<Interface*> m_itfList;
  69. };
  70. /////////////////////////////////////////////////////////////////////////////
  71. #endif // !defined(AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_)