ZT_jnicache.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // Created by Brenton Bostick on 1/18/23.
  3. //
  4. #ifndef ZEROTIERANDROID_JNICACHE_H
  5. #define ZEROTIERANDROID_JNICACHE_H
  6. #include <jni.h>
  7. //
  8. // Classes
  9. //
  10. extern jclass ArrayList_class;
  11. extern jclass DataStoreGetListener_class;
  12. extern jclass DataStorePutListener_class;
  13. extern jclass EventListener_class;
  14. extern jclass Event_class;
  15. extern jclass Inet4Address_class;
  16. extern jclass Inet6Address_class;
  17. extern jclass InetAddress_class;
  18. extern jclass InetSocketAddress_class;
  19. extern jclass NodeStatus_class;
  20. extern jclass Node_class;
  21. extern jclass PacketSender_class;
  22. extern jclass PathChecker_class;
  23. extern jclass PeerPhysicalPath_class;
  24. extern jclass PeerRole_class;
  25. extern jclass Peer_class;
  26. extern jclass ResultCode_class;
  27. extern jclass Version_class;
  28. extern jclass VirtualNetworkConfigListener_class;
  29. extern jclass VirtualNetworkConfigOperation_class;
  30. extern jclass VirtualNetworkConfig_class;
  31. extern jclass VirtualNetworkDNS_class;
  32. extern jclass VirtualNetworkFrameListener_class;
  33. extern jclass VirtualNetworkRoute_class;
  34. extern jclass VirtualNetworkStatus_class;
  35. extern jclass VirtualNetworkType_class;
  36. //
  37. // Instance methods
  38. //
  39. extern jmethodID ArrayList_add_method;
  40. extern jmethodID ArrayList_ctor;
  41. extern jmethodID DataStoreGetListener_onDataStoreGet_method;
  42. extern jmethodID DataStorePutListener_onDataStorePut_method;
  43. extern jmethodID DataStorePutListener_onDelete_method;
  44. extern jmethodID EventListener_onEvent_method;
  45. extern jmethodID EventListener_onTrace_method;
  46. extern jmethodID InetAddress_getAddress_method;
  47. extern jmethodID InetSocketAddress_ctor;
  48. extern jmethodID InetSocketAddress_getAddress_method;
  49. extern jmethodID InetSocketAddress_getPort_method;
  50. extern jmethodID NodeStatus_ctor;
  51. extern jmethodID PacketSender_onSendPacketRequested_method;
  52. extern jmethodID PathChecker_onPathCheck_method;
  53. extern jmethodID PathChecker_onPathLookup_method;
  54. extern jmethodID PeerPhysicalPath_ctor;
  55. extern jmethodID Peer_ctor;
  56. extern jmethodID Version_ctor;
  57. extern jmethodID VirtualNetworkConfigListener_onNetworkConfigurationUpdated_method;
  58. extern jmethodID VirtualNetworkConfig_ctor;
  59. extern jmethodID VirtualNetworkDNS_ctor;
  60. extern jmethodID VirtualNetworkFrameListener_onVirtualNetworkFrame_method;
  61. extern jmethodID VirtualNetworkRoute_ctor;
  62. //
  63. // Static methods
  64. //
  65. extern jmethodID Event_fromInt_method;
  66. extern jmethodID InetAddress_getByAddress_method;
  67. extern jmethodID PeerRole_fromInt_method;
  68. extern jmethodID ResultCode_fromInt_method;
  69. extern jmethodID VirtualNetworkConfigOperation_fromInt_method;
  70. extern jmethodID VirtualNetworkStatus_fromInt_method;
  71. extern jmethodID VirtualNetworkType_fromInt_method;
  72. //
  73. // Instance fields
  74. //
  75. extern jfieldID Peer_address_field;
  76. extern jfieldID Peer_latency_field;
  77. extern jfieldID Peer_paths_field;
  78. extern jfieldID Peer_role_field;
  79. extern jfieldID Peer_versionMajor_field;
  80. extern jfieldID Peer_versionMinor_field;
  81. extern jfieldID Peer_versionRev_field;
  82. extern jfieldID Version_major_field;
  83. extern jfieldID Version_minor_field;
  84. extern jfieldID Version_revision_field;
  85. extern jfieldID VirtualNetworkConfig_assignedAddresses_field;
  86. extern jfieldID VirtualNetworkConfig_bridge_field;
  87. extern jfieldID VirtualNetworkConfig_broadcastEnabled_field;
  88. extern jfieldID VirtualNetworkConfig_dhcp_field;
  89. extern jfieldID VirtualNetworkConfig_dns_field;
  90. extern jfieldID VirtualNetworkConfig_enabled_field;
  91. extern jfieldID VirtualNetworkConfig_mac_field;
  92. extern jfieldID VirtualNetworkConfig_mtu_field;
  93. extern jfieldID VirtualNetworkConfig_name_field;
  94. extern jfieldID VirtualNetworkConfig_nwid_field;
  95. extern jfieldID VirtualNetworkConfig_portError_field;
  96. extern jfieldID VirtualNetworkConfig_routes_field;
  97. extern jfieldID VirtualNetworkConfig_status_field;
  98. extern jfieldID VirtualNetworkConfig_type_field;
  99. extern jfieldID VirtualNetworkDNS_domain_field;
  100. extern jfieldID VirtualNetworkDNS_servers_field;
  101. extern jfieldID VirtualNetworkRoute_flags_field;
  102. extern jfieldID VirtualNetworkRoute_metric_field;
  103. extern jfieldID VirtualNetworkRoute_target_field;
  104. extern jfieldID VirtualNetworkRoute_via_field;
  105. //
  106. // Enums
  107. //
  108. extern jobject ResultCode_RESULT_FATAL_ERROR_INTERNAL_enum;
  109. extern jobject ResultCode_RESULT_OK_enum;
  110. void setupJNICache(JavaVM *vm);
  111. void teardownJNICache(JavaVM *vm);
  112. #endif // ZEROTIERANDROID_JNICACHE_H