Skip to content

Instantly share code, notes, and snippets.

@gsrunion
Created December 29, 2019 14:52
Show Gist options
  • Save gsrunion/70b7f10b42246f5c2b9adcc4c97fdc9c to your computer and use it in GitHub Desktop.
Save gsrunion/70b7f10b42246f5c2b9adcc4c97fdc9c to your computer and use it in GitHub Desktop.
#include "Bus.h"
#include <memory.h>
typedef struct SubscriptionList {
Subscription subscriptions[MAX_SUBSCRIBERS_PER_TOPIC];
} SubscriptionList;
typedef struct Topic {
char* topicString;
SubscriptionList subscriptions;
} Topic;
static Topic topics[MAX_TOPICS];
void Bus_Init(void) {
memset(&topics, 0, sizeof(topics));
}
BusStatus Bus_Publish(const char* const topic, void* data, size_t size) {
}
BusStatus Bus_Subscribe(const char* const topic, Subscription subscription) {
}
#ifndef UNTITLED5_BUS_H
#define UNTITLED5_BUS_H
#include <stdlib.h>
#define MAX_TOPICS 5
#define MAX_SUBSCRIBERS_PER_TOPIC 5
typedef enum BusStatus {
PUBLISHED,
SUBSCRIBED,
ERROR,
} BusStatus;
typedef int (*Subscription)(void* data, size_t size);
void Bus_Init(void);
BusStatus Bus_Publish(const char* const topic, void* data, size_t size);
BusStatus Bus_Subscribe(const char* const topic, Subscription subscription);
#endif //UNTITLED5_BUS_H
#include "Bus.h"
#include <memory.h>
typedef struct SubscriptionList {
Subscription subscriptions[MAX_SUBSCRIBERS_PER_TOPIC];
} SubscriptionList;
typedef struct Topic {
char* topicString;
SubscriptionList subscriptions;
} Topic;
static Topic topics[MAX_TOPICS];
void Bus_Init(void) {
memset(&topics, 0, sizeof(topics));
}
BusStatus Bus_Publish(const char* const topic, void* data, size_t size) {
}
BusStatus Bus_Subscribe(const char* const topic, Subscription subscription) {
}
#ifndef UNTITLED5_BUS_H
#define UNTITLED5_BUS_H
#include <stdlib.h>
#define MAX_TOPICS 5
#define MAX_SUBSCRIBERS_PER_TOPIC 5
typedef enum BusStatus {
PUBLISHED,
SUBSCRIBED,
ERROR,
} BusStatus;
typedef int (*Subscription)(void* data, size_t size);
void Bus_Init(void);
BusStatus Bus_Publish(const char* const topic, void* data, size_t size);
BusStatus Bus_Subscribe(const char* const topic, Subscription subscription);
#endif //UNTITLED5_BUS_H
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment