52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
|
/**
|
||
|
* @file message_center.h
|
||
|
* @author NeoZeng neozng1@hnu.edu.cn
|
||
|
* @brief 这是一个伪pubsub机制,仅对应用之间的通信进行了隔离
|
||
|
* @todo 实现基于链表-队列的pubsub机制
|
||
|
* @version 0.1
|
||
|
* @date 2022-11-30
|
||
|
*
|
||
|
* @copyright Copyright (c) 2022
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef PUBSUB_H
|
||
|
#define PUBSUB_H
|
||
|
|
||
|
#include "stdlib.h"
|
||
|
#include "stdint-gcc.h"
|
||
|
|
||
|
|
||
|
#define MAX_EVENT_NAME_LEN 32 //最大的事件名长度,每个事件都有字符串来命名
|
||
|
#define MAX_EVENT_COUNT 12 //最多支持的事件数量
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @brief 在所有应用初始化结束之后调用,当作app的"回调函数"
|
||
|
*
|
||
|
*/
|
||
|
void MessageInit();
|
||
|
|
||
|
/**
|
||
|
* @brief 注册成为消息发布者
|
||
|
*
|
||
|
* @param name 消息标识名,注意不要超过MAX_EVENT_NAME_LEN
|
||
|
* @param data 发布者的数据地址
|
||
|
*/
|
||
|
void PublisherRegister(char* name,void* data);
|
||
|
|
||
|
/**
|
||
|
* @brief 订阅消息,成为消息订阅者
|
||
|
*
|
||
|
* @param name 消息标识名
|
||
|
* @param data 保存数据的指针的地址,注意这是一个二级指针,传入的时候对数据指针取地址(&)
|
||
|
*/
|
||
|
void SubscribeEvent(char* name,void** data);
|
||
|
|
||
|
#endif // !PUBSUB_H
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* 以下是队列版的pubsub,TODO */
|