projects
/
IOMultiplexer.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d1112e3
)
[IOMultiplexerV2] added callback system for IOLog
author
pk910
<philipp@zoelle1.de>
Fri, 14 Mar 2014 23:21:12 +0000
(
00:21
+0100)
committer
pk910
<philipp@zoelle1.de>
Fri, 14 Mar 2014 23:23:16 +0000
(
00:23
+0100)
src/IOHandler/IOLog.c
patch
|
blob
|
history
diff --git
a/src/IOHandler/IOLog.c
b/src/IOHandler/IOLog.c
index 20637c14578f5f5585a2564d331dc713831432b2..2bc6deb4ed425d8a36607df299689585b30a3d29 100644
(file)
--- a/
src/IOHandler/IOLog.c
+++ b/
src/IOHandler/IOLog.c
@@
-21,6
+21,13
@@
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
+#include <stdlib.h>
+
+struct iolog_callback_entry {
+ iolog_callback *callback;
+ struct iolog_callback_entry *next;
+};
+static struct iolog_callback_entry *iolog_callbacks = NULL;
void iolog_init() {
void iolog_init() {
@@
-40,9
+47,18
@@
void iolog_trigger(enum IOLogType type, char *text, ...) {
logBuf[pos] = '\n';
logBuf[pos+1] = '\0';
logBuf[pos] = '\n';
logBuf[pos+1] = '\0';
- printf("%s", logBuf);
+ struct iolog_callback_entry *callback;
+ for(callback = iolog_callbacks; callback; callback = callback->next)
+ callback->callback(type, logBuf);
}
void iolog_register_callback(iolog_callback *callback) {
}
void iolog_register_callback(iolog_callback *callback) {
-
+ struct iolog_callback_entry *logcb = malloc(sizeof(*logcb));
+ if(!logcb) {
+ iolog_trigger(IOLOG_ERROR, "Failed to allocate memory for iolog_callback_entry in %s:%d", __FILE__, __LINE__);
+ return;
+ }
+ logcb->callback = callback;
+ logcb->next = iolog_callbacks;
+ iolog_callbacks = logcb;
}
}