netinterfaces.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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 ipAddress READ ipAddress)
  19. Q_PROPERTY(QString method READ method)
  20. public:
  21. explicit Interface(ITF_IFACE_BLOCK &ifb, QObject *pParent = 0);
  22. virtual ~Interface(void);
  23. inline const ITF_IFACE_BLOCK & getIface(void) const {
  24. return m_ifb;}
  25. private:
  26. QString name(void) const;
  27. QString ipAddress(void) const;
  28. QString family(void) const;
  29. QString method(void) const;
  30. private:
  31. ITF_IFACE_BLOCK &m_ifb;
  32. };
  33. /////////////////////////////////////////////////////////////////////////////
  34. class NetInterfaces : public QObject, public QQmlParserStatus
  35. {
  36. Q_OBJECT
  37. Q_INTERFACES(QQmlParserStatus)
  38. public:
  39. explicit NetInterfaces(QObject *pParent = 0);
  40. virtual ~NetInterfaces(void);
  41. public:
  42. Q_INVOKABLE void reset(void);
  43. Q_INVOKABLE bool initialize(void);
  44. Q_INVOKABLE QVariantList getInterface(const QString &itfName);
  45. virtual void classBegin();
  46. virtual void componentComplete();
  47. private:
  48. ETC_NETWORK_INTERFACES m_eni;
  49. std::vector<Interface*> m_itfList;
  50. };
  51. /////////////////////////////////////////////////////////////////////////////
  52. #endif // !defined(AGD_NETINTERFACES_H__54DE87BE_1F3C_4914_A062_9CCFCB496122__INCLUDED_)