mirror of
https://github.com/Hizenberg469/Generic_Notification_Chain.git
synced 2026-04-19 18:12:25 +03:00
NFC
This commit is contained in:
96
notif.h
Normal file
96
notif.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: notif.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: 10/03/24 12:02:16 PM IST
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: YOUR NAME (),
|
||||
* Organization:
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
#ifndef __NOTIF_CHAIN_
|
||||
#define __NOTIF_CHAIN_
|
||||
|
||||
#include <stddef.h> /* for size_t */
|
||||
#include "utils.h"
|
||||
#include "gluethread/glthread.h"
|
||||
|
||||
#define MAX_NOTIF_KEY_SIZE 64
|
||||
|
||||
typedef enum{
|
||||
|
||||
NFC_UNKNOWN,
|
||||
NFC_SUB,
|
||||
NFC_ADD,
|
||||
NFC_MOD,
|
||||
NFC_DEL,
|
||||
} nfc_op_t;
|
||||
|
||||
static inline char *
|
||||
nfc_get_str_op_code(nfc_op_t nfc_op_code) {
|
||||
|
||||
static char op_code_str[16];
|
||||
|
||||
switch(nfc_op_code) {
|
||||
|
||||
case NFC_UNKNOWN:
|
||||
return "NFC_UNKNOWN";
|
||||
case NFC_SUB:
|
||||
return "NFC_SUB";
|
||||
case NFC_ADD:
|
||||
return "NFC_ADD";
|
||||
case NFC_MOD:
|
||||
return "NFC_MOD";
|
||||
case NFC_DEL:
|
||||
return "NFC_DEL";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
typedef void (*nfc_app_cb)(void *, size_t, char *, uint32_t);
|
||||
|
||||
typedef struct notif_chain_elem_{
|
||||
|
||||
char key[MAX_NOTIF_KEY_SIZE];
|
||||
size_t key_size;
|
||||
uint32_t subs_id;
|
||||
bool_t is_key_set;
|
||||
nfc_app_cb app_cb;
|
||||
glthread_t glue;
|
||||
} notif_chain_elem_t;
|
||||
GLTHREAD_TO_STRUCT(glthread_glue_to_notif_chain_elem,
|
||||
notif_chain_elem_t, glue);
|
||||
|
||||
typedef struct notif_chain_ {
|
||||
|
||||
char nfc_name[64];
|
||||
glthread_t notif_chain_head;
|
||||
} notif_chain_t;
|
||||
|
||||
notif_chain_t *
|
||||
nfc_create_new_notif_chain(char *notif_chain_name);
|
||||
|
||||
void
|
||||
nfc_delete_all_nfce(notif_chain_t *nfc);
|
||||
|
||||
void
|
||||
nfc_register_notif_chain(notif_chain_t *nfc,
|
||||
notif_chain_elem_t *nfce);
|
||||
|
||||
void
|
||||
nfc_invoke_notif_chain(notif_chain_t *nfc,
|
||||
void *arg, size_t arg_size,
|
||||
char *key, size_t key_size,
|
||||
nfc_op_t nfc_op_code);
|
||||
|
||||
#endif /* __NOTIF_CHAIN_ */
|
||||
Reference in New Issue
Block a user