]> git.meshlink.io Git - meshlink/blobdiff - test/blackbox/common/mesh_event_handler.h
Check the return value of node_write_config() while handling invitations.
[meshlink] / test / blackbox / common / mesh_event_handler.h
index 4300affb39cdbd57f54fb0dfbd54b70b1cdb17ad..609b1cf0c9d460e312c1e6a7011573487f19497a 100644 (file)
@@ -36,9 +36,6 @@
 #include <time.h>
 #include <stdint.h>
 
-/// Maximum length of the mesh event payload
-#define PAYLOAD_MAX_SIZE 1000
-
 /// mesh events
 // TODO: Add more mesh event if required.
 typedef enum {
@@ -55,10 +52,17 @@ typedef enum {
        META_RECONN_FAILURE,
        MESH_DATA_RECEIVED,
        NODE_STARTED,
+       NODE_LEFT,
        NODE_RESTARTED,
        NODE_JOINED,
+       NODE_JOINED1,
+       NODE_JOINED2,
+       NODE_JOINED3,
        PORT_NO,
+       OPTIMAL_PMTU_PEER,
+       OPTIMAL_PMTU_RELAY,
        ERR_NETWORK,
+       SIG_ABORT,
        MESH_DATA_VERIFED,
        CHANNEL_OPENED,
        CHANNEL_REQ_RECIEVED,
@@ -68,24 +72,32 @@ typedef enum {
        INCOMING_META_CONN,
        OUTGOING_META_CONN,
        AUTO_DISCONN,
-
+       MESH_EVENT_COMPLETED,
        MAX_EVENT           // Maximum event enum
 } mesh_event_t;
 
+extern const char *event_status[];
+
 /// mesh event UDP packet
-typedef struct mesh_event_payload {
-       uint32_t      client_id;
+typedef struct  mesh_event_payload {
+       void          *payload;
        mesh_event_t  mesh_event;
-       uint16_t      payload_length;
-       uint8_t       payload[PAYLOAD_MAX_SIZE];
+       uint16_t      client_id;
+       uint32_t       payload_length;
 } mesh_event_payload_t;
 
+struct cond_flag {
+       pthread_mutex_t mutex;
+       pthread_cond_t cond;
+       bool flag;
+};
+
 /// callback for handling the mesh event
 /** mesh event callback called from wait_for_event() if the mesh event UDP server gets a mesh event.
  *
  *  @param mesh_event_packet    packet containing client-id, mesh event & payload (if any).
  */
-typedef void (*mesh_event_callback_t)(mesh_event_payload_t mesh_event_packet);
+typedef bool (*mesh_event_callback_t)(mesh_event_payload_t mesh_event_packet);
 
 /// Creates an UDP server for listening mesh events.
 /** This function creates an UDP socket, binds it with given interface address and returns a NULL
@@ -106,7 +118,7 @@ extern char *mesh_event_sock_create(const char *ifname);
  *  @param callback     callback which handles the mesh event packet.
  *  @param timeout      timeout for which the the function has to wait for the event.
  *
- *  @return             This function returns true if a mesh event occured else false if timeout exceeded.
+ *  @return             This function returns true if a mesh event occurred else false if timeout exceeded.
  */
 extern bool wait_for_event(mesh_event_callback_t callback, int timeout);
 
@@ -119,12 +131,12 @@ extern bool wait_for_event(mesh_event_callback_t callback, int timeout);
  *  @param payload          Payload can also be attached along with the mesh event if any, else NULL can
  *                          can be specified.
  *  @param payload_length   Length of the payload if specified else 0 can be specified.
- *                                                                                                      the maximum payload size can be upto PAYLOAD_MAX_SIZE and if the
+ *                                                                                                      the maximum payload size can be up to PAYLOAD_MAX_SIZE and if the
  *                          PAYLOAD_MAX_SIZE macro is changed it should not exceed the UDP datagram size.
  *
  *  @return                  This function returns true on success else returns false.
  */
-extern bool mesh_event_sock_send(int client_id, mesh_event_t event, void *payload, size_t payload_length);
+extern bool mesh_event_sock_send(int client_id, mesh_event_t event, const void *payload, size_t payload_length);
 
 /// Imports the server address, saves it and opens an UDP client socket.
 /** This function creates an UDP socket, binds it with given interface address and returns a NULL
@@ -137,5 +149,8 @@ extern bool mesh_event_sock_send(int client_id, mesh_event_t event, void *payloa
  */
 extern void mesh_event_sock_connect(const char *server_address);
 
-bool wait_for_event_only(mesh_event_callback_t callback, int t, mesh_event_t event);
+extern void mesh_event_destroy(void);
+
+extern void mesh_events_flush(void);
+
 #endif // _MESH_EVENT_HANDLER_H_