You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
(7) |
Apr
(11) |
May
(38) |
Jun
(5) |
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
|---|
|
From: <cli...@li...> - 2007-10-22 20:47:07
|
Revision: 74
http://cligg.svn.sourceforge.net/cligg/?rev=74&view=rev
Author: sithhell
Date: 2007-10-22 13:47:03 -0700 (Mon, 22 Oct 2007)
Log Message:
-----------
added first cpp thoughts ...
Added Paths:
-----------
src/cpp/cligg.h
src/cpp/event.cpp
src/cpp/event.h
src/cpp/object.h
Added: src/cpp/cligg.h
===================================================================
--- src/cpp/cligg.h (rev 0)
+++ src/cpp/cligg.h 2007-10-22 20:47:03 UTC (rev 74)
@@ -0,0 +1,11 @@
+#ifndef GLIGG_H
+#define CLIGG_H
+
+class Cligg {
+ public:
+
+ private:
+
+};
+
+#endif
Added: src/cpp/event.cpp
===================================================================
--- src/cpp/event.cpp (rev 0)
+++ src/cpp/event.cpp 2007-10-22 20:47:03 UTC (rev 74)
@@ -0,0 +1,6 @@
+#include <event>
+
+void Event::callback ( Object & o )
+{
+ std::cout << "Event: " << name << data << std::endl;
+}
Added: src/cpp/event.h
===================================================================
--- src/cpp/event.h (rev 0)
+++ src/cpp/event.h 2007-10-22 20:47:03 UTC (rev 74)
@@ -0,0 +1,19 @@
+#ifndef CLIGG_EVENT_H
+#define CLIGG_EVENT_H
+
+#include <string>
+#include <object>
+
+//namespace Cligg {
+ class Event {
+ public:
+ Event ( string _name ): name( _name ); {}
+
+ protected:
+ void callback ( Object & o );
+
+ string name;
+ };
+//}
+
+#endif
Added: src/cpp/object.h
===================================================================
--- src/cpp/object.h (rev 0)
+++ src/cpp/object.h 2007-10-22 20:47:03 UTC (rev 74)
@@ -0,0 +1,12 @@
+#ifndef CLIGG_OBJECT_H
+#define CLIGG_OBJECT_H
+
+#include <iostream>
+
+class Object {
+ public:
+ virtual std::ostream & operator<< ( std::ostream & os, Object & o );
+ virtual std::istream & operator>> ( std::istream & is, Object & o );
+};
+
+#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-10-22 20:45:24
|
Revision: 73
http://cligg.svn.sourceforge.net/cligg/?rev=73&view=rev
Author: sithhell
Date: 2007-10-22 13:45:22 -0700 (Mon, 22 Oct 2007)
Log Message:
-----------
added first cpp thoughts ...
Added Paths:
-----------
src/cpp/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-09-24 17:49:14
|
Revision: 72
http://cligg.svn.sourceforge.net/cligg/?rev=72&view=rev
Author: sithhell
Date: 2007-09-24 10:49:11 -0700 (Mon, 24 Sep 2007)
Log Message:
-----------
some new stuff ;)
Modified Paths:
--------------
src/bin/cligg_eventhandler.c
src/bin/cligg_eventhandler.h
src/bin/cligg_ipc.c
src/bin/cligg_mainloop.c
src/bin/cligg_modulehandler.c
src/bin/cligg_modulehandler.h
src/lib/cligg_module.c
Added Paths:
-----------
src/proto/
src/proto/README
src/proto/cligg.h
src/proto/cligg_list.c
src/proto/cligg_list.h
src/proto/cligg_rw_lock.c
src/proto/cligg_rw_lock.h
src/proto/cligg_sem.c
src/proto/cligg_sem.h
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_eventhandler.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -1,11 +1,14 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <pthread.h>
#include <cligglib.h>
#include <cligg_hashmap.h>
#include <cligg_list.h>
#include <cligg_eventhandler.h>
+static void *_cligg_call_event(void *);
+
/* Event map
* all registered events which can be used by all modules can be found here
* TODO: find a good hash function
@@ -131,8 +134,52 @@
return ret;
}
+int
+cligg_call_event(char *name,
+ void *data)
+{
+ /* remember this function waits untill the event callback returns.
+ * therefore we create another thread in which the callback gets processed */
+ char **event_data;
+ pthread_t tid;
+ int *ret;
+ int error;
+
+ event_data = malloc(2 * sizeof(char *));
+
+ printf("cligg_call_event: %x\n", data);
+
+ event_data[0] = name;
+ event_data[1] = data;
+
+
+ if((error = pthread_create(&tid, NULL, _cligg_call_event, event_data)) != 0) {
+ fprintf(stderr, "Creation of event handling thread failed: %s\n", strerror(error));
+ return error;
+ }
+
+ if((error = pthread_join(tid, (void **)(&ret))) != 0) {
+ fprintf(stderr, "Joining of event handling thread failed: %s\n", strerror(error));
+ return error;
+ }
+ return (int )ret;
+}
+
+static void *
+_cligg_call_event(void *_data)
+{
+ cligg_event_cb cb;
+ char **data = _data;
+
+ cb = cligg_lookup_event(data[0]);
+
+ if(cb == NULL) return (void *)-1;
+
+ return (void *)cb(data[1]);
+}
+
cligg_event_data *
-cligg_waiton_event(void)
+cligg_next_event(void)
{
cligg_event_data *new;
if(pthread_mutex_lock(&event_lock) != 0) {
Modified: src/bin/cligg_eventhandler.h
===================================================================
--- src/bin/cligg_eventhandler.h 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_eventhandler.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -30,12 +30,18 @@
int
cligg_unregister_event(char *);
+/* this function won't wait till the callback returns */
int
cligg_trigger_event(char *,
void *);
+/* this function waits till the callback returns */
+int
+cligg_call_event(char *,
+ void *);
+
cligg_event_data *
-cligg_waiton_event(void);
+cligg_next_event(void);
cligg_event_cb
cligg_lookup_event(char *name);
Modified: src/bin/cligg_ipc.c
===================================================================
--- src/bin/cligg_ipc.c 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_ipc.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -79,12 +79,13 @@
int clifd;
socklen_t len;
struct sockaddr_un un;
- char buf[2*1024];
- char *message[2];
+ char *buf;
+ char **message;
char **test;
int send = FALSE;
int size;
int i = 0;
+ int ret;
while(1) {
len = sizeof(un);
@@ -92,15 +93,36 @@
perror("accept");
continue;
}
+ buf = malloc((2*1024) * sizeof(char));
len = read(clifd, buf, 2*1024);
if(len == 0) continue;
- message[0] = (char *)buf;
- message[1] = (char *)buf+1024;
+ message = malloc(2 * sizeof(char *));
+ message[0] = malloc((strlen(buf)+1) * sizeof(char));
+ strcpy(message[0], (char *)buf);
+ message[1] = malloc((strlen(buf+1024)+1) * sizeof(char));
+ strcpy(message[1], (char *)buf+1024);
if(strcmp(message[1], "") == 0) message[1] = NULL;
-
+ ret = cligg_call_event(message[0], message[1]);
+
if(strcmp(message[0], "list_modules") == 0) {
+ write(clifd, &ret, sizeof(int));
+ test = (char **)message[1];
+ i = 0;
+ printf("%x\n", test);
+ while(test[i] != NULL) {
+ printf("i: %d\n", i);
+ write(clifd, test[i], PATH_MAX);
+ printf("%s\n", test[i]);
+ free(test[i]);
+ i++;
+ }
+ free(test);
+ }
+ printf("The Callback returned: %d\n", ret);
+
+ /*if(strcmp(message[0], "list_modules") == 0) {
test = cligg_list_modules(&size);
write(clifd, &size, sizeof(int));
i = 0;
@@ -117,7 +139,7 @@
send = TRUE;
}
else
- cligg_trigger_event(message[0], message[1]);
+ cligg_trigger_event(message[0], message[1]);*/
if(!send) {
close(clifd);
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_mainloop.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -49,7 +49,7 @@
cligg_event_cb cb = NULL;
while(TRUE) {
- new = cligg_waiton_event();
+ new = cligg_next_event();
if(new == NULL)
return (void *)EXIT_FAILURE;
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_modulehandler.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -13,6 +13,7 @@
static int cmp(void *a, void *b);
static int module_reg_event_cb(void *data);
static int module_unreg_event_cb(void *data);
+static int module_list_all(void *data);
static pthread_mutex_t module_lock = PTHREAD_MUTEX_INITIALIZER;
static cligg_list *module_list;
@@ -32,6 +33,10 @@
free(module_list);
return FALSE;
}
+ if(!cligg_register_event("list_modules", module_list_all)) {
+ free(module_list);
+ return FALSE;
+ }
return TRUE;
}
@@ -160,26 +165,27 @@
return ret;
}
-char **cligg_list_modules(int *size)
+static int cligg_list_modules(void *data)
{
- char **list = NULL;
+ char **list;
char *path;
int i = 0;
int len;
cligg_list_element *tmp;
- if(size == NULL) return NULL;
-
if(pthread_mutex_lock(&module_lock) != 0) {
fprintf(stderr, "Couldn't obtain module lock!\n");
- cligg_module_del(tmp);
dlerror();
return FALSE;
}
+ /*if(list != NULL) return 0;*/
+
list = (char **)malloc((module_list->size+1) * sizeof(char *));
if(list == NULL) return 0;
+ printf("%x\n", list);
+
tmp = module_list->first;
while(tmp != NULL) {
path = ((cligg_module *)tmp->data)->path;
@@ -192,13 +198,12 @@
}
strcpy(list[i], path);
+ list[i][len] = 0;
i++;
tmp = tmp->next;
}
if(list != NULL) list[i] = NULL;
- *size = module_list->size;
-
if(pthread_mutex_unlock(&module_lock) != 0) {
fprintf(stderr, "Couldn't unlock module lock!\n");
cligg_module_del(tmp);
@@ -206,7 +211,11 @@
return FALSE;
}
- return list;
+ data = (void *)list;
+
+ printf("%x\n", data);
+
+ return module_list->size+1;
}
static int cmp(void *a, void *b)
@@ -227,3 +236,11 @@
cligg_module_del(tmp);
return ret;
}
+
+static int module_list_all(void *data)
+{
+ printf("before callback: %x\n", (((char **)data)));
+ int ret = cligg_list_modules((char **)data);
+ printf("after callback: %x\n", (((char **)data)));
+ return ret;
+}
Modified: src/bin/cligg_modulehandler.h
===================================================================
--- src/bin/cligg_modulehandler.h 2007-06-25 19:23:21 UTC (rev 71)
+++ src/bin/cligg_modulehandler.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -8,6 +8,6 @@
int cligg_register_module(char *);
int cligg_unregister_module(cligg_module *);
-char **cligg_list_modules(int *);
+/*int cligg_list_modules(char **);*/
#endif
Modified: src/lib/cligg_module.c
===================================================================
--- src/lib/cligg_module.c 2007-06-25 19:23:21 UTC (rev 71)
+++ src/lib/cligg_module.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -26,5 +26,6 @@
cligg_module *old = (cligg_module *)module;
old->handle = NULL;
free(old->path);
+ old->path = NULL;
free(old);
}
Added: src/proto/README
===================================================================
--- src/proto/README (rev 0)
+++ src/proto/README 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,5 @@
+This here is for testing purpose ...
+The old structure of things doesn't feel right anymore,
+i try to integrate teh whole multithreaded environment better
+and put all the mutex INSIDE the datatypes,
+the old stuff remains there until all of the stuff is ready ;)
Added: src/proto/cligg.h
===================================================================
--- src/proto/cligg.h (rev 0)
+++ src/proto/cligg.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,22 @@
+#ifndef CLIGG_H
+#define CLIGG_H
+
+#ifdef TRUE
+# undef TRUE
+# define TRUE 1
+#endif
+
+#ifdef FALSE
+# undef FALSE
+# define FALSE 0
+#endif
+
+#define CLIGG_NOWAIT 0
+#define CLIGG_WAIT 1
+
+
+/* Typedef for compare function */
+typedef (*cligg_cmp) (void *, void *);
+typedef (*cligg_free) (void *);
+
+#endif
Added: src/proto/cligg_list.c
===================================================================
--- src/proto/cligg_list.c (rev 0)
+++ src/proto/cligg_list.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,185 @@
+#include <cligg.h>
+#include <cligg_list.h>
+
+static cligg_list_element *_element_init(void);
+static void _element_destroy(cligg_list_element *element, cligg_free free_func);
+static cligg_list_element *_next(cligg_list *list);
+static cligg_list_element *_goto(cligg_list *list, int index);
+static cligg_list_element *_goto_after(cligg_list *list, void *data, cligg_cmp cmp);
+
+struct cligg_list {
+ cligg_list_element *first;
+ cligg_list_element *last;
+ cligg_list_element *current;
+ int current_pos;
+ cligg_sem *sem;
+ cligg_rw_lock *lock;
+ cligg_free free_func;
+ int flags;
+}
+
+struct cligg_list_element {
+ cligg_list_element *next;
+ void *data;
+}
+
+cligg_list *
+cligg_list_init(cligg_free free_func, int flags)
+{
+ cligg_list *new;
+ int err;
+
+ if((new = (cligg_list *)malloc(sizeof(cligg_list))) == NULL) {
+ err = errno;
+ fprintf(stderr, "cligg_list_init: %s\n", strerror(err));
+ return NULL;
+ }
+
+ new->first = NULL;
+ new->last = NULL;
+ new->current = NULL;
+
+ if((new->sem = cligg_sem_init(0)) == NULL) {
+ free(new);
+ return NULL;
+ }
+
+ if((new->lock = cligg_rw_lock_init()) == NULL) {
+ cligg_sem_destroy(new->sem);
+ free(new);
+ return NULL;
+ }
+
+ new->free_func = free_func;
+ new->flags = flags;
+
+ return new;
+}
+
+int
+cligg_list_empty(cligg_list *list)
+{
+ int res;
+
+ cligg_rw_read_lock(list->lock);
+ res = list->sem->n;
+ cligg_rw_read_unlock(list->lock);
+
+ if(res != 0) return FALSE;
+
+ return TRUE;
+}
+
+int
+cligg_list_size(cligg_list *list)
+{
+ int res;
+
+ cligg_rw_read_lock(list->lock);
+ res = list->sem->n;
+ cligg_rw_read_unlock(list->lock);
+
+ return res;
+}
+
+int
+cligg_list_append(cligg_list *list, void *data)
+{
+ cligg_list_element *new;
+
+ if(list == NULL) return FALSE;
+
+ if((new = cligg_list_element_init(data)) == NULL)
+ return FALSE;
+
+ cligg_rw_write_lock(list->lock);
+
+ new->next = NULL;
+
+ if(list->first == NULL)
+ list->first = new;
+
+ if(list->last != NULL)
+ list->last->next = new;
+
+ list->last = new;
+
+ cligg_sem_V(list->sem);
+
+ cligg_rw_write_unlock(list->lock);
+
+ return TRUE;
+}
+
+int
+cligg_list_prepend(cligg_list *list, void *data)
+{
+ cligg_list_element_new *new;
+
+ if(list == NULL) return FALSE;
+
+ if((new = cligg_list_element_init(data)) == NULL)
+ return FALSE;
+
+ cligg_rw_write_lock(list->lock);
+
+ new->next = list->first;
+
+ if(list->last == NULL)
+ list->last = new;
+
+ list->first = new;
+
+ cligg_sem_V(list->sem);
+
+ cligg_rw_write_unlock(list->lock);
+
+ return TRUE;
+}
+
+int
+cligg_list_insert_pos(cligg_list *list,
+ void *data,
+ int pos)
+{
+ cligg_list_element *new;
+ cligg_list_element *tmp1;
+ cligg_list_element *tmp2;
+
+ if(list == NULL) return FALSE;
+
+ if(cligg_list_empty(list)) return cligg_list_append(data);
+
+ if((new == _element_init(data)) == NULL)
+ return ;
+
+ cligg_rw_write_lock(list->lock);
+
+ tmp1 = _goto(list, pos);
+ tmp2 = _goto(list, pos+1);
+
+ tmp1->next = new;
+ new->next = tmp2;
+
+ cligg_sem_V(list->sem);
+
+ cligg_rw_write_unlock(list->lock);
+
+ return TRUE;
+}
+
+int
+cligg_list_insert(cligg_list *list,
+ void *data,
+ cligg_cmp cmp)
+{
+ int pos;
+
+ pos = _find(list, data, cmp);
+
+ if(pos == 0) return cligg_list_append(list, data);
+
+ return cligg_list_insert_pos(list, data, pos);
+}
+
+
Added: src/proto/cligg_list.h
===================================================================
--- src/proto/cligg_list.h (rev 0)
+++ src/proto/cligg_list.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,35 @@
+#ifndef CLIGG_LIST
+#define CLIGG_LIST
+
+typedef struct cligg_list cligg_list;
+typedef struct cligg_list_element cligg_list_element;
+
+cligg_list *cligg_list_init(cligg_free free_func, int flags);
+
+int cligg_list_empty(cligg_list, *list);
+int cligg_list_size(cligg_list *list);
+
+int cligg_list_append(cligg_list *list, void *data);
+int cligg_list_prepend(cligg_list *list, void *data);
+int cligg_list_insert_pos(cligg_list *list, void *data, int pos);
+/* Insert sorted, with a compare function given ... */
+int cligg_list_insert(cligg_list *list, void *data, cligg_cmp cmp);
+
+int cligg_list_list_append(cligg_list *list1, cligg_list *list2);
+int cligg_list_list_prepend(cligg_list *list1, cligg_list *list2);
+
+void *cligg_list_del_first(cligg_list *list);
+void *cligg_list_del_last(cligg_list *list);
+void *cligg_list_del_pos(cligg_list *list, int pos);
+
+int cligg_list_find(cligg_list *list, void *data, cligg_cmp cmp);
+
+void *cligg_list_get_first(cligg_list *list);
+void *cligg_list_get_last(cligg_list *list);
+void *cligg_list_get_pos(cligg_list *list, int pos);
+
+cligg_list *cligg_list_copy(cligg_list *list);
+
+void cligg_list_destroy(cligg_list *list);
+
+#endif
Added: src/proto/cligg_rw_lock.c
===================================================================
--- src/proto/cligg_rw_lock.c (rev 0)
+++ src/proto/cligg_rw_lock.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,108 @@
+#include <pthreads.h>
+#include <cligg_rw_lock.h>
+
+cligg_rw_lock *
+cligg_rw_lock_init(void)
+{
+ cligg_rw_lock *new;
+ int err;
+
+ new = (cligg_rw_lock *)malloc(sizeof(cligg_rw_lock));
+ if(new == NULL) {
+ fprintf(stderr, "cligg_rw_lock_init: %s\n", strerror(errno));
+ return NULL;
+ }
+
+ if((err = pthread_cond_init(&read_cond, NULL)) < 0) {
+ fprintf(stderr, "cligg_rw_lock_init: %s\n", strerror(errno));
+ free(new);
+ return NULL;
+ }
+
+ if((err = pthread_cond_init(&write_cond, NULL)) < 0) {
+ fprintf(stderr, "cligg_rw_lock_init: %s\n", strerror(errno));
+ pthread_cond_destroy(&read_cond);
+ free(new);
+ return NULL;
+ }
+
+
+ if((err = pthread_mutex_init(&rw_lock, NULL)) < 0) {
+ fprintf(stderr, "cligg_rw_lock_init: %s\n", strerror(errno));
+ pthread_cond_destroy(&read_cond);
+ pthread_cond_destroy(&write_cond);
+ free(new);
+ return NULL;
+ }
+
+ new->readers = 0;
+ new->writer = 0;
+ new->pending_writers = 0;
+
+ return new;
+}
+
+void
+cligg_rw_write_lock(cligg_rw_lock *lock)
+{
+ pthread_mutex_lock(&lock->rw_lock);
+
+ lock->pending_writers++;
+
+ while(lock->readers > 0 && lock->writer != 0)
+ pthread_cond_wait(&lock->write_cond, &lock->rw_lock);
+
+ lock->writer = 1;
+ lock->pending_writers--;
+
+ pthread_mutex_unlock(&lock->rw_lock);
+}
+
+void
+cligg_rw_write_unlock(cligg_rw_lock *lock)
+{
+ pthread_mutex_lock(&lock->rw_lock);
+
+ lock->writer = 0;
+
+ pthread_cond_broadcast(&lock->write_cond);
+ pthread_cond_broadcast(&lock->read_cond);
+
+ pthread_mutex_unlock(&lock->rw_lock);
+}
+
+void
+cligg_rw_read_lock(cligg_rw_lock *lock)
+{
+ pthread_mutex_lock(&lock->rw_lock);
+
+ while(lock->writer != 0)
+ pthread_cond_wait(&lock->read_cond, &lock->rw_lock);
+
+ lock->readers++;
+
+ pthread_mutex_unlock(&lock->rw_lock);
+}
+
+void
+cligg_rw_read_unlock(cligg_rw_lock *lock)
+{
+ pthread_mutex_lock(&lock->rw_lock);
+
+ lock->readers--;
+
+ pthread_cond_broadcast(&lock->read_cond);
+ pthread_cond_broadcast(&lock->write_cond);
+
+ pthread_mutex_unlock(&lock->rw_lock);
+}
+
+void
+cligg_rw_lock_destroy(cligg_rw_lock *lock)
+{
+ pthread_mutex_destroy(&lock->rw_lock);
+ pthread_cond_destroy(&lock->read_cond);
+ pthread_cond_destroy(&lock->write_cond);
+ free(lock);
+ lock = NULL;
+}
Added: src/proto/cligg_rw_lock.h
===================================================================
--- src/proto/cligg_rw_lock.h (rev 0)
+++ src/proto/cligg_rw_lock.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,24 @@
+#ifndef GLIGG_RW_LOCK
+#define CLIGG_RW_LOCK
+
+#include <pthreads.h>
+
+typedef struct cligg_rw_lock cligg_rw_lock {
+ int readers;
+ char writer;
+ pthread_cond_t read_cond;
+ pthread_cond_t write_cond;
+ int pending_writers;
+ pthread_mutex_t rw_lock;
+}
+
+cligg_rw_lock *cligg_rw_lock_init(void);
+
+void cligg_rw_write_lock(cligg_rw_lock *lock);
+void cligg_rw_write_unlock(cligg_rw_lock *lock);
+void cligg_rw_read_lock(cligg_rw_lock *lock);
+void cligg_rw_read_unlock(cligg_rw_lock *lock);
+
+void cligg_rw_lock_destroy(cligg_rw_lock *lock);
+
+#endif
Added: src/proto/cligg_sem.c
===================================================================
--- src/proto/cligg_sem.c (rev 0)
+++ src/proto/cligg_sem.c 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,68 @@
+#include <cligg_sem.h>
+#include <pthread.h>
+
+cligg_sem *
+cligg_sem_init(int n)
+{
+ cligg_sem *new;
+ int err;
+
+ if((new = (cligg_sem *)malloc(sizeof(cligg_sem))) == NULL) {
+ err = errno;
+ fprintf(stderr, "cligg_sem_init: %s\n", strerror(err));
+ return NULL;
+ }
+
+ new->n = n;
+
+ if((err = pthread_mutex_init(&new->lock, NULL)) < 0) {
+ free(new);
+ fprintf(stderr, "cligg_sem_init: %s\n", strerror(err));
+ return NULL;
+ }
+
+ if((err = pthread_cond_init(&new->cond, NULL)) < 0) {
+ fprintf(stderr, "cligg_sem_init: %s\n", strerror(err));
+ pthread_mutex_destroy(new->lock);
+ free(new);
+ return NULL;
+ }
+
+ return new;
+}
+
+/* This Function may not fail!
+ */
+void
+cligg_sem_P(cligg_sem *sem, int n)
+{
+ pthread_mutex_lock(&sem->lock);
+
+ while(sem->n < n)
+ pthread_cond_wait(&sem->cond, &sem->lock);
+
+ new->n -= n;
+
+ pthread_mutex_unlock(&sem->lock);
+}
+
+void
+cligg_sem_V(cligg_sem *sem, int n)
+{
+ pthread_mutex_lock(&sem->lock);
+
+ sem->n += n;
+
+ pthread_mutex_unlock(&sem->lock);
+
+ pthread_cond_broadcast(&sem->cond);
+}
+
+void
+cligg_sem_destroy(cligg_sem *sem)
+{
+ pthread_mutex_destroy(&sem->lock);
+ pthread_cond_destroy(&sem->cond);
+ free(new);
+ new = NULL;
+}
Added: src/proto/cligg_sem.h
===================================================================
--- src/proto/cligg_sem.h (rev 0)
+++ src/proto/cligg_sem.h 2007-09-24 17:49:11 UTC (rev 72)
@@ -0,0 +1,23 @@
+/* This Semaphor will be used to synchronize all our data */
+
+#ifndef CLIGG_SEM_H
+#define CLIGG_SEM_H
+
+#include <pthread.h>
+
+typedef struct cligg_sem cligg_sem;
+ pthread_mutex_t *lock;
+ pthread_cond_t *cond;
+ int n;
+};
+
+cligg_sem *cligg_sem_init(int n);
+
+
+void cligg_sem_P(cligg_sem *sem, int n);
+void cligg_sem_V(cligg_sem *sem, int n);
+
+void cligg_sem_destroy(cligg_sem *sem);
+
+
+#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-06-25 19:23:23
|
Revision: 71
http://cligg.svn.sourceforge.net/cligg/?rev=71&view=rev
Author: sithhell
Date: 2007-06-25 12:23:21 -0700 (Mon, 25 Jun 2007)
Log Message:
-----------
last update for today, very little bugfix now
Modified Paths:
--------------
src/bin/cligg_ipc.c
src/bin/cligg_modulehandler.c
Modified: src/bin/cligg_ipc.c
===================================================================
--- src/bin/cligg_ipc.c 2007-06-25 19:11:25 UTC (rev 70)
+++ src/bin/cligg_ipc.c 2007-06-25 19:23:21 UTC (rev 71)
@@ -109,7 +109,7 @@
size = strlen(test[i]);
test[i][size] = 0;
printf("%s %x %x\n", test[i], test[i], test);
- size = write(clifd, test[0], PATH_MAX);
+ size = write(clifd, test[i], PATH_MAX);
free(test[i]);
i++;
}
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-06-25 19:11:25 UTC (rev 70)
+++ src/bin/cligg_modulehandler.c 2007-06-25 19:23:21 UTC (rev 71)
@@ -221,5 +221,9 @@
static int module_unreg_event_cb(void *data)
{
- return cligg_unregister_module(cligg_module_new((char *)data));
+ int ret;
+ cligg_module *tmp = cligg_module_new((char *)data);
+ ret = cligg_unregister_module(tmp);
+ cligg_module_del(tmp);
+ return ret;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-06-25 19:11:28
|
Revision: 70
http://cligg.svn.sourceforge.net/cligg/?rev=70&view=rev
Author: sithhell
Date: 2007-06-25 12:11:25 -0700 (Mon, 25 Jun 2007)
Log Message:
-----------
some bug fixes, more will follow
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_eventhandler.c
src/bin/cligg_ipc.c
src/bin/cligg_modulehandler.c
src/lib/cligg_btree.c
src/lib/cligg_hashmap.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/bin/cligg.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -90,8 +90,8 @@
static int quit_cligg(void *data)
{
/* Clean up */
+ cligg_del_modulehandler();
cligg_delete_handler();
- cligg_del_modulehandler();
cligg_ipc_stop();
fprintf(stderr, "Good Bye!\n");
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/bin/cligg_eventhandler.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -26,6 +26,9 @@
char *str = ((char *)((cligg_event_function *)data)->name);
unsigned long hash = 0;
int c;
+
+ if(str == NULL) return 0;
+
while((c = *str++))
hash = c + (hash << 6) + (hash << 16) - hash;
Modified: src/bin/cligg_ipc.c
===================================================================
--- src/bin/cligg_ipc.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/bin/cligg_ipc.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -60,9 +60,18 @@
int cligg_ipc_stop(void)
{
+ void *ret_val = NULL;
+
unlink(SOCKET_NAME);
close(fd);
- return TRUE;
+ /* FIXME: implement clean thread exit way */
+ /*pthread_cancel(ipc_loop);
+ pthread_detach(ipc_loop);
+ pthread_join(ipc_loop, &ret_val);*/
+ if(ret_val == NULL)
+ return EXIT_SUCCESS;
+
+ return EXIT_FAILURE;
}
static void *cligg_ipc(void *data)
@@ -75,9 +84,9 @@
char **test;
int send = FALSE;
int size;
+ int i = 0;
while(1) {
- int i = 0;
len = sizeof(un);
if((clifd = accept(fd, (struct sockaddr *)&un, &len)) < 0) {
perror("accept");
@@ -94,12 +103,17 @@
if(strcmp(message[0], "list_modules") == 0) {
test = cligg_list_modules(&size);
write(clifd, &size, sizeof(int));
+ i = 0;
+ printf("%s %x\n", test[size], test[size]);
while(test[i] != NULL) {
size = strlen(test[i]);
test[i][size] = 0;
- size = write(clifd, test[i], PATH_MAX);
+ printf("%s %x %x\n", test[i], test[i], test);
+ size = write(clifd, test[0], PATH_MAX);
+ free(test[i]);
i++;
}
+ free(test);
send = TRUE;
}
else
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/bin/cligg_modulehandler.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -53,6 +53,7 @@
{
int ret = TRUE;
cligg_module *new = cligg_module_new(path);
+ void *handle;
printf("\n\nloading module ...\n");
@@ -85,7 +86,8 @@
return FALSE;
}*/
- new->handle = dlopen(path, RTLD_LAZY);
+ handle = dlopen(path, RTLD_LAZY);
+ new->handle = handle;
if(!new->handle) {
fprintf(stderr, "Error loading module: %s\n", dlerror());
cligg_module_del(new);
@@ -160,35 +162,50 @@
char **cligg_list_modules(int *size)
{
- char **list;
+ char **list = NULL;
char *path;
int i = 0;
int len;
- int total = 0;
cligg_list_element *tmp;
if(size == NULL) return NULL;
- list = (char **)malloc(module_list->size * sizeof(char *) + 1);
+ if(pthread_mutex_lock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't obtain module lock!\n");
+ cligg_module_del(tmp);
+ dlerror();
+ return FALSE;
+ }
+
+ list = (char **)malloc((module_list->size+1) * sizeof(char *));
if(list == NULL) return 0;
tmp = module_list->first;
while(tmp != NULL) {
path = ((cligg_module *)tmp->data)->path;
len = strlen(path);
- total += len;
- list[i] = (char *)malloc(len * sizeof(char));
- if(list[i] == NULL) return 0;
+ list[i] = (char *)malloc((len+1) * sizeof(char));
+ if(list[i] == NULL) {
+ list = NULL;
+ break;
+ }
strcpy(list[i], path);
i++;
tmp = tmp->next;
}
- list[i] = NULL;
+ if(list != NULL) list[i] = NULL;
*size = module_list->size;
+ if(pthread_mutex_unlock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't unlock module lock!\n");
+ cligg_module_del(tmp);
+ dlerror();
+ return FALSE;
+ }
+
return list;
}
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/lib/cligg_btree.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -45,6 +45,9 @@
del(tree->root, tree->free_func);
+ tree->root = NULL;
+ tree->current = NULL;
+
tree->size = 0;
}
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-06-22 08:09:00 UTC (rev 69)
+++ src/lib/cligg_hashmap.c 2007-06-25 19:11:25 UTC (rev 70)
@@ -9,6 +9,7 @@
int a = ((cligg_hashmap_element *)_a)->hash;
int b = ((cligg_hashmap_element *)_b)->hash;
int test = a-b;
+
if(test < 0)
return -1;
if(test > 0)
@@ -48,12 +49,14 @@
cligg_hashmap_clear(cligg_hashmap *map)
{
cligg_btree_clear(map->map);
+ map->map = NULL;
}
CLIGG void
cligg_hashmap_del(cligg_hashmap *map)
{
cligg_btree_del(map->map);
+ map->map = NULL;
free(map);
map = NULL;
}
@@ -63,10 +66,14 @@
void *data)
{
cligg_hashmap_element *new = cligg_hashmap_element_new(data, map->free_func, map->hash_func);
+ int ret;
if(!new)
return FALSE;
- return cligg_btree_add_element(map->map, new);
+
+ ret = cligg_btree_add_element(map->map, new);
+ /*cligg_hashmap_element_delete(new);*/
+ return ret;
}
CLIGG int
@@ -74,10 +81,16 @@
void *data)
{
cligg_hashmap_element *del = cligg_hashmap_element_new(data, map->free_func, map->hash_func);
+ int ret;
+
+ printf("%d\n", sizeof(cligg_hashmap_element));
if(!del)
return FALSE;
- return cligg_btree_del_element(map->map, del);
+ ret = cligg_btree_del_element(map->map, del);
+ /*cligg_hashmap_element_delete(del);*/
+ free(del);
+ return ret;
}
CLIGG void
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-06-22 08:09:03
|
Revision: 69
http://cligg.svn.sourceforge.net/cligg/?rev=69&view=rev
Author: sithhell
Date: 2007-06-22 01:09:00 -0700 (Fri, 22 Jun 2007)
Log Message:
-----------
corrected unregistering events
Modified Paths:
--------------
src/bin/cligg_eventhandler.c
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-06-21 16:07:02 UTC (rev 68)
+++ src/bin/cligg_eventhandler.c 2007-06-22 08:09:00 UTC (rev 69)
@@ -82,19 +82,23 @@
cligg_unregister_event(char *name)
{
int ret;
+ cligg_event_function *tmp = cligg_event_function_new(name, NULL);
+ if(tmp == NULL) return FALSE;
+
if(pthread_mutex_lock(&hash_lock) != 0) {
fprintf(stderr, "Couldn't obtain lock for the event map!\n");
return FALSE;
}
- ret = cligg_hashmap_del_element(event_map, name);
+ ret = cligg_hashmap_del_element(event_map, tmp);
if(pthread_mutex_unlock(&hash_lock) != 0) {
fprintf(stderr, "Couldn't release lock for the event map!\n");
return FALSE;
}
+ cligg_event_function_del(tmp);
return ret;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-06-21 16:07:07
|
Revision: 68
http://cligg.svn.sourceforge.net/cligg/?rev=68&view=rev
Author: sithhell
Date: 2007-06-21 09:07:02 -0700 (Thu, 21 Jun 2007)
Log Message:
-----------
various error correction, and additional implementations for cligg_remote
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_ipc.c
src/bin/cligg_mainloop.c
src/bin/cligg_modulehandler.c
src/bin/cligg_modulehandler.h
src/bin/cligg_remote.c
src/lib/cligg_list.c
src/modules/print/print.c
src/modules/read/read.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -77,7 +77,6 @@
/* exit handlers ... */
/* setting up ipc */
- printf("IPC\n");
cligg_ipc_start();
/* starting the event loop */
Modified: src/bin/cligg_ipc.c
===================================================================
--- src/bin/cligg_ipc.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg_ipc.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -9,6 +9,7 @@
#include <errno.h>
#include <cligg_ipc.h>
#include <cligg_eventhandler.h>
+#include <cligg_modulehandler.h>
#define SOCKET_NAME "/tmp/cligg"
#define QLEN 10
@@ -17,6 +18,7 @@
static int fd;
static void *cligg_ipc(void *);
+static int send_cb(void *);
int cligg_ipc_start(void)
{
@@ -53,8 +55,6 @@
exit(EXIT_FAILURE);
}
- printf("socket fd %d\n", fd);
-
return TRUE;
}
@@ -72,18 +72,42 @@
struct sockaddr_un un;
char buf[2*1024];
char *message[2];
+ char **test;
+ int send = FALSE;
+ int size;
while(1) {
+ int i = 0;
len = sizeof(un);
if((clifd = accept(fd, (struct sockaddr *)&un, &len)) < 0) {
perror("accept");
continue;
}
- len = read(clifd, buf, 1024);
- message[0] = buf;
- message[1] = buf+1024;
- cligg_trigger_event(message[0], message[1]);
- close(clifd);
+ len = read(clifd, buf, 2*1024);
+ if(len == 0) continue;
+ message[0] = (char *)buf;
+ message[1] = (char *)buf+1024;
+
+ if(strcmp(message[1], "") == 0) message[1] = NULL;
+
+
+ if(strcmp(message[0], "list_modules") == 0) {
+ test = cligg_list_modules(&size);
+ write(clifd, &size, sizeof(int));
+ while(test[i] != NULL) {
+ size = strlen(test[i]);
+ test[i][size] = 0;
+ size = write(clifd, test[i], PATH_MAX);
+ i++;
+ }
+ send = TRUE;
+ }
+ else
+ cligg_trigger_event(message[0], message[1]);
+
+ if(!send) {
+ close(clifd);
+ }
}
return NULL;
}
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg_mainloop.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -45,7 +45,7 @@
void *
cligg_loop(void *arg)
{
- cligg_event_data *new;
+ static cligg_event_data *new;
cligg_event_cb cb = NULL;
while(TRUE) {
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg_modulehandler.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -54,18 +54,28 @@
int ret = TRUE;
cligg_module *new = cligg_module_new(path);
+ printf("\n\nloading module ...\n");
+
if(new == NULL) {
perror("Error loading module");
dlerror();
return FALSE;
}
-
+ if(pthread_mutex_lock(&module_lock) != 0) {
+ return FALSE;
+ }
if(cligg_list_element_find(module_list, cmp, new) > 0) {
fprintf(stderr, "Couldn't add module %s: already there\n", new->path);
cligg_module_del(new);
dlerror();
+ if(pthread_mutex_unlock(&module_lock) != 0) {
+ return FALSE;
+ }
return FALSE;
}
+ if(pthread_mutex_unlock(&module_lock) != 0) {
+ return FALSE;
+ }
/* FIXME this is better, perhaps, but creates some memory leaks */
/*if((test = dlopen(path, RTLD_LAZY | RTLD_NOLOAD)) != NULL) {
dlclose(test);
@@ -113,6 +123,8 @@
int ret = TRUE;
dlerror();
+ printf("\n\nunloading module ...\n");
+
if(pthread_mutex_lock(&module_lock) != 0) {
fprintf(stderr, "Couldn't obtain module lock!\n");
cligg_module_del(tmp);
@@ -126,7 +138,7 @@
ret = FALSE;
}
else {
- tmp = (cligg_module *)module_list->current->data;
+ tmp = (cligg_module *)cligg_list_element_get_current(module_list);
if(dlclose(tmp->handle) != 0)
fprintf(stderr, "Error unloading module: %s\n", dlerror());
@@ -146,6 +158,40 @@
return ret;
}
+char **cligg_list_modules(int *size)
+{
+ char **list;
+ char *path;
+ int i = 0;
+ int len;
+ int total = 0;
+ cligg_list_element *tmp;
+
+ if(size == NULL) return NULL;
+
+ list = (char **)malloc(module_list->size * sizeof(char *) + 1);
+ if(list == NULL) return 0;
+
+ tmp = module_list->first;
+ while(tmp != NULL) {
+ path = ((cligg_module *)tmp->data)->path;
+ len = strlen(path);
+ total += len;
+
+ list[i] = (char *)malloc(len * sizeof(char));
+ if(list[i] == NULL) return 0;
+
+ strcpy(list[i], path);
+ i++;
+ tmp = tmp->next;
+ }
+ list[i] = NULL;
+
+ *size = module_list->size;
+
+ return list;
+}
+
static int cmp(void *a, void *b)
{
return strcmp(((cligg_module *)a)->path, ((cligg_module *)b)->path);
@@ -158,6 +204,5 @@
static int module_unreg_event_cb(void *data)
{
- printf("unregister\n");
- return cligg_unregister_module((cligg_module *)data);
+ return cligg_unregister_module(cligg_module_new((char *)data));
}
Modified: src/bin/cligg_modulehandler.h
===================================================================
--- src/bin/cligg_modulehandler.h 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg_modulehandler.h 2007-06-21 16:07:02 UTC (rev 68)
@@ -8,5 +8,6 @@
int cligg_register_module(char *);
int cligg_unregister_module(cligg_module *);
+char **cligg_list_modules(int *);
#endif
Modified: src/bin/cligg_remote.c
===================================================================
--- src/bin/cligg_remote.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/bin/cligg_remote.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -13,15 +13,20 @@
#define SOCKET_NAME "/tmp/cligg"
static void help(void);
+static void deep_help(const char *, const char *, const char *);
static int cmp_opt(const char *, const char *, const char *);
+static void send_event(int, const char *, const char *);
int main(int argc, char **argv)
{
int fd;
int len;
int err;
+ int noopt = TRUE;
struct sockaddr_un un;
- char message[2][1024];
+ char buf[PATH_MAX];
+ int i = 0;
+ int readlen;
if(argc < 2) {
help();
@@ -47,10 +52,41 @@
return EXIT_FAILURE;
}
if(cmp_opt("-q", "--quit", argv[1])) {
- strcpy(message[0], "quit_cligg");
- strcpy(message[1], "");
- write(fd, message, strlen(message[0])+strlen(message[1]));
+ noopt = FALSE;
+ send_event(fd, "quit_cligg", "");
}
+ if(cmp_opt("-lm", "--load-module", argv[1])) {
+ if(argc < 3) {
+ deep_help(argv[0], argv[1], "module_name");
+ exit(EXIT_FAILURE);
+ }
+ noopt = FALSE;
+ send_event(fd, "load_module", argv[2]);
+ }
+ if(cmp_opt("-um", "--unload-module", argv[1])) {
+ if(argc < 3) {
+ deep_help(argv[0], argv[1], "module_name");
+ exit(EXIT_FAILURE);
+ }
+ noopt = FALSE;
+ send_event(fd, "unload_module", argv[2]);
+ }
+ if(cmp_opt("-l", "--list-modules", argv[1])) {
+ noopt = FALSE;
+ send_event(fd, "list_modules", "");
+ read(fd, &readlen, sizeof(int));
+ printf("Geladene Module:\n");
+ for(i = 0; i < readlen; i++) {
+ len = read(fd, buf, PATH_MAX);
+ buf[len] = 0;
+ printf("\t- %s\n", buf);
+ }
+ }
+ if(noopt) {
+ help();
+ close(fd);
+ exit(EXIT_FAILURE);
+ }
close(fd);
return EXIT_SUCCESS;
}
@@ -58,16 +94,32 @@
static void help(void)
{
printf("Usage: \n");
- printf("\t -h, --help show this help\n");
- printf("\t -q, --quit quit cligg\n");
- printf("\t -lm --load-module load module\n");
- printf("\t -um --unload-module unload module\n");
+ printf("\t -h, --help show this help\n");
+ printf("\t -q, --quit quit cligg\n");
+ printf("\t -l, --list-modules list loaded modules\n");
+ printf("\t -lm, --load-module load module\n");
+ printf("\t -um, --unload-module unload module\n");
}
+static void deep_help(const char *arg0, const char *arg1, const char *message)
+{
+ printf("Usage: \n");
+ printf("\t%s %s %s\n", arg0, arg1, message);
+}
+
static int cmp_opt(const char *opt1, const char *opt2, const char *arg)
{
if((strcmp(opt1, arg) == 0) || (strcmp(opt2, arg) == 0))
return TRUE;
return FALSE;
}
-
+
+static void send_event(int fd, const char *mes1, const char *mes2)
+{
+ char message[2][1024];
+ strcpy(message[0], mes1);
+ strcpy(message[1], mes2);
+ printf("sending: %s %s (%d)\n",message[0], message[1],
+ strlen(message[0])+strlen(message[1]));
+ write(fd, message, 2*1024);
+}
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/lib/cligg_list.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -122,7 +122,7 @@
}
new_element->data = data;
new_element->next = NULL;
- new_element->prev = NULL;
+ /*new_element->prev = NULL;*/
/*append to list*/
new_element->prev = list->last;
@@ -153,7 +153,7 @@
return FALSE;
}
new_element->data = data;
- new_element->next = NULL;
+ /*new_element->next = NULL;*/
new_element->prev = NULL;
/* prepend to list */
@@ -279,14 +279,18 @@
if(list->current->prev != NULL) {
list->current->prev->next = list->current->next;
}
- else
+ else {
list->first = list->current->next;
+ /*list->first->prev = NULL;*/
+ }
if(list->current->next != NULL)
list->current->next->prev = list->current->prev;
else {
- list->first = NULL;
- list->last = NULL;
+ /*list->first = NULL;
+ list->last = NULL;*/
+ list->last = list->current->prev;
+ /*list->last->next = NULL;*/
}
list->current = NULL;
@@ -348,7 +352,7 @@
CLIGG int cligg_list_element_find(cligg_list *list, compare_func_cb compare_func, void *data)
{
- int i = 0;
+ int i = 1;
cligg_list_element *tmp = NULL;
if(cligg_list_isempty(list)) {
@@ -359,22 +363,23 @@
list->current = list->last;
return list->size;
}
- if(compare_func(list->first->data, data) == 0) {
+ /*if(compare_func(list->first->data, data) == 0) {
list->current = list->first;
return 1;
- }
+ }*/
tmp = list->first;
- while(tmp->next != NULL && (compare_func(tmp->data, data) == 0)) {
+ while(tmp != NULL){/* && (compare_func(tmp->data, data) != 0)) {*/
+ if(compare_func(tmp->data, data) == 0) {
+ printf("YAY!\n");
+ list->current = tmp;
+ return i;
+ }
tmp = tmp->next;
i++;
}
- list->current = tmp;
-
- if(i > list->size)
- return -1;
- return i;
+ return -1;
}
CLIGG int cligg_list_element_add_sorted(cligg_list *list, compare_func_cb compare_func, void *data)
Modified: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/modules/print/print.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -19,5 +19,6 @@
cligg_module_finit print_finit(void)
{
+ cligg_unregister_event("print");
fprintf(stderr, "Print Module is unloaded!\n");
}
Modified: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c 2007-06-19 18:31:55 UTC (rev 67)
+++ src/modules/read/read.c 2007-06-21 16:07:02 UTC (rev 68)
@@ -28,5 +28,6 @@
cligg_module_finit print_finit(void)
{
+ cligg_unregister_event("read");
fprintf(stderr, "Read Module is unloaded!\n");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-06-19 18:32:03
|
Revision: 67
http://cligg.svn.sourceforge.net/cligg/?rev=67&view=rev
Author: sithhell
Date: 2007-06-19 11:31:55 -0700 (Tue, 19 Jun 2007)
Log Message:
-----------
added ipc stuff to cligg, and a remote application to quit it
Modified Paths:
--------------
CMakeLists.txt
src/bin/CMakeLists.txt
src/bin/cligg.c
Added Paths:
-----------
src/bin/cligg_ipc.c
src/bin/cligg_ipc.h
src/bin/cligg_remote.c
Modified: CMakeLists.txt
===================================================================
--- CMakeLists.txt 2007-05-24 15:47:23 UTC (rev 66)
+++ CMakeLists.txt 2007-06-19 18:31:55 UTC (rev 67)
@@ -11,7 +11,7 @@
"Build the project using debugging code"
ON)
IF(CLIGG_DEBUG)
- set(CMAKE_C_FLAGS "-g -DDEBUG -Wall -pedantic -ansi")
+ set(CMAKE_C_FLAGS "-g -DDEBUG -Wall -pedantic -ansi -D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500")
ENDIF(CLIGG_DEBUG)
# CFLAGS
Modified: src/bin/CMakeLists.txt
===================================================================
--- src/bin/CMakeLists.txt 2007-05-24 15:47:23 UTC (rev 66)
+++ src/bin/CMakeLists.txt 2007-06-19 18:31:55 UTC (rev 67)
@@ -1,8 +1,11 @@
add_executable(cligg cligg.c
cligg_eventhandler.c
cligg_modulehandler.c
- cligg_mainloop.c)
+ cligg_mainloop.c
+ cligg_ipc.c)
target_link_libraries(cligg cligglib pthread dl)
+add_executable(cligg_remote cligg_remote.c)
+
add_executable(tree_test test.c)
target_link_libraries(tree_test cligglib)
set_target_properties(cligg PROPERTIES LINK_FLAGS -rdynamic)
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-24 15:47:23 UTC (rev 66)
+++ src/bin/cligg.c 2007-06-19 18:31:55 UTC (rev 67)
@@ -13,6 +13,7 @@
#include <cligg_eventhandler.h>
#include <cligg_mainloop.h>
#include <cligg_modulehandler.h>
+#include <cligg_ipc.h>
/**
* @file cligg.c
@@ -64,8 +65,8 @@
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/print/print.so");
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
- cligg_trigger_event("read", NULL);
- /*cligg_trigger_event("quit_cligg", NULL);*/
+ /*cligg_trigger_event("read", NULL);
+ cligg_trigger_event("quit_cligg", NULL);*/
/* TODO load the config */
@@ -75,6 +76,10 @@
/* TODO define own signal handlers */
/* exit handlers ... */
+ /* setting up ipc */
+ printf("IPC\n");
+ cligg_ipc_start();
+
/* starting the event loop */
cligg_main_begin();
/* MAGIC!! */
@@ -88,6 +93,7 @@
/* Clean up */
cligg_delete_handler();
cligg_del_modulehandler();
+ cligg_ipc_stop();
fprintf(stderr, "Good Bye!\n");
Added: src/bin/cligg_ipc.c
===================================================================
--- src/bin/cligg_ipc.c (rev 0)
+++ src/bin/cligg_ipc.c 2007-06-19 18:31:55 UTC (rev 67)
@@ -0,0 +1,89 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <pthread.h>
+#include <errno.h>
+#include <cligg_ipc.h>
+#include <cligg_eventhandler.h>
+
+#define SOCKET_NAME "/tmp/cligg"
+#define QLEN 10
+
+static pthread_t ipc_loop;
+static int fd;
+
+static void *cligg_ipc(void *);
+
+int cligg_ipc_start(void)
+{
+ int len;
+ int err;
+ struct sockaddr_un un;
+
+ if((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
+ return FALSE;
+
+ unlink(SOCKET_NAME);
+
+ memset(&un, 0, sizeof(un));
+ un.sun_family = AF_UNIX;
+ strcpy(un.sun_path, SOCKET_NAME);
+ len = offsetof(struct sockaddr_un, sun_path) + strlen(SOCKET_NAME);
+
+ if(bind(fd, (struct sockaddr *)&un, len) < 0) {
+ err = errno;
+ close(fd);
+ errno = err;
+ return FALSE;
+ }
+
+ if(listen(fd, QLEN) < 0) {
+ err = errno;
+ close(fd);
+ errno = err;
+ return FALSE;
+ }
+
+ if(pthread_create(&ipc_loop, NULL, cligg_ipc, &fd) != 0) {
+ fprintf(stderr, "Creation of IPC thread failed!\n");
+ exit(EXIT_FAILURE);
+ }
+
+ printf("socket fd %d\n", fd);
+
+ return TRUE;
+}
+
+int cligg_ipc_stop(void)
+{
+ unlink(SOCKET_NAME);
+ close(fd);
+ return TRUE;
+}
+
+static void *cligg_ipc(void *data)
+{
+ int clifd;
+ socklen_t len;
+ struct sockaddr_un un;
+ char buf[2*1024];
+ char *message[2];
+
+ while(1) {
+ len = sizeof(un);
+ if((clifd = accept(fd, (struct sockaddr *)&un, &len)) < 0) {
+ perror("accept");
+ continue;
+ }
+ len = read(clifd, buf, 1024);
+ message[0] = buf;
+ message[1] = buf+1024;
+ cligg_trigger_event(message[0], message[1]);
+ close(clifd);
+ }
+ return NULL;
+}
Added: src/bin/cligg_ipc.h
===================================================================
--- src/bin/cligg_ipc.h (rev 0)
+++ src/bin/cligg_ipc.h 2007-06-19 18:31:55 UTC (rev 67)
@@ -0,0 +1,7 @@
+#ifndef CLIGG_IPC
+#define CLIGG_IPC
+
+int cligg_ipc_start(void);
+int cligg_ipc_stop(void);
+
+#endif
Added: src/bin/cligg_remote.c
===================================================================
--- src/bin/cligg_remote.c (rev 0)
+++ src/bin/cligg_remote.c 2007-06-19 18:31:55 UTC (rev 67)
@@ -0,0 +1,73 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stddef.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <errno.h>
+#include <cligg.h>
+#include <cligglib.h>
+
+#define SOCKET_NAME "/tmp/cligg"
+
+static void help(void);
+static int cmp_opt(const char *, const char *, const char *);
+
+int main(int argc, char **argv)
+{
+ int fd;
+ int len;
+ int err;
+ struct sockaddr_un un;
+ char message[2][1024];
+
+ if(argc < 2) {
+ help();
+ exit(EXIT_FAILURE);
+ }
+
+ if(cmp_opt("-h", "--help", argv[1])) {
+ help();
+ exit(EXIT_SUCCESS);
+ }
+
+ if((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
+ return -1;
+ memset(&un, 0, sizeof(un));
+ un.sun_family = AF_UNIX;
+ strcpy(un.sun_path, "/tmp/cligg");
+ len = offsetof(struct sockaddr_un, sun_path) + strlen("/tmp/cligg");
+ if(connect(fd, (struct sockaddr *)&un, len) < 0) {
+ err = errno;
+ close(fd);
+ errno = err;
+ perror("cligg_remote");
+ return EXIT_FAILURE;
+ }
+ if(cmp_opt("-q", "--quit", argv[1])) {
+ strcpy(message[0], "quit_cligg");
+ strcpy(message[1], "");
+ write(fd, message, strlen(message[0])+strlen(message[1]));
+ }
+ close(fd);
+ return EXIT_SUCCESS;
+}
+
+static void help(void)
+{
+ printf("Usage: \n");
+ printf("\t -h, --help show this help\n");
+ printf("\t -q, --quit quit cligg\n");
+ printf("\t -lm --load-module load module\n");
+ printf("\t -um --unload-module unload module\n");
+}
+
+static int cmp_opt(const char *opt1, const char *opt2, const char *arg)
+{
+ if((strcmp(opt1, arg) == 0) || (strcmp(opt2, arg) == 0))
+ return TRUE;
+ return FALSE;
+}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-24 15:47:27
|
Revision: 66
http://cligg.svn.sourceforge.net/cligg/?rev=66&view=rev
Author: sithhell
Date: 2007-05-24 08:47:23 -0700 (Thu, 24 May 2007)
Log Message:
-----------
changes ...
Modified Paths:
--------------
src/bin/CMakeLists.txt
src/bin/cligg_eventhandler.h
src/bin/cligg_modulehandler.c
src/lib/CMakeLists.txt
src/modules/dummy/dummy.c
Modified: src/bin/CMakeLists.txt
===================================================================
--- src/bin/CMakeLists.txt 2007-05-22 21:35:45 UTC (rev 65)
+++ src/bin/CMakeLists.txt 2007-05-24 15:47:23 UTC (rev 66)
@@ -1,8 +1,8 @@
-add_library(cligg_mainloop STATIC cligg_mainloop.c)
-add_library(cligg_eventhandler STATIC cligg_eventhandler.c)
-add_library(cligg_modulehandler STATIC cligg_modulehandler.c)
-add_executable(cligg cligg.c)
-target_link_libraries(cligg cligglib cligg_mainloop cligg_eventhandler cligg_modulehandler pthread dl)
+add_executable(cligg cligg.c
+ cligg_eventhandler.c
+ cligg_modulehandler.c
+ cligg_mainloop.c)
+target_link_libraries(cligg cligglib pthread dl)
add_executable(tree_test test.c)
target_link_libraries(tree_test cligglib)
-set_target_properties(cligg cligg_modulehandler PROPERTIES LINK_FLAGS -rdynamic)
+set_target_properties(cligg PROPERTIES LINK_FLAGS -rdynamic)
Modified: src/bin/cligg_eventhandler.h
===================================================================
--- src/bin/cligg_eventhandler.h 2007-05-22 21:35:45 UTC (rev 65)
+++ src/bin/cligg_eventhandler.h 2007-05-24 15:47:23 UTC (rev 66)
@@ -1,3 +1,9 @@
+/**
+ * @file cligg_eventhandler.h
+ * @brief Interface for the event handler
+ *
+ * In this file the interface for the event handler is defined
+ */
#ifndef CLIGG_EVENTHANDLER_H
#define CLIGG_EVENTHANDLER_H
@@ -3,4 +9,12 @@
#include <cligg_event.h>
+/**
+ * @defgroup cligg_eventhandler cligg_eventhandler
+ * @ingroup main_prog
+ * @brief This our event handler
+ *
+ * @{
+ */
+
int
cligg_init_handler(void);
@@ -26,4 +40,6 @@
cligg_event_cb
cligg_lookup_event(char *name);
+/* @} */
+
#endif
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-05-22 21:35:45 UTC (rev 65)
+++ src/bin/cligg_modulehandler.c 2007-05-24 15:47:23 UTC (rev 66)
@@ -52,7 +52,6 @@
int cligg_register_module(char *path)
{
int ret = TRUE;
- void *test;
cligg_module *new = cligg_module_new(path);
if(new == NULL) {
Modified: src/lib/CMakeLists.txt
===================================================================
--- src/lib/CMakeLists.txt 2007-05-22 21:35:45 UTC (rev 65)
+++ src/lib/CMakeLists.txt 2007-05-24 15:47:23 UTC (rev 66)
@@ -1 +1,6 @@
-add_library(cligglib SHARED cligg_list.c cligg_tree.c cligg_btree.c cligg_hashmap.c cligg_module.c cligg_event.c)
+add_library(cligglib SHARED cligg_list.c
+ cligg_tree.c
+ cligg_btree.c
+ cligg_hashmap.c
+ cligg_module.c
+ cligg_event.c)
Modified: src/modules/dummy/dummy.c
===================================================================
--- src/modules/dummy/dummy.c 2007-05-22 21:35:45 UTC (rev 65)
+++ src/modules/dummy/dummy.c 2007-05-24 15:47:23 UTC (rev 66)
@@ -1,6 +1,21 @@
+/**
+ * @file dummy.c
+ * @brief dummy module
+ */
#include <stdio.h>
#include <cligg_module.h>
+/**
+ * @defgroup dummy dummy
+ * @ingroup load_modules
+ * @brief Dummy module
+ *
+ * Nothing fancy here, this is just a module which has a constructor and destructor.
+ * This is for testing purpose
+ *
+ * @{
+ */
+
cligg_module_init dummy_init(void)
{
fprintf(stderr, "Dummy Module is loaded!\n");
@@ -10,3 +25,5 @@
{
fprintf(stderr, "Dummy Module is unloaded!\n");
}
+
+/* @} */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-22 21:35:48
|
Revision: 65
http://cligg.svn.sourceforge.net/cligg/?rev=65&view=rev
Author: sithhell
Date: 2007-05-22 14:35:45 -0700 (Tue, 22 May 2007)
Log Message:
-----------
add svn:ignore to our directories
Added Paths:
-----------
TAGS
doc/style.css
Property Changed:
----------------
/
doc/
src/bin/
src/lib/
src/modules/
src/modules/dummy/
src/modules/print/
src/modules/read/
Property changes on:
___________________________________________________________________
Name: svn:ignore
+ .*
CMake*
cmake*
progress.make
Makefile
Added: TAGS
===================================================================
--- TAGS (rev 0)
+++ TAGS 2007-05-22 21:35:45 UTC (rev 65)
@@ -0,0 +1,5097 @@
+
+doc/de/html/classes.html,345
+<tr><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> E </div></td></tr></table>letter_E32,1467
+</td><td><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> _ </div></td></tr></table>letter__33,1622
+
+doc/de/html/console_8c-source.html,0
+
+doc/de/html/functions_vars.html,0
+
+doc/de/html/cligg__tree_8c-source.html,6092
+<h1>src/lib/cligg_tree.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include <stdlib.h></span>l0000130,1228
+<a name="l00002"></a>00002 <span class="preprocessor">#include <string.h></span>l0000231,1388
+<a name="l00003"></a>00003 <span class="preprocessor">#ifdef DEBUG</span>l0000332,1475
+<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#include <stdio.h></span>l0000433,1549
+<a name="l00005"></a>00005 <span class="preprocessor">#endif</span>l0000534,1669
+<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#include <cligg_tree.h></span>l0000635,1737
+<a name="l00007"></a>00007 l0000736,1862
+<a name="l00008"></a>00008 <a class="code" href="struct__cligg__tree.html">cligg_tree</a>* cligg_tree_new(free_func_cb free_func) l0000837,1890
+<a name="l00009"></a>00009 {l0000938,2021
+<a name="l00010"></a>00010 <a class="code" href="struct__cligg__tree.html">cligg_tree</a> *<span class="keyword">new</span>;l0001039,2050
+<a name="l00011"></a>00011 l0001140,2179
+<a name="l00012"></a>00012 <span class="keyword">new</span> = (<a class="code" href="struct__cligg__tree.html">cligg_tree</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct__cligg__tree.html">cligg_tree</a>));l0001241,2207
+<a name="l00013"></a>00013 <span class="keywordflow">if</span>(<span class="keyword">new</span> == NULL)l0001342,2448
+<a name="l00014"></a>00014 <span class="keywordflow">return</span> NULL;l0001443,2557
+<a name="l00015"></a>00015 l0001544,2638
+<a name="l00016"></a>00016 memset(<span class="keyword">new</span>, 0, <span class="keyword">sizeof</span>(cligg_tree));l0001645,2670
+<a name="l00017"></a>00017 l0001746,2795
+<a name="l00018"></a>00018 <span class="keywordflow">if</span>(free_func) {l0001847,2823
+<a name="l00019"></a>00019 <span class="keyword">new</span>->free_func = free_func;l0001948,2903
+<a name="l00020"></a>00020 }l0002049,2998
+<a name="l00021"></a>00021 l0002150,3031
+<a name="l00022"></a>00022 <span class="preprocessor">#ifdef DEBUG</span>l0002251,3059
+<a name="l00023"></a>00023 <span class="preprocessor"></span> <span class="keywordflow">else</span> {l0002352,3133
+<a name="l00024"></a>00024 printf(<span class="stringliteral">"WARNING: No callback for freeing data specified.\n"</span>);l0002453,3238
+<a name="l00025"></a>00025 printf(<span class="stringliteral">"Possible Memory leak!\n"</span>);l0002554,3370
+<a name="l00026"></a>00026 }l0002655,3475
+<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>l0002756,3508
+<a name="l00028"></a>00028 <span class="preprocessor"></span> l0002857,3576
+<a name="l00029"></a>00029 <span class="keywordflow">return</span> <span class="keyword">new</span>;l0002958,3642
+<a name="l00030"></a>00030 }l0003059,3747
+<a name="l00031"></a>00031 l0003160,3776
+<a name="l00032"></a>00032 <span class="keywordtype">void</span> cligg_tree_clear(cligg_tree *tree)l0003261,3804
+<a name="l00033"></a>00033 {l0003362,3904
+<a name="l00034"></a>00034 l0003463,3933
+<a name="l00035"></a>00035 }l0003564,3965
+<a name="l00036"></a>00036 l0003665,3994
+<a name="l00037"></a>00037 <span class="keywordtype">void</span> cligg_tree_del(cligg_tree *);l0003766,4022
+<a name="l00038"></a>00038 l0003867,4117
+<a name="l00039"></a>00039 <span class="keywordtype">int</span> cligg_tree_isempty(cligg_tree *);l0003968,4145
+<a name="l00040"></a>00040 l0004069,4243
+<a name="l00041"></a>00041 cligg_tree* cligg_tree_copy(cligg_tree *);l0004170,4271
+<a name="l00042"></a>00042 l0004271,4341
+<a name="l00043"></a>00043 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_traverse_inorder(cligg_tree *);l0004372,4369
+<a name="l00044"></a>00044 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_traverse_postorder(cligg_tree *);l0004473,4520
+<a name="l00045"></a>00045 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_traverse_preorder(cligg_tree *);l0004574,4673
+<a name="l00046"></a>00046 l0004675,4825
+<a name="l00047"></a>00047 <span class="keywordtype">int</span> cligg_tree_add_root(cligg_tree *, <span class="keywordtype">void</span> *);l0004776,4853
+<a name="l00048"></a>00048 <span class="keywordtype">int</span> cligg_tree_add_lleaf(cligg_tree *, <span class="keywordtype">void</span> *);l0004877,4993
+<a name="l00049"></a>00049 <span class="keywordtype">int</span> cligg_tree_add_rleaf(cligg_tree *, <span class="keywordtype">void</span> *);l0004978,5134
+<a name="l00050"></a>00050 <span class="keywordtype">int</span> cligg_tree_add_nleaf(cligg_tree *, <span class="keywordtype">void</span> *, <span class="keywordtype">int</span>);l0005079,5275
+<a name="l00051"></a>00051 l0005180,5454
+<a name="l00052"></a>00052 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_get_root(cligg_tree *);l0005281,5482
+<a name="l00053"></a>00053 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_get_lleaf(cligg_tree *);l0005382,5625
+<a name="l00054"></a>00054 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_get_rleaf(cligg_tree *);l0005483,5769
+<a name="l00055"></a>00055 <a class="code" href="struct__cligg__tree__element.html">cligg_tree_element</a>* cligg_tree_get_nleaf(cligg_tree *);l0005584,5913
+<a name="l00056"></a>00056 l0005685,6057
+<a name="l00057"></a>00057 <span class="keywordtype">void</span> cligg_tree_delete_lleaf(cligg_tree *);l0005786,6085
+<a name="l00058"></a>00058 <span class="keywordtype">void</span> cligg_tree_delete_rleaf(cligg_tree *);l0005887,6189
+<a name="l00059"></a>00059 <span class="keywordtype">void</span> cligg_tree_delete_nleaf(cligg_tree *, <span class="keywordtype">int</span>);l0005988,6293
+
+doc/de/html/struct__cligg__event.html,747
+<h1>_cligg_event Strukturreferenz</h1><!-- doxytag: class="_cligg_event" --><hr><a name="_details"></a><h2>Ausf\xFChrliche Beschreibung</h2>_details30,1220
+<a class="anchor" name="40694383ca6d297167b464c0c5b96675"></a><!-- doxytag: member="_cligg_event::event_cb" ref="40694383ca6d297167b464c0c5b96675" args="" -->40694383ca6d297167b464c0c5b9667546,2389
+<a class="anchor" name="75040526bd3480751c588088f45ae94d"></a><!-- doxytag: member="_cligg_event::hash" ref="75040526bd3480751c588088f45ae94d" args="" -->75040526bd3480751c588088f45ae94d63,3093
+<a class="anchor" name="f3d3b0b81c7a9d1359c5fc341bcffd73"></a><!-- doxytag: member="_cligg_event::name" ref="f3d3b0b81c7a9d1359c5fc341bcffd73" args="" -->f3d3b0b81c7a9d1359c5fc341bcffd7380,3685
+
+doc/de/html/cligg__module_8c-source.html,343
+<h1>src/lib/cligg_module.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define BLUBB "MAEEH!!!"</span>l0000130,1230
+<a name="l00002"></a>00002 <span class="preprocessor"></span>l0000231,1391
+<a name="l00003"></a>00003 <span class="keywordtype">void</span> blubb(){}l0000332,1453
+
+doc/de/html/functions.html,0
+
+doc/de/html/struct__cligg__tree.html,1191
+<h1>_cligg_tree Strukturreferenz</h1><!-- doxytag: class="_cligg_tree" --><hr><a name="_details"></a><h2>Ausf\xFChrliche Beschreibung</h2>_details30,1219
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8e253985fe1ef37b4903c048a691c172"></a><!-- doxytag: member="_cligg_tree::root" ref="8e253985fe1ef37b4903c048a691c172" args="" -->8e253985fe1ef37b4903c048a691c17238,1591
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="af92799896f4c2396ee6edc5823c909a"></a><!-- doxytag: member="_cligg_tree::left_leaf" ref="af92799896f4c2396ee6edc5823c909a" args="" -->af92799896f4c2396ee6edc5823c909a41,2037
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="276219bf2b774930b89dd2faaeba2b91"></a><!-- doxytag: member="_cligg_tree::size" ref="276219bf2b774930b89dd2faaeba2b91" args="" -->276219bf2b774930b89dd2faaeba2b9144,2493
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c0237e4c659efcf588aa206dabb0533b"></a><!-- doxytag: member="_cligg_tree::free_func" ref="c0237e4c659efcf588aa206dabb0533b" args="" -->c0237e4c659efcf588aa206dabb0533b47,2863
+
+doc/de/html/index.html,388
+<h2><a class="anchor" name="intro">intro30,1353
+cligg shall become a browser which is designed to make use of modules wherever possible. We are planning to support different graphical toolkits. At the moment we just support all POSIX compliant Operating Systems.<h2><a class="anchor" name="compiling">compiling32,1411
+</pre><h2><a class="anchor" name="components">components40,2045
+
+doc/de/html/globals.html,0
+
+doc/de/html/installdox,27
+sub usage {usage111,2315
+
+doc/de/html/struct__cligg__list__element.html,699
+<h1>_cligg_list_element Strukturreferenz</h1><!-- doxytag: class="_cligg_list_element" --><hr><a name="_details"></a><h2>Ausf\xFChrliche Beschreibung</h2>_details30,1227
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c06245ae83631de97ad273625faef8bc"></a><!-- doxytag: member="_cligg_list_element::next" ref="c06245ae83631de97ad273625faef8bc" args="" -->c06245ae83631de97ad273625faef8bc38,1615
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="08e81a015a66bf5cd912c11000e717f9"></a><!-- doxytag: member="_cligg_list_element::data" ref="08e81a015a66bf5cd912c11000e717f9" args="" -->08e81a015a66bf5cd912c11000e717f941,2078
+
+doc/de/html/struct__cligg__list.html,1191
+<h1>_cligg_list Strukturreferenz</h1><!-- doxytag: class="_cligg_list" --><hr><a name="_details"></a><h2>Ausf\xFChrliche Beschreibung</h2>_details30,1219
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1464d8baaf84e873f81e86087d47d286"></a><!-- doxytag: member="_cligg_list::first" ref="1464d8baaf84e873f81e86087d47d286" args="" -->1464d8baaf84e873f81e86087d47d28638,1591
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="688b1ba469c4c1db43f44486d02ad723"></a><!-- doxytag: member="_cligg_list::last" ref="688b1ba469c4c1db43f44486d02ad723" args="" -->688b1ba469c4c1db43f44486d02ad72341,2039
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="820b7e7a9087bcc47a53bcd5ef6f0416"></a><!-- doxytag: member="_cligg_list::free_func" ref="820b7e7a9087bcc47a53bcd5ef6f0416" args="" -->820b7e7a9087bcc47a53bcd5ef6f041644,2485
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="16b32f72bae46e1208a30a604f66e1b5"></a><!-- doxytag: member="_cligg_list::elements" ref="16b32f72bae46e1208a30a604f66e1b5" args="" -->16b32f72bae46e1208a30a604f66e1b547,2874
+
+doc/de/html/cligg__tree_8h-source.html,6310
+<h1>src/lib/cligg_tree.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CLIGG_TREE_H</span>l0000130,1228
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CLIGG_TREE_H</span>l0000231,1383
+<a name="l00003"></a>00003 <span class="preprocessor"></span>l0000332,1499
+<a name="l00004"></a>00004 <span class="preprocessor">#include <cligglib.h></span>l0000433,1561
+<a name="l00005"></a>00005 <span class="preprocessor">#include <cligg_list.h></span>l0000534,1650
+<a name="l00006"></a>00006 l0000635,1741
+<a name="l00007"></a>00007 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__cligg__tree.html">_cligg_tree</a> cligg_tree;l0000736,1769
+<a name="l00008"></a>00008 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__cligg__tree__element.html">_cligg_tree_element</a> cligg_tree_element;l0000837,1945
+<a name="l00009"></a>00009 l0000938,2146
+<a name="l00010"></a><a class="code" href="struct__cligg__tree.html">00010</a> <span class="keyword">struct </span><a class="code" href="struct__cligg__tree.html">_cligg_tree</a> {l0001039,2174
+<a name="l00011"></a><a class="code" href="struct__cligg__tree.html#8e253985fe1ef37b4903c048a691c172">00011</a> cligg_tree_element *<a class="code" href="struct__cligg__tree.html#8e253985fe1ef37b4903c048a691c172">root</a>;l0001140,2355
+<a name="l00012"></a><a class="code" href="struct__cligg__tree.html#af92799896f4c2396ee6edc5823c909a">00012</a> cligg_tree_element *<a class="code" href="struct__cligg__tree.html#af92799896f4c2396ee6edc5823c909a">left_leaf</a>;l0001241,2582
+<a name="l00013"></a>00013 <span class="comment">/* number of elements */</span>l0001342,2814
+<a name="l00014"></a><a class="code" href="struct__cligg__tree.html#276219bf2b774930b89dd2faaeba2b91">00014</a> <span class="keywordtype">int</span> <a class="code" href="struct__cligg__tree.html#276219bf2b774930b89dd2faaeba2b91">size</a>;l0001443,2899
+<a name="l00015"></a><a class="code" href="struct__cligg__tree.html#c0237e4c659efcf588aa206dabb0533b">00015</a> free_func_cb <a class="code" href="struct__cligg__tree.html#c0237e4c659efcf588aa206dabb0533b">free_func</a>;l0001544,3143
+<a name="l00016"></a>00016 };l0001645,3368
+<a name="l00017"></a>00017 l0001746,3398
+<a name="l00018"></a><a class="code" href="struct__cligg__tree__element.html">00018</a> <span class="keyword">struct </span><a class="code" href="struct__cligg__tree__element.html">_cligg_tree_element</a> {l0001847,3426
+<a name="l00019"></a><a class="code" href="struct__cligg__tree__element.html#6eb93c7fbc813ccd7aa4aad570abd6b8">00019</a> <span class="keywordtype">void</span> *<a class="code" href="struct__cligg__tree__element.html#6eb93c7fbc813ccd7aa4aad570abd6b8">value</a>;l0001948,3633
+<a name="l00020"></a><a class="code" href="struct__cligg__tree__element.html#7fd0d6db23600c7a90f3d3c92f41764b">00020</a> cligg_tree_element *<a class="code" href="struct__cligg__tree__element.html#7fd0d6db23600c7a90f3d3c92f41764b">parent</a>;l0002049,3898
+<a name="l00021"></a><a class="code" href="struct__cligg__tree__element.html#05154c8257761721ef3374f46e448964">00021</a> <a class="code" href="struct__cligg__list.html">cligg_list</a> *<a class="code" href="struct__cligg__tree__element.html#05154c8257761721ef3374f46e448964">ancestors</a>;l0002150,4145
+<a name="l00022"></a>00022 };l0002251,4439
+<a name="l00023"></a>00023 l0002352,4469
+<a name="l00024"></a>00024 cligg_tree* cligg_tree_new(free_func_cb);l0002453,4497
+<a name="l00025"></a>00025 l0002554,4566
+<a name="l00026"></a>00026 <span class="keywordtype">void</span> cligg_tree_clear(cligg_tree *);l0002655,4594
+<a name="l00027"></a>00027 <span class="keywordtype">void</span> cligg_tree_del(cligg_tree *);l0002756,4691
+<a name="l00028"></a>00028 l0002857,4786
+<a name="l00029"></a>00029 <span class="keywordtype">int</span> cligg_tree_isempty(cligg_tree *);l0002958,4814
+<a name="l00030"></a>00030 l0003059,4912
+<a name="l00031"></a>00031 cligg_tree* cligg_tree_copy(cligg_tree *);l0003160,4940
+<a name="l00032"></a>00032 l0003261,5010
+<a name="l00033"></a>00033 cligg_tree_element* cligg_tree_traverse_inorder(cligg_tree *);l0003362,5038
+<a name="l00034"></a>00034 cligg_tree_element* cligg_tree_traverse_postorder(cligg_tree *);l0003463,5128
+<a name="l00035"></a>00035 cligg_tree_element* cligg_tree_traverse_preorder(cligg_tree *);l0003564,5220
+<a name="l00036"></a>00036 l0003665,5311
+<a name="l00037"></a>00037 <span class="keywordtype">int</span> cligg_tree_add_root(cligg_tree *, <span class="keywordtype">void</span> *);l0003766,5339
+<a name="l00038"></a>00038 <span class="keywordtype">int</span> cligg_tree_add_lleaf(cligg_tree *, <span class="keywordtype">void</span> *);l0003867,5479
+<a name="l00039"></a>00039 <span class="keywordtype">int</span> cligg_tree_add_rleaf(cligg_tree *, <span class="keywordtype">void</span> *);l0003968,5620
+<a name="l00040"></a>00040 <span class="keywordtype">int</span> cligg_tree_add_nleaf(cligg_tree *, <span class="keywordtype">void</span> *, <span class="keywordtype">int</span>);l0004069,5761
+<a name="l00041"></a>00041 l0004170,5940
+<a name="l00042"></a>00042 cligg_tree_element* cligg_tree_get_root(cligg_tree *);l0004271,5968
+<a name="l00043"></a>00043 cligg_tree_element* cligg_tree_get_lleaf(cligg_tree *);l0004372,6050
+<a name="l00044"></a>00044 cligg_tree_element* cligg_tree_get_rleaf(cligg_tree *);l0004473,6133
+<a name="l00045"></a>00045 cligg_tree_element* cligg_tree_get_nleaf(cligg_tree *);l0004574,6216
+<a name="l00046"></a>00046 l0004675,6299
+<a name="l00047"></a>00047 <span class="keywordtype">void</span> cligg_tree_delete_lleaf(cligg_tree *);l0004776,6327
+<a name="l00048"></a>00048 <span class="keywordtype">void</span> cligg_tree_delete_rleaf(cligg_tree *);l0004877,6431
+<a name="l00049"></a>00049 <span class="keywordtype">void</span> cligg_tree_delete_nleaf(cligg_tree *, <span class="keywordtype">int</span>);l0004978,6535
+<a name="l00050"></a>00050 l0005079,6677
+<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>l0005180,6705
+
+doc/de/html/tree.html,62
+ function toggleFolder(id, imageNode) toggleFolder11,434
+
+doc/de/html/files.html,0
+
+doc/de/html/cligg__list_8c-source.html,38175
+<h1>src/lib/cligg_list.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include <cligg_list.h></span>l0000130,1228
+<a name="l00002"></a>00002 <span class="preprocessor">#include <stdlib.h></span>l0000231,1392
+<a name="l00003"></a>00003 <span class="preprocessor">#ifdef DEBUG</span>l0000332,1479
+<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#include <stdio.h></span>l0000433,1553
+<a name="l00005"></a>00005 <span class="preprocessor">#endif</span>l0000534,1673
+<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#include <string.h></span>l0000635,1741
+<a name="l00007"></a>00007 l0000736,1862
+<a name="l00008"></a>00008 <span class="comment">/* create a new list */</span>l0000837,1890
+<a name="l00009"></a>00009 <a class="code" href="struct__cligg__list.html">cligg_list</a>* cligg_list_new(free_func_cb free_func)l0000938,1970
+<a name="l00010"></a>00010 {l0001039,2100
+<a name="l00011"></a>00011 <a class="code" href="struct__cligg__list.html">cligg_list</a> *new_list;l0001140,2129
+<a name="l00012"></a>00012 l0001241,2234
+<a name="l00013"></a>00013 new_list = (<a class="code" href="struct__cligg__list.html">cligg_list</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct__cligg__list.html">cligg_list</a>));l0001342,2262
+<a name="l00014"></a>00014 <span class="keywordflow">if</span>(!new_list) {l0001443,2479
+<a name="l00015"></a>00015 <span class="keywordflow">return</span> NULL;l0001544,2559
+<a name="l00016"></a>00016 }l0001645,2640
+<a name="l00017"></a>00017 l0001746,2673
+<a name="l00018"></a>00018 memset(new_list, 0, <span class="keyword">sizeof</span>(cligg_list));l0001847,2701
+<a name="l00019"></a>00019 l0001948,2802
+<a name="l00020"></a>00020 <span class="keywordflow">if</span>(free_func) {l0002049,2834
+<a name="l00021"></a>00021 new_list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a> = free_func;l0002150,2914
+<a name="l00022"></a>00022 }l0002251,3070
+<a name="l00023"></a>00023 l0002352,3103
+<a name="l00024"></a>00024 <span class="preprocessor">#ifdef DEBUG</span>l0002453,3131
+<a name="l00025"></a>00025 <span class="preprocessor"></span> <span class="keywordflow">else</span> {l0002554,3205
+<a name="l00026"></a>00026 printf(<span class="stringliteral">"WARNING: No callback for freeing data specified.\n"</span>);l0002655,3310
+<a name="l00027"></a>00027 printf(<span class="stringliteral">"Possible Memory leak!\n"</span>);l0002756,3442
+<a name="l00028"></a>00028 }l0002857,3547
+<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>l0002958,3580
+<a name="l00030"></a>00030 <span class="preprocessor"></span>l0003059,3648
+<a name="l00031"></a>00031 <span class="keywordflow">return</span> new_list;l0003160,3710
+<a name="l00032"></a>00032 }l0003261,3791
+<a name="l00033"></a>00033 l0003362,3820
+<a name="l00034"></a>00034 <span class="comment">/* clear the list */</span>l0003463,3848
+<a name="l00035"></a>00035 <span class="keywordtype">void</span> cligg_list_clear(cligg_list *list) {l0003564,3925
+<a name="l00036"></a>00036 <a class="code" href="struct__cligg__list__element.html">cligg_list_element</a> *old;l0003665,4027
+<a name="l00037"></a>00037 <a class="code" href="struct__cligg__list__element.html">cligg_list_element</a> *next;l0003766,4144
+<a name="l00038"></a>00038 l0003867,4262
+<a name="l00039"></a>00039 <span class="keywordflow">if</span>(!list) {l0003968,4290
+<a name="l00040"></a>00040 <span class="keywordflow">return</span>;l0004069,4366
+<a name="l00041"></a>00041 }l0004170,4442
+<a name="l00042"></a>00042 l0004271,4475
+<a name="l00043"></a>00043 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l0004372,4503
+<a name="l00044"></a>00044 <span class="keywordflow">return</span>;l0004473,4598
+<a name="l00045"></a>00045 }l0004574,4674
+<a name="l00046"></a>00046 l0004675,4707
+<a name="l00047"></a>00047 next = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l0004776,4735
+<a name="l00048"></a>00048 <span class="keywordflow">while</span>(next-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>) {l0004877,4874
+<a name="l00049"></a>00049 old = next;l0004978,5055
+<a name="l00050"></a>00050 next = next-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l0005079,5102
+<a name="l00051"></a>00051 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>) {l0005180,5253
+<a name="l00052"></a>00052 list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>(old-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>);l0005281,5431
+<a name="l00053"></a>00053 }l0005382,5683
+<a name="l00054"></a>00054 free(old);l0005483,5720
+<a name="l00055"></a>00055 }l0005584,5766
+<a name="l00056"></a>00056 free(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>);l0005685,5799
+<a name="l00057"></a>00057 memset(list, 0, <span class="keyword">sizeof</span>(cligg_list));l0005786,5936
+<a name="l00058"></a>00058 }l0005887,6033
+<a name="l00059"></a>00059 l0005988,6062
+<a name="l00060"></a>00060 <span class="comment">/* delete the list */</span>l0006089,6090
+<a name="l00061"></a>00061 <span class="keywordtype">void</span> cligg_list_del(cligg_list *list)l0006190,6168
+<a name="l00062"></a>00062 {l0006291,6266
+<a name="l00063"></a>00063 <span class="keywordflow">if</span>(!list) {l0006392,6295
+<a name="l00064"></a>00064 <span class="keywordflow">return</span>;l0006493,6371
+<a name="l00065"></a>00065 }l0006594,6447
+<a name="l00066"></a>00066 l0006695,6480
+<a name="l00067"></a>00067 cligg_list_clear(list);l0006796,6508
+<a name="l00068"></a>00068 free(list);l0006897,6563
+<a name="l00069"></a>00069 list = NULL;l0006998,6606
+<a name="l00070"></a>00070 }l0007099,6650
+<a name="l00071"></a>00071 l00071100,6679
+<a name="l00072"></a>00072 <span class="comment">/* check if list is empty */</span>l00072101,6707
+<a name="l00073"></a>00073 <span class="keywordtype">int</span> cligg_list_isempty(cligg_list *list)l00073102,6792
+<a name="l00074"></a>00074 {l00074103,6893
+<a name="l00075"></a>00075 <span class="keywordflow">if</span>(!list) {l00075104,6922
+<a name="l00076"></a>00076 <span class="keywordflow">return</span> TRUE;l00076105,6998
+<a name="l00077"></a>00077 }l00077106,7079
+<a name="l00078"></a>00078 l00078107,7112
+<a name="l00079"></a>00079 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a> == 0) {l00079108,7140
+<a name="l00080"></a>00080 <span class="keywordflow">return</span> TRUE;l00080109,7318
+<a name="l00081"></a>00081 }l00081110,7399
+<a name="l00082"></a>00082 <span class="keywordflow">return</span> FALSE;l00082111,7432
+<a name="l00083"></a>00083 }l00083112,7510
+<a name="l00084"></a>00084 l00084113,7539
+<a name="l00085"></a>00085 <span class="comment">/* copy a list */</span>l00085114,7567
+<a name="l00086"></a>00086 cligg_list* cligg_list_copy(cligg_list *list)l00086115,7641
+<a name="l00087"></a>00087 {l00087116,7714
+<a name="l00088"></a>00088 cligg_list *copy;l00088117,7743
+<a name="l00089"></a>00089 <a class="code" href="struct__cligg__list__element.html">cligg_list_element</a> *tmp;l00089118,7792
+<a name="l00090"></a>00090 l00090119,7909
+<a name="l00091"></a>00091 copy = cligg_list_new(list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>);l00091120,7941
+<a name="l00092"></a>00092 <span class="comment">/*copy->elements = list->elements;*/</span>l00092121,8100
+<a name="l00093"></a>00093 tmp = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00093122,8203
+<a name="l00094"></a>00094 <span class="keywordflow">while</span>(tmp != list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>) {l00094123,8341
+<a name="l00095"></a>00095 <span class="keywordflow">if</span>(cligg_list_element_append(copy, tmp-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>) == FALSE)l00095124,8520
+<a name="l00096"></a>00096 <span class="keywordflow">return</span> NULL;l00096125,8741
+<a name="l00097"></a>00097 tmp = tmp-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00097126,8826
+<a name="l00098"></a>00098 }l00098127,8975
+<a name="l00099"></a>00099 <span class="keywordflow">return</span> copy;l00099128,9008
+<a name="l00100"></a>00100 }l00100129,9085
+<a name="l00101"></a>00101 l00101130,9114
+<a name="l00102"></a>00102 <span class="comment">/* add an element to the list */</span>l00102131,9142
+<a name="l00103"></a>00103 <span class="keywordtype">int</span> cligg_list_element_append(cligg_list *list, <span class="keywordtype">void</span> *data)l00103132,9231
+<a name="l00104"></a>00104 {l00104133,9384
+<a name="l00105"></a>00105 <a class="code" href="struct__cligg__list__element.html">cligg_list_element</a> *new_element;l00105134,9413
+<a name="l00106"></a>00106 l00106135,9538
+<a name="l00107"></a>00107 <span class="keywordflow">if</span>(!list) {l00107136,9566
+<a name="l00108"></a>00108 <span class="keywordflow">return</span> FALSE;l00108137,9642
+<a name="l00109"></a>00109 }l00109138,9724
+<a name="l00110"></a>00110 l00110139,9757
+<a name="l00111"></a>00111 <span class="comment">/* initialize the new element*/</span>l00111140,9785
+<a name="l00112"></a>00112 new_element = (<a class="code" href="struct__cligg__list__element.html">cligg_list_element</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct__cligg__list__element.html">cligg_list_element</a>));l00112141,9877
+<a name="l00113"></a>00113 <span class="keywordflow">if</span>(!new_element) {l00113142,10131
+<a name="l00114"></a>00114 <span class="keywordflow">return</span> FALSE;l00114143,10214
+<a name="l00115"></a>00115 }l00115144,10296
+<a name="l00116"></a>00116 new_element-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a> = data;l00116145,10329
+<a name="l00117"></a>00117 new_element-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = NULL;l00117146,10483
+<a name="l00118"></a>00118 l00118147,10637
+<a name="l00119"></a>00119 <span class="comment">/*append to list*/</span>l00119148,10665
+<a name="l00120"></a>00120 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>) {l00120149,10744
+<a name="l00121"></a>00121 list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = new_element;l00121150,10913
+<a name="l00122"></a>00122 }l00122151,11165
+<a name="l00123"></a>00123 l00123152,11198
+<a name="l00124"></a>00124 list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> = new_element;l00124153,11226
+<a name="l00125"></a>00125 l00125154,11371
+<a name="l00126"></a>00126 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> == NULL) {l00126155,11399
+<a name="l00127"></a>00127 list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> = list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>;l00127156,11577
+<a name="l00128"></a>00128 }l00128157,11814
+<a name="l00129"></a>00129 l00129158,11847
+<a name="l00130"></a>00130 list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>++;l00130159,11875
+<a name="l00131"></a>00131 <span class="keywordflow">return</span> TRUE;l00131160,12012
+<a name="l00132"></a>00132 }l00132161,12089
+<a name="l00133"></a>00133 l00133162,12118
+<a name="l00134"></a>00134 <span class="keywordtype">int</span> cligg_list_element_prepend(cligg_list *list, <span class="keywordtype">void</span> *data)l00134163,12146
+<a name="l00135"></a>00135 {l00135164,12300
+<a name="l00136"></a>00136 cligg_list_element *new_element;l00136165,12329
+<a name="l00137"></a>00137 l00137166,12393
+<a name="l00138"></a>00138 <span class="keywordflow">if</span>(!list) {l00138167,12421
+<a name="l00139"></a>00139 <span class="keywordflow">return</span> FALSE;l00139168,12497
+<a name="l00140"></a>00140 }l00140169,12579
+<a name="l00141"></a>00141 l00141170,12612
+<a name="l00142"></a>00142 <span class="comment">/*initialize the new element */</span>l00142171,12640
+<a name="l00143"></a>00143 new_element = (cligg_list_element *)malloc(<span class="keyword">sizeof</span>(cligg_list_element));l00143172,12732
+<a name="l00144"></a>00144 <span class="keywordflow">if</span>(!new_element) {l00144173,12864
+<a name="l00145"></a>00145 <span class="keywordflow">return</span> FALSE;l00145174,12947
+<a name="l00146"></a>00146 }l00146175,13029
+<a name="l00147"></a>00147 new_element-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a> = data;l00147176,13062
+<a name="l00148"></a>00148 l00148177,13216
+<a name="l00149"></a>00149 <span class="comment">/* prepend to list */</span>l00149178,13244
+<a name="l00150"></a>00150 new_element-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00150179,13326
+<a name="l00151"></a>00151 l00151180,13575
+<a name="l00152"></a>00152 list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> = new_element;l00152181,13607
+<a name="l00153"></a>00153 l00153182,13753
+<a name="l00154"></a>00154 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> == NULL) {l00154183,13781
+<a name="l00155"></a>00155 list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00155184,13958
+<a name="l00156"></a>00156 }l00156185,14195
+<a name="l00157"></a>00157 l00157186,14228
+<a name="l00158"></a>00158 list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>++;l00158187,14256
+<a name="l00159"></a>00159 l00159188,14393
+<a name="l00160"></a>00160 <span class="keywordflow">return</span> TRUE;l00160189,14421
+<a name="l00161"></a>00161 }l00161190,14498
+<a name="l00162"></a>00162 l00162191,14527
+<a name="l00163"></a>00163 <span class="comment">/* append another list */</span>l00163192,14555
+<a name="l00164"></a>00164 <span class="keywordtype">int</span> cligg_list_list_append(cligg_list *list1, cligg_list *list2)l00164193,14637
+<a name="l00165"></a>00165 {l00165194,14770
+<a name="l00166"></a>00166 list1-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = list2-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00166195,14799
+<a name="l00167"></a>00167 list1-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> = list2-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>;l00167196,15137
+<a name="l00168"></a>00168 <span class="keywordflow">return</span> TRUE;l00168197,15371
+<a name="l00169"></a>00169 }l00169198,15448
+<a name="l00170"></a>00170 l00170199,15477
+<a name="l00171"></a>00171 <span class="comment">/* prepend another list */</span>l00171200,15505
+<a name="l00172"></a>00172 <span class="keywordtype">int</span> cligg_list_list_prepend(cligg_list *list1, cligg_list *list2)l00172201,15588
+<a name="l00173"></a>00173 {l00173202,15722
+<a name="l00174"></a>00174 list2-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = list1-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00174203,15751
+<a name="l00175"></a>00175 list1-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> = list2-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00175204,16089
+<a name="l00176"></a>00176 list2-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> = list1-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00176205,16325
+<a name="l00177"></a>00177 <span class="keywordflow">return</span> TRUE;l00177206,16560
+<a name="l00178"></a>00178 }l00178207,16637
+<a name="l00179"></a>00179 l00179208,16666
+<a name="l00180"></a>00180 <span class="comment">/* delete an element from the list */</span>l00180209,16694
+<a name="l00181"></a>00181 <span class="keywordtype">int</span> cligg_list_element_del_first(cligg_list *list)l00181210,16788
+<a name="l00182"></a>00182 {l00182211,16899
+<a name="l00183"></a>00183 cligg_list_element *old;l00183212,16928
+<a name="l00184"></a>00184 l00184213,16984
+<a name="l00185"></a>00185 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00185214,17016
+<a name="l00186"></a>00186 <span class="keywordflow">return</span> FALSE;l00186215,17111
+<a name="l00187"></a>00187 }l00187216,17193
+<a name="l00188"></a>00188 l00188217,17226
+<a name="l00189"></a>00189 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> == NULL) {l00189218,17254
+<a name="l00190"></a>00190 <span class="keywordflow">return</span> FALSE;l00190219,17432
+<a name="l00191"></a>00191 }l00191220,17514
+<a name="l00192"></a>00192 l00192221,17547
+<a name="l00193"></a>00193 old = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00193222,17575
+<a name="l00194"></a>00194 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>) {l00194223,17713
+<a name="l00195"></a>00195 list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>(old-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>);l00195224,17887
+<a name="l00196"></a>00196 }l00196225,18135
+<a name="l00197"></a>00197 list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a> = old-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00197226,18168
+<a name="l00198"></a>00198 free(old);l00198227,18409
+<a name="l00199"></a>00199 l00199228,18451
+<a name="l00200"></a>00200 list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>--;l00200229,18479
+<a name="l00201"></a>00201 l00201230,18616
+<a name="l00202"></a>00202 <span class="keywordflow">return</span> TRUE;l00202231,18644
+<a name="l00203"></a>00203 }l00203232,18721
+<a name="l00204"></a>00204 l00204233,18750
+<a name="l00205"></a>00205 <span class="keywordtype">int</span> cligg_list_element_del_last(cligg_list *list)l00205234,18778
+<a name="l00206"></a>00206 {l00206235,18888
+<a name="l00207"></a>00207 cligg_list_element *old;l00207236,18917
+<a name="l00208"></a>00208 cligg_list_element *previous;l00208237,18973
+<a name="l00209"></a>00209 l00209238,19034
+<a name="l00210"></a>00210 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00210239,19062
+<a name="l00211"></a>00211 <span class="keywordflow">return</span> FALSE;l00211240,19157
+<a name="l00212"></a>00212 }l00212241,19239
+<a name="l00213"></a>00213 l00213242,19272
+<a name="l00214"></a>00214 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> == NULL) {l00214243,19300
+<a name="l00215"></a>00215 <span class="keywordflow">return</span> FALSE;l00215244,19477
+<a name="l00216"></a>00216 }l00216245,19559
+<a name="l00217"></a>00217 l00217246,19592
+<a name="l00218"></a>00218 old = list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>;l00218247,19620
+<a name="l00219"></a>00219 l00219248,19757
+<a name="l00220"></a>00220 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>) {l00220249,19785
+<a name="l00221"></a>00221 list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>(old-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>);l00221250,19959
+<a name="l00222"></a>00222 }l00222251,20207
+<a name="l00223"></a>00223 l00223252,20240
+<a name="l00224"></a>00224 previous = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00224253,20268
+<a name="l00225"></a>00225 <span class="keywordflow">while</span>(previous && previous-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> != old) {l00225254,20411
+<a name="l00226"></a>00226 previous = previous-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00226255,20623
+<a name="l00227"></a>00227 }l00227256,20782
+<a name="l00228"></a>00228 l00228257,20815
+<a name="l00229"></a>00229 list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a> = previous;l00229258,20843
+<a name="l00230"></a>00230 <span class="keywordflow">if</span>(previous) {l00230259,20985
+<a name="l00231"></a>00231 previous-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = NULL;l00231260,21064
+<a name="l00232"></a>00232 }l00232261,21219
+<a name="l00233"></a>00233 l00233262,21252
+<a name="l00234"></a>00234 free(old);l00234263,21280
+<a name="l00235"></a>00235 l00235264,21322
+<a name="l00236"></a>00236 list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>--;l00236265,21350
+<a name="l00237"></a>00237 l00237266,21487
+<a name="l00238"></a>00238 <span class="keywordflow">return</span> TRUE;l00238267,21515
+<a name="l00239"></a>00239 }l00239268,21592
+<a name="l00240"></a>00240 l00240269,21621
+<a name="l00241"></a>00241 <span class="keywordtype">int</span> cligg_list_element_del_index(cligg_list *list, <span class="keywordtype">int</span> index)l00241270,21649
+<a name="l00242"></a>00242 {l00242271,21804
+<a name="l00243"></a>00243 <span class="keywordtype">int</span> i = 0;l00243272,21833
+<a name="l00244"></a>00244 cligg_list_element *old;l00244273,21908
+<a name="l00245"></a>00245 cligg_list_element *previous;l00245274,21964
+<a name="l00246"></a>00246 l00246275,22025
+<a name="l00247"></a>00247 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00247276,22053
+<a name="l00248"></a>00248 <span class="keywordflow">return</span> FALSE;l00248277,22148
+<a name="l00249"></a>00249 }l00249278,22230
+<a name="l00250"></a>00250 <span class="keywordflow">if</span>(index >= list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a> || index < 0) {l00250279,22263
+<a name="l00251"></a>00251 <span class="keywordflow">return</span> FALSE;l00251280,22464
+<a name="l00252"></a>00252 }l00252281,22546
+<a name="l00253"></a>00253 l00253282,22579
+<a name="l00254"></a>00254 <span class="keywordflow">if</span>(index == 0) {l00254283,22607
+<a name="l00255"></a>00255 <span class="keywordflow">return</span> cligg_list_element_del_first(list);l00255284,22688
+<a name="l00256"></a>00256 }l00256285,22799
+<a name="l00257"></a>00257 l00257286,22832
+<a name="l00258"></a>00258 <span class="keywordflow">if</span>(index == list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>-1) {l00258287,22860
+<a name="l00259"></a>00259 <span class="keywordflow">return</span> cligg_list_element_del_last(list);l00259288,23044
+<a name="l00260"></a>00260 }l00260289,23154
+<a name="l00261"></a>00261 l00261290,23187
+<a name="l00262"></a>00262 old = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00262291,23215
+<a name="l00263"></a>00263 <span class="keywordflow">while</span>(old) {l00263292,23353
+<a name="l00264"></a>00264 <span class="keywordflow">if</span>(i == index) {l00264293,23430
+<a name="l00265"></a>00265 <span class="keywordflow">break</span>;l00265294,23515
+<a name="l00266"></a>00266 }l00266295,23594
+<a name="l00267"></a>00267 previous = old;l00267296,23631
+<a name="l00268"></a>00268 old = old-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00268297,23682
+<a name="l00269"></a>00269 i++;l00269298,23831
+<a name="l00270"></a>00270 }l00270299,23871
+<a name="l00271"></a>00271 l00271300,23904
+<a name="l00272"></a>00272 previous-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = old-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00272301,23932
+<a name="l00273"></a>00273 <span class="keywordflow">if</span>(list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>) {l00273302,24185
+<a name="l00274"></a>00274 list-><a class="code" href="struct__cligg__list.html#820b7e7a9087bcc47a53bcd5ef6f0416">free_func</a>(old-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>);l00274303,24359
+<a name="l00275"></a>00275 }l00275304,24607
+<a name="l00276"></a>00276 free(old);l00276305,24640
+<a name="l00277"></a>00277 l00277306,24682
+<a name="l00278"></a>00278 <span class="keywordflow">return</span> TRUE;l00278307,24710
+<a name="l00279"></a>00279 }l00279308,24787
+<a name="l00280"></a>00280 l00280309,24816
+<a name="l00281"></a>00281 <span class="comment">/* get list element data*/</span>l00281310,24844
+<a name="l00282"></a>00282 <span class="keywordtype">void</span>* cligg_list_element_get_first(cligg_list *list)l00282311,24927
+<a name="l00283"></a>00283 {l00283312,25040
+<a name="l00284"></a>00284 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00284313,25069
+<a name="l00285"></a>00285 <span class="keywordflow">return</span> NULL;l00285314,25164
+<a name="l00286"></a>00286 }l00286315,25245
+<a name="l00287"></a>00287 <span class="keywordflow">return</span> list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>;l00287316,25278
+<a name="l00288"></a>00288 }l00288317,25553
+<a name="l00289"></a>00289 l00289318,25582
+<a name="l00290"></a>00290 <span class="keywordtype">void</span>* cligg_list_element_get_last(cligg_list *list)l00290319,25610
+<a name="l00291"></a>00291 {l00291320,25722
+<a name="l00292"></a>00292 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00292321,25751
+<a name="l00293"></a>00293 <span class="keywordflow">return</span> NULL;l00293322,25846
+<a name="l00294"></a>00294 }l00294323,25927
+<a name="l00295"></a>00295 <span class="keywordflow">return</span> list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>;l00295324,25960
+<a name="l00296"></a>00296 }l00296325,26234
+<a name="l00297"></a>00297 l00297326,26263
+<a name="l00298"></a>00298 <span class="keywordtype">void</span>* cligg_list_element_get_index(cligg_list *list, <span class="keywordtype">int</span> index)l00298327,26291
+<a name="l00299"></a>00299 {l00299328,26448
+<a name="l00300"></a>00300 <span class="keywordtype">int</span> i = 0;l00300329,26477
+<a name="l00301"></a>00301 cligg_list_element *tmp;l00301330,26552
+<a name="l00302"></a>00302 l00302331,26608
+<a name="l00303"></a>00303 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00303332,26640
+<a name="l00304"></a>00304 <span class="keywordflow">return</span> NULL;l00304333,26735
+<a name="l00305"></a>00305 }l00305334,26816
+<a name="l00306"></a>00306 <span class="keywordflow">if</span>(index >= list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a> || index < 0) {l00306335,26849
+<a name="l00307"></a>00307 <span class="keywordflow">return</span> NULL;l00307336,27050
+<a name="l00308"></a>00308 }l00308337,27131
+<a name="l00309"></a>00309 l00309338,27164
+<a name="l00310"></a>00310 tmp = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00310339,27192
+<a name="l00311"></a>00311 <span class="keywordflow">while</span>(tmp) {l00311340,27330
+<a name="l00312"></a>00312 <span class="keywordflow">if</span>(i == index) {l00312341,27407
+<a name="l00313"></a>00313 <span class="keywordflow">break</span>;l00313342,27492
+<a name="l00314"></a>00314 }l00314343,27571
+<a name="l00315"></a>00315 l00315344,27608
+<a name="l00316"></a>00316 tmp = tmp-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00316345,27636
+<a name="l00317"></a>00317 i++;l00317346,27785
+<a name="l00318"></a>00318 }l00318347,27825
+<a name="l00319"></a>00319 <span class="keywordflow">return</span> tmp-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>;l00319348,27858
+<a name="l00320"></a>00320 }l00320349,28037
+<a name="l00321"></a>00321 l00321350,28066
+<a name="l00322"></a>00322 <span class="keywordtype">int</span> cligg_list_element_find(cligg_list *list, compare_func_cb compare_func, <span class="keywordtype">void</span> *data)l00322351,28094
+<a name="l00323"></a>00323 {l00323352,28275
+<a name="l00324"></a>00324 <span class="keywordtype">int</span> i = 0;l00324353,28304
+<a name="l00325"></a>00325 cligg_list_element *tmp = NULL;l00325354,28379
+<a name="l00326"></a>00326 l00326355,28442
+<a name="l00327"></a>00327 <span class="keywordflow">if</span>(cligg_list_isempty(list)) {l00327356,28470
+<a name="l00328"></a>00328 <span class="keywordflow">return</span> -1;l00328357,28565
+<a name="l00329"></a>00329 }l00329358,28644
+<a name="l00330"></a>00330 l00330359,28677
+<a name="l00331"></a>00331 <span class="keywordflow">if</span>(compare_func(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>, data) == 0)l00331360,28705
+<a name="l00332"></a>00332 <span class="keywordflow">return</span> list-><a class="code" href="struct__cligg__list.html#16b32f72bae46e1208a30a604f66e1b5">elements</a>-1;l00332361,29000
+<a name="l00333"></a>00333 l00333362,29181
+<a name="l00334"></a>00334 tmp = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00334363,29209
+<a name="l00335"></a>00335 l00335364,29347
+<a name="l00336"></a>00336 <span class="keywordflow">while</span>(tmp-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> != list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>) {l00336365,29375
+<a name="l00337"></a>00337 <span class="keywordflow">if</span>(compare_func(tmp-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>, data) == 0)l00337366,29657
+<a name="l00338"></a>00338 <span class="keywordflow">return</span> i;l00338367,29861
+<a name="l00339"></a>00339 tmp = tmp-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00339368,29943
+<a name="l00340"></a>00340 i++;l00340369,30092
+<a name="l00341"></a>00341 }l00341370,30132
+<a name="l00342"></a>00342 <span class="keywordflow">return</span> -1;l00342371,30165
+<a name="l00343"></a>00343 }l00343372,30240
+<a name="l00344"></a>00344 l00344373,30269
+<a name="l00345"></a>00345 <span class="keywordtype">int</span> cligg_list_element_add_sorted(cligg_list *list, compare_func_cb compare_func, <span class="keywordtype">void</span> *data)l00345374,30297
+<a name="l00346"></a>00346 {l00346375,30484
+<a name="l00347"></a>00347 cligg_list_element *tmp = NULL;l00347376,30513
+<a name="l00348"></a>00348 cligg_list_element *prev = NULL;l00348377,30576
+<a name="l00349"></a>00349 cligg_list_element *new_element;l00349378,30640
+<a name="l00350"></a>00350 l00350379,30704
+<a name="l00351"></a>00351 <span class="keywordflow">if</span>(compare_func(list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>, data) == -1)l00351380,30732
+<a name="l00352"></a>00352 <span class="keywordflow">return</span> cligg_list_element_append(list, data);l00352381,31028
+<a name="l00353"></a>00353 l00353382,31142
+<a name="l00354"></a>00354 new_element = (cligg_list_element *)malloc(<span class="keyword">sizeof</span>(cligg_list_element));l00354383,31170
+<a name="l00355"></a>00355 <span class="keywordflow">if</span>(!new_element) {l00355384,31302
+<a name="l00356"></a>00356 <span class="keywordflow">return</span> FALSE;l00356385,31385
+<a name="l00357"></a>00357 }l00357386,31467
+<a name="l00358"></a>00358 l00358387,31500
+<a name="l00359"></a>00359 tmp = list-><a class="code" href="struct__cligg__list.html#1464d8baaf84e873f81e86087d47d286">first</a>;l00359388,31528
+<a name="l00360"></a>00360 l00360389,31666
+<a name="l00361"></a>00361 <span class="keywordflow">while</span>(tmp != list-><a class="code" href="struct__cligg__list.html#688b1ba469c4c1db43f44486d02ad723">last</a>) {l00361390,31694
+<a name="l00362"></a>00362 <span class="keywordflow">if</span>(compare_func(tmp-><a class="code" href="struct__cligg__list__element.html#08e81a015a66bf5cd912c11000e717f9">data</a>, data) == -1) {l00362391,31873
+<a name="l00363"></a>00363 <span class="keywordflow">if</span>(prev == NULL) {l00363392,32080
+<a name="l00364"></a>00364 cligg_list_element_prepend(list, data);l00364393,32171
+<a name="l00365"></a>00365 <span class="keywordflow">return</span> TRUE;l00365394,32254
+<a name="l00366"></a>00366 }l00366395,32343
+<a name="l00367"></a>00367 prev-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = new_element;l00367396,32384
+<a name="l00368"></a>00368 new_element-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a> = tmp;l00368397,32546
+<a name="l00369"></a>00369 <span class="keywordflow">return</span> TRUE;l00369398,32707
+<a name="l00370"></a>00370 }l00370399,32792
+<a name="l00371"></a>00371 prev = tmp;l00371400,32829
+<a name="l00372"></a>00372 tmp = tmp-><a class="code" href="struct__cligg__list__element.html#c06245ae83631de97ad273625faef8bc">next</a>;l00372401,32876
+<a name="l00373"></a>00373 }l00373402,33025
+<a name="l00374"></a>00374 l00374403,33058
+<a name="l00375"></a>00375 <span class="keywordflow">return</span> FALSE;l00375404,33086
+<a name="l00376"></a>00376 }l00376405,33164
+
+doc/de/html/cligg__module_8h-source.html,1476
+<h1>src/lib/cligg_module.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CLIGG_MODULE_H</span>l0000130,1230
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CLIGG_MODULE_C</span>l0000231,1389
+<a name="l00003"></a>00003 <span class="preprocessor"></span>l0000332,1507
+<a name="l00004"></a>00004 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__cligg__module.html">_cligg_module</a> cligg_module;l0000433,1569
+<a name="l00005"></a>00005 l0000534,1751
+<a name="l00006"></a>00006 <span class="comment">/*this is likely to be changed soon */</span>l0000635,1779
+<a name="l00007"></a><a class="code" href="struct__cligg__module.html">00007</a> <span class="keyword">struct </span><a class="code" href="struct__cligg__module.html">_cligg_module</a> {l0000736,1874
+<a name="l00008"></a><a class="code" href="struct__cligg__module.html#4014e02c0a11ee383017ea084982288f">00008</a> <span class="keywordtype">char</span> *<a class="code" href="struct__cligg__module.html#4014e02c0a11ee383017ea084982288f">name</a> ;l0000837,2061
+<a name="l00009"></a>00009 <span class="keywordtype">void</span> *(*module_init)();l0000938,2312
+<a name="l00010"></a>00010 };l0001039,2400
+<a name="l00011"></a>00011 l0001140,2430
+<a name="l00012"></a>00012 <span class="preprocessor">#endif</span>l0001241,2458
+
+doc/de/html/cligg_8c.html,3928
+<h1>cligg.c-Dateireferenz</h1><hr><a name="_details"></a><h2>Ausf\xFChrliche Beschreibung</h2>_details29,1137
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="90e5a490574c30e9a64d39c609174ee6"></a><!-- doxytag: member="cligg.c::cligg_event" ref="90e5a490574c30e9a64d39c609174ee6" args="" -->90e5a490574c30e9a64d39c609174ee655,2525
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="55de37b53b4647d7dac382cbda70b52d"></a><!-- doxytag: member="cligg.c::cligg_event_cb" ref="55de37b53b4647d7dac382cbda70b52d" args="(void *data)" -->55de37b53b4647d7dac382cbda70b52d58,2962
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="337d9e0795be2298d8dfcedce6f203db"></a><!-- doxytag: member="cligg.c::cligg_event_delete" ref="337d9e0795be2298d8dfcedce6f203db" args="(cligg_event *event)" -->337d9e0795be2298d8dfcedce6f203db62,3430
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9bec81bb55ef20281e201283d6052a97"></a><!-- doxytag: member="cligg.c::cligg_event_set_name" ref="9bec81bb55ef20281e201283d6052a97" args="(cligg_event *event, char *name)" -->9bec81bb55ef20281e201283d6052a9765,3904
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="63a702513a7155a820f52f26177d5a69"></a><!-- doxytag: member="cligg.c::cligg_event_get_name" ref="63a702513a7155a820f52f26177d5a69" args="(cligg_event *event)" -->63a702513a7155a820f52f26177d5a6968,4478
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="an...
[truncated message content] |
|
From: <cli...@li...> - 2007-05-22 21:12:10
|
Revision: 64
http://cligg.svn.sourceforge.net/cligg/?rev=64&view=rev
Author: sithhell
Date: 2007-05-22 14:12:07 -0700 (Tue, 22 May 2007)
Log Message:
-----------
modulehandler is finally nearly complete, though there are some small FIXMEs in the code
Modified Paths:
--------------
src/bin/CMakeLists.txt
src/bin/cligg.c
src/bin/cligg_mainloop.c
src/bin/cligg_mainloop.h
src/bin/cligg_modulehandler.c
src/lib/cligg_list.c
src/lib/cligg_module.c
src/modules/print/print.c
src/modules/read/read.c
Modified: src/bin/CMakeLists.txt
===================================================================
--- src/bin/CMakeLists.txt 2007-05-22 16:44:16 UTC (rev 63)
+++ src/bin/CMakeLists.txt 2007-05-22 21:12:07 UTC (rev 64)
@@ -5,3 +5,4 @@
target_link_libraries(cligg cligglib cligg_mainloop cligg_eventhandler cligg_modulehandler pthread dl)
add_executable(tree_test test.c)
target_link_libraries(tree_test cligglib)
+set_target_properties(cligg cligg_modulehandler PROPERTIES LINK_FLAGS -rdynamic)
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/bin/cligg.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -51,7 +51,7 @@
/* TODO register basic events */
/* event for quitting softly */
- cligg_register_event("quit_cligg", quit_cligg);
+ /*cligg_register_event("quit_cligg", quit_cligg);*/
/* init module system */
ret = cligg_init_modulehandler();
@@ -60,9 +60,10 @@
fprintf(stderr, "Error loading module\n");*/
/*cligg_trigger_event("load_module", "test");*/
- /*cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");*/
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/print/print.so");
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
cligg_trigger_event("read", NULL);
/*cligg_trigger_event("quit_cligg", NULL);*/
@@ -72,11 +73,13 @@
/* TODO process the config */
/* TODO define own signal handlers */
+ /* exit handlers ... */
/* starting the event loop */
cligg_main_begin();
/* MAGIC!! */
cligg_main_end();
+ quit_cligg(NULL);
return EXIT_SUCCESS;
}
@@ -88,5 +91,5 @@
fprintf(stderr, "Good Bye!\n");
- exit(EXIT_SUCCESS);
+ return EXIT_SUCCESS;
}
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/bin/cligg_mainloop.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -52,6 +52,13 @@
new = cligg_waiton_event();
if(new == NULL)
return (void *)EXIT_FAILURE;
+
+ if(strcmp(new->name, "quit_cligg") == 0) {
+ free(new->name);
+ free(new);
+ break;
+ }
+
cb = cligg_lookup_event(new->name);
free(new->name);
@@ -61,10 +68,22 @@
else {
if(!cb(new->data))
fprintf(stderr, "Event callback failed!\n");
+ /*else {
+ if(strcmp(new->name, "quit_cligg") == 0) {
+ free(new->name);
+ free(new);
+ }
+ }*/
}
- /*if(strcmp(new->name, "quit_cligg") == 0) break;*/
+ /*if(strcmp(new->name, "quit_cligg") == 0){
+ free(new->name);
+ free(new);
+ break;
+ }
+ free(new->name);*/
free(new);
}
- pthread_exit((void *)EXIT_SUCCESS);
+ /*pthread_exit((void *)EXIT_SUCCESS);*/
+ return (void *)EXIT_SUCCESS;
}
Modified: src/bin/cligg_mainloop.h
===================================================================
--- src/bin/cligg_mainloop.h 2007-05-22 16:44:16 UTC (rev 63)
+++ src/bin/cligg_mainloop.h 2007-05-22 21:12:07 UTC (rev 64)
@@ -10,4 +10,5 @@
void *
cligg_loop(void *);
+
#endif
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/bin/cligg_modulehandler.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -39,6 +39,7 @@
int
cligg_del_modulehandler(void)
{
+ /* FIXME this leads to a leak of 20 bytes at the end, don't know why */
cligg_module *tmp;
while((tmp = cligg_list_element_get_first(module_list))) {
cligg_unregister_module(tmp);
@@ -51,36 +52,58 @@
int cligg_register_module(char *path)
{
int ret = TRUE;
+ void *test;
cligg_module *new = cligg_module_new(path);
if(new == NULL) {
perror("Error loading module");
+ dlerror();
return FALSE;
}
+ if(cligg_list_element_find(module_list, cmp, new) > 0) {
+ fprintf(stderr, "Couldn't add module %s: already there\n", new->path);
+ cligg_module_del(new);
+ dlerror();
+ return FALSE;
+ }
+ /* FIXME this is better, perhaps, but creates some memory leaks */
+ /*if((test = dlopen(path, RTLD_LAZY | RTLD_NOLOAD)) != NULL) {
+ dlclose(test);
+ fprintf(stderr, "Couldn't add module %s", dlerror());
+ cligg_module_del(new);
+ dlerror();
+ return FALSE;
+ }*/
+
new->handle = dlopen(path, RTLD_LAZY);
if(!new->handle) {
fprintf(stderr, "Error loading module: %s\n", dlerror());
cligg_module_del(new);
+ dlerror();
return FALSE;
}
if(pthread_mutex_lock(&module_lock) != 0) {
fprintf(stderr, "Couldn't obtain module lock!\n");
+ dlclose(new->handle);
+ dlerror();
cligg_module_del(new);
return FALSE;
}
if(!cligg_list_element_append(module_list, new)) {
perror("Error loading module");
+ dlerror();
ret = FALSE;
}
if(pthread_mutex_unlock(&module_lock) != 0) {
fprintf(stderr, "Couldn't unlock module lock!\n");
+ dlclose(new->handle);
cligg_module_del(new);
+ dlerror();
return FALSE;
}
-
dlerror(); /* clear any existing errors */
return ret;
}
@@ -89,21 +112,27 @@
{
cligg_module *tmp;
int ret = TRUE;
+ dlerror();
if(pthread_mutex_lock(&module_lock) != 0) {
fprintf(stderr, "Couldn't obtain module lock!\n");
cligg_module_del(tmp);
+ dlerror();
return FALSE;
}
if(cligg_list_element_find(module_list, cmp, module) == -1) {
fprintf(stderr, "Couldn't delete module: Not found!\n");
+ dlerror();
ret = FALSE;
}
else {
tmp = (cligg_module *)module_list->current->data;
- dlclose(tmp->handle);
+ if(dlclose(tmp->handle) != 0)
+ fprintf(stderr, "Error unloading module: %s\n", dlerror());
+ tmp->handle = NULL;
+ module->handle = NULL;
cligg_list_element_del_current(module_list);
}
@@ -111,8 +140,10 @@
if(pthread_mutex_unlock(&module_lock) != 0) {
fprintf(stderr, "Couldn't unlock module lock!\n");
cligg_module_del(tmp);
+ dlerror();
return FALSE;
}
+ dlerror();
return ret;
}
@@ -128,5 +159,6 @@
static int module_unreg_event_cb(void *data)
{
+ printf("unregister\n");
return cligg_unregister_module((cligg_module *)data);
}
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/lib/cligg_list.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -357,7 +357,7 @@
if(compare_func(list->last->data, data) == 0) {
list->current = list->last;
- return list->size-1;
+ return list->size;
}
if(compare_func(list->first->data, data) == 0) {
list->current = list->first;
Modified: src/lib/cligg_module.c
===================================================================
--- src/lib/cligg_module.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/lib/cligg_module.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -24,7 +24,7 @@
void cligg_module_del(void *module)
{
cligg_module *old = (cligg_module *)module;
-
+ old->handle = NULL;
free(old->path);
free(old);
}
Modified: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/modules/print/print.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -7,13 +7,13 @@
cligg_module_init print_init(void)
{
fprintf(stderr, "Print Module is loaded!\n");
- cligg_register_event("print",print);
+ cligg_register_event("print",print);
}
static int print(void *data)
{
printf("output: %s",(char *)data);
- cligg_trigger_event("read", NULL);
+ /*cligg_trigger_event("read", NULL);*/
return TRUE;
}
Modified: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c 2007-05-22 16:44:16 UTC (rev 63)
+++ src/modules/read/read.c 2007-05-22 21:12:07 UTC (rev 64)
@@ -5,7 +5,7 @@
#include <cligg_eventhandler.h>
static int read(void *data);
-static char inp[101];
+static char inp[1025];
cligg_module_init print_init(void)
{
@@ -15,13 +15,14 @@
static int read(void *data)
{
- /*char *inp = malloc(101 * sizeof(char));*/
printf("input: ");
fgets(inp, 100, stdin);
printf("\n");
if(strcmp("quit\n", inp) == 0) cligg_trigger_event("quit_cligg", NULL);
- else cligg_trigger_event("print", inp);
- /*cligg_trigger_event("read", NULL);*/
+ else {
+ cligg_trigger_event("print", inp);
+ cligg_trigger_event("read", NULL);
+ }
return TRUE;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-22 16:44:19
|
Revision: 63
http://cligg.svn.sourceforge.net/cligg/?rev=63&view=rev
Author: sithhell
Date: 2007-05-22 09:44:16 -0700 (Tue, 22 May 2007)
Log Message:
-----------
another fix for the list
Modified Paths:
--------------
src/lib/cligg_list.c
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-22 13:03:24 UTC (rev 62)
+++ src/lib/cligg_list.c 2007-05-22 16:44:16 UTC (rev 63)
@@ -130,10 +130,10 @@
if(list->first == NULL)
list->first = new_element;
- if(list->last != NULL)
+ if(list->last != NULL) {
list->last->next = new_element;
+ }
list->last = new_element;
- new_element->next = NULL;
list->size++;
return TRUE;
@@ -167,7 +167,6 @@
}
list->first = new_element;
- new_element->prev = NULL;
list->size++;
@@ -203,7 +202,7 @@
if(list == NULL) return FALSE;
tmp = list->current;
- if((tmp = list->first))
+ if((tmp == list->first))
tmp = NULL;
list->current = list->first;
@@ -219,7 +218,7 @@
if(list == NULL) return FALSE;
tmp = list->current;
- if((tmp = list->last))
+ if((tmp == list->last))
tmp = NULL;
list->current = list->last;
@@ -277,12 +276,18 @@
if(list->current == NULL)
return FALSE;
- if(list->current->prev != NULL)
+ if(list->current->prev != NULL) {
list->current->prev->next = list->current->next;
+ }
else
list->first = list->current->next;
+
if(list->current->next != NULL)
list->current->next->prev = list->current->prev;
+ else {
+ list->first = NULL;
+ list->last = NULL;
+ }
list->current = NULL;
if(list->free_func)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-22 13:03:26
|
Revision: 62
http://cligg.svn.sourceforge.net/cligg/?rev=62&view=rev
Author: sithhell
Date: 2007-05-22 06:03:24 -0700 (Tue, 22 May 2007)
Log Message:
-----------
little change ...
Modified Paths:
--------------
src/bin/cligg_mainloop.c
src/lib/cligg_btree.c
src/lib/cligg_hashmap.c
src/modules/print/print.c
src/modules/read/read.c
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-22 07:50:16 UTC (rev 61)
+++ src/bin/cligg_mainloop.c 2007-05-22 13:03:24 UTC (rev 62)
@@ -52,11 +52,9 @@
new = cligg_waiton_event();
if(new == NULL)
return (void *)EXIT_FAILURE;
- printf("%s\n", new->name);
cb = cligg_lookup_event(new->name);
free(new->name);
- printf("adress of function: %x\n", cb);
if(cb == NULL) {
fprintf(stderr, "No Callback specified!\n");
}
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-05-22 07:50:16 UTC (rev 61)
+++ src/lib/cligg_btree.c 2007-05-22 13:03:24 UTC (rev 62)
@@ -89,7 +89,6 @@
while(tmp2) {
tmp1 = tmp2;
test = tree->cmp_func(data, tmp2->data);
- printf("%d\n", test);
if(test == 0) {
fprintf(stderr, "Cannot insert two equal elements!\n");
free(new);
@@ -186,7 +185,6 @@
tmp = tmp->left;
break;
case 0:
- printf("hurray!\n");
/*element found*/
return tmp;
}
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-22 07:50:16 UTC (rev 61)
+++ src/lib/cligg_hashmap.c 2007-05-22 13:03:24 UTC (rev 62)
@@ -108,7 +108,6 @@
return NULL;
new->data = data;
new->hash = hash_func(data);
- printf("hash value of: %ld\n", new->hash);
new->free_func = free_func;
return new;
Modified: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c 2007-05-22 07:50:16 UTC (rev 61)
+++ src/modules/print/print.c 2007-05-22 13:03:24 UTC (rev 62)
@@ -12,10 +12,9 @@
static int print(void *data)
{
- fprintf(stderr,"test\n");
- printf("out: %s\n",(char *)data);
- fflush(stdin);
- return TRUE;
+ printf("output: %s",(char *)data);
+ cligg_trigger_event("read", NULL);
+ return TRUE;
}
cligg_module_finit print_finit(void)
Modified: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c 2007-05-22 07:50:16 UTC (rev 61)
+++ src/modules/read/read.c 2007-05-22 13:03:24 UTC (rev 62)
@@ -1,24 +1,27 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <cligg_module.h>
#include <cligg_eventhandler.h>
static int read(void *data);
+static char inp[101];
cligg_module_init print_init(void)
{
fprintf(stderr, "Read Module is loaded!\n");
cligg_register_event("read", read);
- printf("ergister event cb: %x\n", read);
}
static int read(void *data)
{
- char inp[101];
+ /*char *inp = malloc(101 * sizeof(char));*/
printf("input: ");
fgets(inp, 100, stdin);
- cligg_trigger_event("print", inp);
- cligg_trigger_event("read", NULL);
+ printf("\n");
+ if(strcmp("quit\n", inp) == 0) cligg_trigger_event("quit_cligg", NULL);
+ else cligg_trigger_event("print", inp);
+ /*cligg_trigger_event("read", NULL);*/
return TRUE;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-22 07:50:17
|
Revision: 61
http://cligg.svn.sourceforge.net/cligg/?rev=61&view=rev
Author: sithhell
Date: 2007-05-22 00:50:16 -0700 (Tue, 22 May 2007)
Log Message:
-----------
slowly it grows ...
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_mainloop.c
src/lib/cligg_btree.c
src/lib/cligg_hashmap.c
src/modules/print/print.c
src/modules/read/read.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/bin/cligg.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -56,15 +56,15 @@
/* init module system */
ret = cligg_init_modulehandler();
- if(!cligg_trigger_event("test", NULL))
- fprintf(stderr, "Error loading module\n");
+ /*if(!cligg_trigger_event("test", NULL))
+ fprintf(stderr, "Error loading module\n");*/
- cligg_trigger_event("load_module", "test");
- cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");
+ /*cligg_trigger_event("load_module", "test");*/
+ /*cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");*/
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/print/print.so");
cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
cligg_trigger_event("read", NULL);
- cligg_trigger_event("quit_cligg", NULL);
+ /*cligg_trigger_event("quit_cligg", NULL);*/
/* TODO load the config */
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/bin/cligg_mainloop.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -56,6 +56,7 @@
cb = cligg_lookup_event(new->name);
free(new->name);
+ printf("adress of function: %x\n", cb);
if(cb == NULL) {
fprintf(stderr, "No Callback specified!\n");
}
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/lib/cligg_btree.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -2,6 +2,8 @@
#include <stdio.h>
#include <cligg_btree.h>
#include <cligg_list.h>
+#include <cligg_event.h>
+#include <cligg_hashmap.h>
CLIGG cligg_btree *
cligg_btree_new(free_func_cb free_func,
@@ -87,6 +89,7 @@
while(tmp2) {
tmp1 = tmp2;
test = tree->cmp_func(data, tmp2->data);
+ printf("%d\n", test);
if(test == 0) {
fprintf(stderr, "Cannot insert two equal elements!\n");
free(new);
@@ -95,7 +98,7 @@
if(test < 0)
tmp2 = tmp2->left;
else
- tmp2 = tmp2->left;
+ tmp2 = tmp2->right;
}
new->parent = tmp1;
@@ -103,7 +106,7 @@
if(tmp1 == NULL)
tree->root = new;
else {
- if(tree->cmp_func(data, tmp1->data))
+ if(tree->cmp_func(data, tmp1->data) < 0)
tmp1->left = new;
else
tmp1->right = new;
@@ -183,6 +186,7 @@
tmp = tmp->left;
break;
case 0:
+ printf("hurray!\n");
/*element found*/
return tmp;
}
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/lib/cligg_hashmap.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -108,6 +108,7 @@
return NULL;
new->data = data;
new->hash = hash_func(data);
+ printf("hash value of: %ld\n", new->hash);
new->free_func = free_func;
return new;
Modified: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/modules/print/print.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -2,7 +2,7 @@
#include <cligg_module.h>
#include <cligg_eventhandler.h>
-int print(void *);
+static int print(void *);
cligg_module_init print_init(void)
{
@@ -10,7 +10,7 @@
cligg_register_event("print",print);
}
-int print(void *data)
+static int print(void *data)
{
fprintf(stderr,"test\n");
printf("out: %s\n",(char *)data);
Modified: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c 2007-05-21 21:21:57 UTC (rev 60)
+++ src/modules/read/read.c 2007-05-22 07:50:16 UTC (rev 61)
@@ -3,15 +3,16 @@
#include <cligg_module.h>
#include <cligg_eventhandler.h>
-int read(void *data);
+static int read(void *data);
cligg_module_init print_init(void)
{
fprintf(stderr, "Read Module is loaded!\n");
cligg_register_event("read", read);
+ printf("ergister event cb: %x\n", read);
}
-int read(void *data)
+static int read(void *data)
{
char inp[101];
printf("input: ");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 21:21:59
|
Revision: 60
http://cligg.svn.sourceforge.net/cligg/?rev=60&view=rev
Author: sithhell
Date: 2007-05-21 14:21:57 -0700 (Mon, 21 May 2007)
Log Message:
-----------
some changes
Modified Paths:
--------------
TODO
src/bin/cligg.c
src/bin/cligg_mainloop.c
src/lib/cligg_list.c
src/modules/print/print.c
src/modules/read/read.c
Removed Paths:
-------------
src/modules/print/CMakeFiles/
src/modules/print/Makefile
src/modules/print/cmake_install.cmake
src/modules/print/print.so
src/modules/read/CMakeFiles/
src/modules/read/Makefile
src/modules/read/cmake_install.cmake
src/modules/read/read.so
Modified: TODO
===================================================================
--- TODO 2007-05-21 20:52:04 UTC (rev 59)
+++ TODO 2007-05-21 21:21:57 UTC (rev 60)
@@ -2,6 +2,8 @@
important stuff to do:
* setting up a basic framework
- The Binary search tree needs some balancing
+ - memory leak on exit should get some fixes (seen with valkyrie)
+ - Build a config system
- for further stuff, look at the source code, and contact us: http://cligg.sourceforge.net/de/devel.html
http://cligg.sourceforge.net/en/devel.html
* Modules
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-21 20:52:04 UTC (rev 59)
+++ src/bin/cligg.c 2007-05-21 21:21:57 UTC (rev 60)
@@ -60,9 +60,11 @@
fprintf(stderr, "Error loading module\n");
cligg_trigger_event("load_module", "test");
- cligg_trigger_event("load_module", "/home/mo/cligg/src/modules/dummy/dummy.so");
- cligg_trigger_event("load_module", "/home/mo/cligg/src/modules/read/read.so");
- cligg_trigger_event("quit_cligg", NULL);
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/print/print.so");
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/read/read.so");
+ cligg_trigger_event("read", NULL);
+ cligg_trigger_event("quit_cligg", NULL);
/* TODO load the config */
@@ -74,18 +76,17 @@
/* starting the event loop */
cligg_main_begin();
/* MAGIC!! */
- return quit_cligg(NULL);
+ cligg_main_end();
+ return EXIT_SUCCESS;
}
static int quit_cligg(void *data)
{
- int ret;
- ret = cligg_main_end();
/* Clean up */
cligg_delete_handler();
cligg_del_modulehandler();
fprintf(stderr, "Good Bye!\n");
- exit(ret);
+ exit(EXIT_SUCCESS);
}
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-21 20:52:04 UTC (rev 59)
+++ src/bin/cligg_mainloop.c 2007-05-21 21:21:57 UTC (rev 60)
@@ -52,7 +52,7 @@
new = cligg_waiton_event();
if(new == NULL)
return (void *)EXIT_FAILURE;
-
+ printf("%s\n", new->name);
cb = cligg_lookup_event(new->name);
free(new->name);
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-21 20:52:04 UTC (rev 59)
+++ src/lib/cligg_list.c 2007-05-21 21:21:57 UTC (rev 60)
@@ -39,7 +39,7 @@
cligg_list_element *old;
cligg_list_element *next;
- if(!list) {
+ if(list == NULL) {
return;
}
Deleted: src/modules/print/Makefile
===================================================================
--- src/modules/print/Makefile 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/print/Makefile 2007-05-21 21:21:57 UTC (rev 60)
@@ -1,135 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 2.4
-
-# Default target executed when no arguments are given to make.
-default_target: all
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canoncical targets will work.
-.SUFFIXES:
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# The program to use to edit the cache.
-CMAKE_EDIT_COMMAND = /usr/bin/ccmake
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/mo/cligg
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/mo/cligg
-
-# Include the progress variables for this target.
-include CMakeFiles/progress.make
-
-#=============================================================================
-# Targets provided globally by CMake.
-
-# Special rule for the target edit_cache
-edit_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
- cd /home/mo/cligg/src/modules/print && /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-
-# Special rule for the target edit_cache
-edit_cache/fast: edit_cache
-
-# Special rule for the target rebuild_cache
-rebuild_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
- cd /home/mo/cligg/src/modules/print && /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-
-# Special rule for the target rebuild_cache
-rebuild_cache/fast: rebuild_cache
-
-# The main all target
-all: cmake_check_build_system
- cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles $(CMAKE_ALL_PROGRESS)
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/all
- $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles 0
-
-# The main clean target
-clean:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/clean
-
-# The main clean target
-clean/fast: clean
-
-# Prepare targets for installation.
-preinstall: all
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/preinstall
-
-# Prepare targets for installation.
-preinstall/fast:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/preinstall
-
-# clear depends
-depend:
- $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-
-# Convenience name for target.
-src/modules/print/CMakeFiles/print.dir/rule:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/CMakeFiles/print.dir/rule
-
-# Convenience name for target.
-print: src/modules/print/CMakeFiles/print.dir/rule
-
-# fast build rule for target.
-print/fast:
- cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/build
-
-# target to build an object file
-print.o:
- cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.o
-
-# target to preprocess a source file
-print.i:
- cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.i
-
-# target to generate assembly for a file
-print.s:
- cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.s
-
-# Help Target
-help::
- @echo "The following are some of the valid targets for this Makefile:"
- @echo "... all (the default if no target is provided)"
- @echo "... clean"
- @echo "... depend"
- @echo "... edit_cache"
- @echo "... print"
- @echo "... rebuild_cache"
- @echo "... print.o"
- @echo "... print.i"
- @echo "... print.s"
-
-
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- cd /home/mo/cligg && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-
Deleted: src/modules/print/cmake_install.cmake
===================================================================
--- src/modules/print/cmake_install.cmake 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/print/cmake_install.cmake 2007-05-21 21:21:57 UTC (rev 60)
@@ -1,29 +0,0 @@
-# Install script for directory: /home/mo/cligg/src/modules/print
-
-# Set the install prefix
-IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
- SET(CMAKE_INSTALL_PREFIX "/usr/local")
-ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
-STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-IF(NOT CMAKE_INSTALL_CONFIG_NAME)
- IF(BUILD_TYPE)
- STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
- CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
- ELSE(BUILD_TYPE)
- SET(CMAKE_INSTALL_CONFIG_NAME "")
- ENDIF(BUILD_TYPE)
- MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-ENDIF(NOT CMAKE_INSTALL_CONFIG_NAME)
-
-# Set the component getting installed.
-IF(NOT CMAKE_INSTALL_COMPONENT)
- IF(COMPONENT)
- MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
- SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
- ELSE(COMPONENT)
- SET(CMAKE_INSTALL_COMPONENT)
- ENDIF(COMPONENT)
-ENDIF(NOT CMAKE_INSTALL_COMPONENT)
-
Modified: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/print/print.c 2007-05-21 21:21:57 UTC (rev 60)
@@ -2,7 +2,7 @@
#include <cligg_module.h>
#include <cligg_eventhandler.h>
-static int print(void *);
+int print(void *);
cligg_module_init print_init(void)
{
@@ -10,9 +10,12 @@
cligg_register_event("print",print);
}
-static int print(void *data)
+int print(void *data)
{
- return printf("out: %s\n",(char *)data);
+ fprintf(stderr,"test\n");
+ printf("out: %s\n",(char *)data);
+ fflush(stdin);
+ return TRUE;
}
cligg_module_finit print_finit(void)
Deleted: src/modules/print/print.so
===================================================================
(Binary files differ)
Deleted: src/modules/read/Makefile
===================================================================
--- src/modules/read/Makefile 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/read/Makefile 2007-05-21 21:21:57 UTC (rev 60)
@@ -1,135 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 2.4
-
-# Default target executed when no arguments are given to make.
-default_target: all
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canoncical targets will work.
-.SUFFIXES:
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# The program to use to edit the cache.
-CMAKE_EDIT_COMMAND = /usr/bin/ccmake
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/mo/cligg
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/mo/cligg
-
-# Include the progress variables for this target.
-include CMakeFiles/progress.make
-
-#=============================================================================
-# Targets provided globally by CMake.
-
-# Special rule for the target edit_cache
-edit_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
- cd /home/mo/cligg/src/modules/read && /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-
-# Special rule for the target edit_cache
-edit_cache/fast: edit_cache
-
-# Special rule for the target rebuild_cache
-rebuild_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
- cd /home/mo/cligg/src/modules/read && /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-
-# Special rule for the target rebuild_cache
-rebuild_cache/fast: rebuild_cache
-
-# The main all target
-all: cmake_check_build_system
- cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles $(CMAKE_ALL_PROGRESS)
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/all
- $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles 0
-
-# The main clean target
-clean:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/clean
-
-# The main clean target
-clean/fast: clean
-
-# Prepare targets for installation.
-preinstall: all
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/preinstall
-
-# Prepare targets for installation.
-preinstall/fast:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/preinstall
-
-# clear depends
-depend:
- $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-
-# Convenience name for target.
-src/modules/read/CMakeFiles/read.dir/rule:
- cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/CMakeFiles/read.dir/rule
-
-# Convenience name for target.
-read: src/modules/read/CMakeFiles/read.dir/rule
-
-# fast build rule for target.
-read/fast:
- cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/build
-
-# target to build an object file
-read.o:
- cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.o
-
-# target to preprocess a source file
-read.i:
- cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.i
-
-# target to generate assembly for a file
-read.s:
- cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.s
-
-# Help Target
-help::
- @echo "The following are some of the valid targets for this Makefile:"
- @echo "... all (the default if no target is provided)"
- @echo "... clean"
- @echo "... depend"
- @echo "... edit_cache"
- @echo "... read"
- @echo "... rebuild_cache"
- @echo "... read.o"
- @echo "... read.i"
- @echo "... read.s"
-
-
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- cd /home/mo/cligg && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-
Deleted: src/modules/read/cmake_install.cmake
===================================================================
--- src/modules/read/cmake_install.cmake 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/read/cmake_install.cmake 2007-05-21 21:21:57 UTC (rev 60)
@@ -1,29 +0,0 @@
-# Install script for directory: /home/mo/cligg/src/modules/read
-
-# Set the install prefix
-IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
- SET(CMAKE_INSTALL_PREFIX "/usr/local")
-ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
-STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-IF(NOT CMAKE_INSTALL_CONFIG_NAME)
- IF(BUILD_TYPE)
- STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
- CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
- ELSE(BUILD_TYPE)
- SET(CMAKE_INSTALL_CONFIG_NAME "")
- ENDIF(BUILD_TYPE)
- MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-ENDIF(NOT CMAKE_INSTALL_CONFIG_NAME)
-
-# Set the component getting installed.
-IF(NOT CMAKE_INSTALL_COMPONENT)
- IF(COMPONENT)
- MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
- SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
- ELSE(COMPONENT)
- SET(CMAKE_INSTALL_COMPONENT)
- ENDIF(COMPONENT)
-ENDIF(NOT CMAKE_INSTALL_COMPONENT)
-
Modified: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c 2007-05-21 20:52:04 UTC (rev 59)
+++ src/modules/read/read.c 2007-05-21 21:21:57 UTC (rev 60)
@@ -3,16 +3,25 @@
#include <cligg_module.h>
#include <cligg_eventhandler.h>
+int read(void *data);
+
cligg_module_init print_init(void)
{
- char *inp = malloc(100*sizeof(char));
- fprintf(stderr, "Read Module is loaded!\n");
- printf("inp: ");
- fgets(inp,100,stdin);
- cligg_trigger_event("print",inp);
+ fprintf(stderr, "Read Module is loaded!\n");
+ cligg_register_event("read", read);
}
+int read(void *data)
+{
+ char inp[101];
+ printf("input: ");
+ fgets(inp, 100, stdin);
+ cligg_trigger_event("print", inp);
+ cligg_trigger_event("read", NULL);
+ return TRUE;
+}
+
cligg_module_finit print_finit(void)
{
- fprintf(stderr, "Print Module is unloaded!\n");
+ fprintf(stderr, "Read Module is unloaded!\n");
}
Deleted: src/modules/read/read.so
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 20:52:08
|
Revision: 59
http://cligg.svn.sourceforge.net/cligg/?rev=59&view=rev
Author: mo__
Date: 2007-05-21 13:52:04 -0700 (Mon, 21 May 2007)
Log Message:
-----------
dammit
Added Paths:
-----------
src/modules/print/
src/modules/print/CMakeFiles/
src/modules/print/CMakeFiles/CMakeDirectoryInformation.cmake
src/modules/print/CMakeFiles/print.dir/
src/modules/print/CMakeFiles/print.dir/C.includecache
src/modules/print/CMakeFiles/print.dir/DependInfo.cmake
src/modules/print/CMakeFiles/print.dir/build.make
src/modules/print/CMakeFiles/print.dir/cmake_clean.cmake
src/modules/print/CMakeFiles/print.dir/cmake_clean_target.cmake
src/modules/print/CMakeFiles/print.dir/depend.internal
src/modules/print/CMakeFiles/print.dir/depend.make
src/modules/print/CMakeFiles/print.dir/depend.make.mark
src/modules/print/CMakeFiles/print.dir/flags.make
src/modules/print/CMakeFiles/print.dir/link.txt
src/modules/print/CMakeFiles/print.dir/progress.make
src/modules/print/CMakeFiles/progress.make
src/modules/print/CMakeLists.txt
src/modules/print/Makefile
src/modules/print/cmake_install.cmake
src/modules/print/print.c
src/modules/print/print.so
src/modules/read/
src/modules/read/CMakeFiles/
src/modules/read/CMakeFiles/CMakeDirectoryInformation.cmake
src/modules/read/CMakeFiles/progress.make
src/modules/read/CMakeFiles/read.dir/
src/modules/read/CMakeFiles/read.dir/C.includecache
src/modules/read/CMakeFiles/read.dir/DependInfo.cmake
src/modules/read/CMakeFiles/read.dir/build.make
src/modules/read/CMakeFiles/read.dir/cmake_clean.cmake
src/modules/read/CMakeFiles/read.dir/cmake_clean_target.cmake
src/modules/read/CMakeFiles/read.dir/depend.internal
src/modules/read/CMakeFiles/read.dir/depend.make
src/modules/read/CMakeFiles/read.dir/depend.make.mark
src/modules/read/CMakeFiles/read.dir/flags.make
src/modules/read/CMakeFiles/read.dir/link.txt
src/modules/read/CMakeFiles/read.dir/progress.make
src/modules/read/CMakeLists.txt
src/modules/read/Makefile
src/modules/read/cmake_install.cmake
src/modules/read/read.c
src/modules/read/read.so
Added: src/modules/print/CMakeFiles/CMakeDirectoryInformation.cmake
===================================================================
--- src/modules/print/CMakeFiles/CMakeDirectoryInformation.cmake (rev 0)
+++ src/modules/print/CMakeFiles/CMakeDirectoryInformation.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,18 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+# Force unix paths in dependencies.
+SET(CMAKE_FORCE_UNIX_PATHS 1)
+
+# The C and CXX include file search paths:
+SET(CMAKE_C_INCLUDE_PATH
+ "src/bin"
+ "src/lib"
+ )
+SET(CMAKE_CXX_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH})
+
+# The C and CXX include file regular expressions for this directory.
+SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
Added: src/modules/print/CMakeFiles/print.dir/C.includecache
===================================================================
--- src/modules/print/CMakeFiles/print.dir/C.includecache (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/C.includecache 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,20 @@
+/home/mo/cligg/src/modules/print/print.c
+stdio.h
+-
+cligg_module.h
+-
+cligg_eventhandler.h
+-
+
+src/bin/cligg_eventhandler.h
+cligg_event.h
+-
+
+src/lib/cligg_event.h
+cligglib.h
+-
+
+src/lib/cligg_module.h
+
+src/lib/cligglib.h
+
Added: src/modules/print/CMakeFiles/print.dir/DependInfo.cmake
===================================================================
--- src/modules/print/CMakeFiles/print.dir/DependInfo.cmake (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/DependInfo.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,8 @@
+# The set of files whose dependency integrity should be checked:
+SET(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+SET(CMAKE_DEPENDS_CHECK_C
+ "/home/mo/cligg/src/modules/print/print.c"
+ "/home/mo/cligg/src/modules/print/CMakeFiles/print.dir/print.o"
+ )
Added: src/modules/print/CMakeFiles/print.dir/build.make
===================================================================
--- src/modules/print/CMakeFiles/print.dir/build.make (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/build.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,98 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/ccmake
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/mo/cligg
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/mo/cligg
+
+# Include any dependencies generated for this target.
+include src/modules/print/CMakeFiles/print.dir/depend.make
+
+# Include the progress variables for this target.
+include src/modules/print/CMakeFiles/print.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include src/modules/print/CMakeFiles/print.dir/flags.make
+
+src/modules/print/CMakeFiles/print.dir/depend.make.mark: src/modules/print/CMakeFiles/print.dir/flags.make
+src/modules/print/CMakeFiles/print.dir/depend.make.mark: src/modules/print/print.c
+
+src/modules/print/CMakeFiles/print.dir/print.o: src/modules/print/CMakeFiles/print.dir/flags.make
+src/modules/print/CMakeFiles/print.dir/print.o: src/modules/print/print.c
+ $(CMAKE_COMMAND) -E cmake_progress_report /home/mo/cligg/CMakeFiles $(CMAKE_PROGRESS_1)
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object src/modules/print/CMakeFiles/print.dir/print.o"
+ /usr/bin/gcc $(C_FLAGS) -o src/modules/print/CMakeFiles/print.dir/print.o -c /home/mo/cligg/src/modules/print/print.c
+
+src/modules/print/CMakeFiles/print.dir/print.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to src/modules/print/CMakeFiles/print.dir/print.i"
+ /usr/bin/gcc $(C_FLAGS) -E /home/mo/cligg/src/modules/print/print.c > src/modules/print/CMakeFiles/print.dir/print.i
+
+src/modules/print/CMakeFiles/print.dir/print.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly src/modules/print/CMakeFiles/print.dir/print.s"
+ /usr/bin/gcc $(C_FLAGS) -S /home/mo/cligg/src/modules/print/print.c -o src/modules/print/CMakeFiles/print.dir/print.s
+
+src/modules/print/CMakeFiles/print.dir/print.o.requires:
+
+src/modules/print/CMakeFiles/print.dir/print.o.provides: src/modules/print/CMakeFiles/print.dir/print.o.requires
+ $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.o.provides.build
+
+src/modules/print/CMakeFiles/print.dir/print.o.provides.build: src/modules/print/CMakeFiles/print.dir/print.o
+
+src/modules/print/CMakeFiles/print.dir/depend: src/modules/print/CMakeFiles/print.dir/depend.make.mark
+
+src/modules/print/CMakeFiles/print.dir/depend.make.mark:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --magenta --bold "Scanning dependencies of target print"
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mo/cligg /home/mo/cligg/src/modules/print /home/mo/cligg /home/mo/cligg/src/modules/print /home/mo/cligg/src/modules/print/CMakeFiles/print.dir/DependInfo.cmake
+
+# Object files for target print
+print_OBJECTS = \
+"CMakeFiles/print.dir/print.o"
+
+# External object files for target print
+print_EXTERNAL_OBJECTS =
+
+src/modules/print/print.so: src/modules/print/CMakeFiles/print.dir/print.o
+src/modules/print/print.so: src/modules/print/CMakeFiles/print.dir/build.make
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C shared module print.so"
+ cd /home/mo/cligg/src/modules/print && $(CMAKE_COMMAND) -P CMakeFiles/print.dir/cmake_clean_target.cmake
+ cd /home/mo/cligg/src/modules/print && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/print.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+src/modules/print/CMakeFiles/print.dir/build: src/modules/print/print.so
+
+src/modules/print/CMakeFiles/print.dir/requires: src/modules/print/CMakeFiles/print.dir/print.o.requires
+
+src/modules/print/CMakeFiles/print.dir/clean:
+ cd /home/mo/cligg/src/modules/print && $(CMAKE_COMMAND) -P CMakeFiles/print.dir/cmake_clean.cmake
+
Added: src/modules/print/CMakeFiles/print.dir/cmake_clean.cmake
===================================================================
--- src/modules/print/CMakeFiles/print.dir/cmake_clean.cmake (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/cmake_clean.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,5 @@
+FILE(REMOVE
+"print.a"
+"print.so"
+"CMakeFiles/print.dir/print.o"
+)
Added: src/modules/print/CMakeFiles/print.dir/cmake_clean_target.cmake
===================================================================
--- src/modules/print/CMakeFiles/print.dir/cmake_clean_target.cmake (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/cmake_clean_target.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,4 @@
+FILE(REMOVE
+"print.a"
+"print.so"
+)
Added: src/modules/print/CMakeFiles/print.dir/depend.internal
===================================================================
--- src/modules/print/CMakeFiles/print.dir/depend.internal (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/depend.internal 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+src/modules/print/CMakeFiles/print.dir/print.o
+ /home/mo/cligg/src/modules/print/print.c
+ src/bin/cligg_eventhandler.h
+ src/lib/cligg_event.h
+ src/lib/cligg_module.h
+ src/lib/cligglib.h
Added: src/modules/print/CMakeFiles/print.dir/depend.make
===================================================================
--- src/modules/print/CMakeFiles/print.dir/depend.make (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/depend.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+src/modules/print/CMakeFiles/print.dir/print.o: src/modules/print/print.c
+src/modules/print/CMakeFiles/print.dir/print.o: src/bin/cligg_eventhandler.h
+src/modules/print/CMakeFiles/print.dir/print.o: src/lib/cligg_event.h
+src/modules/print/CMakeFiles/print.dir/print.o: src/lib/cligg_module.h
+src/modules/print/CMakeFiles/print.dir/print.o: src/lib/cligglib.h
+
Added: src/modules/print/CMakeFiles/print.dir/depend.make.mark
===================================================================
--- src/modules/print/CMakeFiles/print.dir/depend.make.mark (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/depend.make.mark 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+Dependencies updated>
Added: src/modules/print/CMakeFiles/print.dir/flags.make
===================================================================
--- src/modules/print/CMakeFiles/print.dir/flags.make (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/flags.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,5 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+C_FLAGS = -Dprint_EXPORTS -g -DDEBUG -Wall -pedantic -ansi -fPIC -I/home/mo/cligg/src/bin -I/home/mo/cligg/src/lib
+
Added: src/modules/print/CMakeFiles/print.dir/link.txt
===================================================================
--- src/modules/print/CMakeFiles/print.dir/link.txt (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/link.txt 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+/usr/bin/gcc -fPIC -g -DDEBUG -Wall -pedantic -ansi -shared -Wl,-soname,print.so -o print.so "CMakeFiles/print.dir/print.o" -Lsrc/lib
Added: src/modules/print/CMakeFiles/print.dir/progress.make
===================================================================
--- src/modules/print/CMakeFiles/print.dir/progress.make (rev 0)
+++ src/modules/print/CMakeFiles/print.dir/progress.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,2 @@
+CMAKE_PROGRESS_1 = 13
+
Added: src/modules/print/CMakeFiles/progress.make
===================================================================
--- src/modules/print/CMakeFiles/progress.make (rev 0)
+++ src/modules/print/CMakeFiles/progress.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+CMAKE_ALL_PROGRESS = 1
Added: src/modules/print/CMakeLists.txt
===================================================================
--- src/modules/print/CMakeLists.txt (rev 0)
+++ src/modules/print/CMakeLists.txt 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,2 @@
+add_library(print MODULE print.c)
+set_target_properties(print PROPERTIES PREFIX "")
Added: src/modules/print/Makefile
===================================================================
--- src/modules/print/Makefile (rev 0)
+++ src/modules/print/Makefile 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,135 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/ccmake
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/mo/cligg
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/mo/cligg
+
+# Include the progress variables for this target.
+include CMakeFiles/progress.make
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+ cd /home/mo/cligg/src/modules/print && /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ cd /home/mo/cligg/src/modules/print && /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles $(CMAKE_ALL_PROGRESS)
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles 0
+
+# The main clean target
+clean:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/clean
+
+# The main clean target
+clean/fast: clean
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/preinstall
+
+# clear depends
+depend:
+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+
+# Convenience name for target.
+src/modules/print/CMakeFiles/print.dir/rule:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/print/CMakeFiles/print.dir/rule
+
+# Convenience name for target.
+print: src/modules/print/CMakeFiles/print.dir/rule
+
+# fast build rule for target.
+print/fast:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/build
+
+# target to build an object file
+print.o:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.o
+
+# target to preprocess a source file
+print.i:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.i
+
+# target to generate assembly for a file
+print.s:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/print/CMakeFiles/print.dir/build.make src/modules/print/CMakeFiles/print.dir/print.s
+
+# Help Target
+help::
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... edit_cache"
+ @echo "... print"
+ @echo "... rebuild_cache"
+ @echo "... print.o"
+ @echo "... print.i"
+ @echo "... print.s"
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+
Added: src/modules/print/cmake_install.cmake
===================================================================
--- src/modules/print/cmake_install.cmake (rev 0)
+++ src/modules/print/cmake_install.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,29 @@
+# Install script for directory: /home/mo/cligg/src/modules/print
+
+# Set the install prefix
+IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ SET(CMAKE_INSTALL_PREFIX "/usr/local")
+ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+IF(NOT CMAKE_INSTALL_CONFIG_NAME)
+ IF(BUILD_TYPE)
+ STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ ELSE(BUILD_TYPE)
+ SET(CMAKE_INSTALL_CONFIG_NAME "")
+ ENDIF(BUILD_TYPE)
+ MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+ENDIF(NOT CMAKE_INSTALL_CONFIG_NAME)
+
+# Set the component getting installed.
+IF(NOT CMAKE_INSTALL_COMPONENT)
+ IF(COMPONENT)
+ MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
+ SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ ELSE(COMPONENT)
+ SET(CMAKE_INSTALL_COMPONENT)
+ ENDIF(COMPONENT)
+ENDIF(NOT CMAKE_INSTALL_COMPONENT)
+
Added: src/modules/print/print.c
===================================================================
--- src/modules/print/print.c (rev 0)
+++ src/modules/print/print.c 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <cligg_module.h>
+#include <cligg_eventhandler.h>
+
+static int print(void *);
+
+cligg_module_init print_init(void)
+{
+ fprintf(stderr, "Print Module is loaded!\n");
+ cligg_register_event("print",print);
+}
+
+static int print(void *data)
+{
+ return printf("out: %s\n",(char *)data);
+}
+
+cligg_module_finit print_finit(void)
+{
+ fprintf(stderr, "Print Module is unloaded!\n");
+}
Added: src/modules/print/print.so
===================================================================
(Binary files differ)
Property changes on: src/modules/print/print.so
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
Added: src/modules/read/CMakeFiles/CMakeDirectoryInformation.cmake
===================================================================
--- src/modules/read/CMakeFiles/CMakeDirectoryInformation.cmake (rev 0)
+++ src/modules/read/CMakeFiles/CMakeDirectoryInformation.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,18 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+# Force unix paths in dependencies.
+SET(CMAKE_FORCE_UNIX_PATHS 1)
+
+# The C and CXX include file search paths:
+SET(CMAKE_C_INCLUDE_PATH
+ "src/bin"
+ "src/lib"
+ )
+SET(CMAKE_CXX_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH})
+
+# The C and CXX include file regular expressions for this directory.
+SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
Added: src/modules/read/CMakeFiles/progress.make
===================================================================
--- src/modules/read/CMakeFiles/progress.make (rev 0)
+++ src/modules/read/CMakeFiles/progress.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+CMAKE_ALL_PROGRESS = 1
Added: src/modules/read/CMakeFiles/read.dir/C.includecache
===================================================================
--- src/modules/read/CMakeFiles/read.dir/C.includecache (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/C.includecache 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,22 @@
+/home/mo/cligg/src/modules/read/read.c
+stdio.h
+-
+stdlib.h
+-
+cligg_module.h
+-
+cligg_eventhandler.h
+-
+
+src/bin/cligg_eventhandler.h
+cligg_event.h
+-
+
+src/lib/cligg_event.h
+cligglib.h
+-
+
+src/lib/cligg_module.h
+
+src/lib/cligglib.h
+
Added: src/modules/read/CMakeFiles/read.dir/DependInfo.cmake
===================================================================
--- src/modules/read/CMakeFiles/read.dir/DependInfo.cmake (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/DependInfo.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,8 @@
+# The set of files whose dependency integrity should be checked:
+SET(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+SET(CMAKE_DEPENDS_CHECK_C
+ "/home/mo/cligg/src/modules/read/read.c"
+ "/home/mo/cligg/src/modules/read/CMakeFiles/read.dir/read.o"
+ )
Added: src/modules/read/CMakeFiles/read.dir/build.make
===================================================================
--- src/modules/read/CMakeFiles/read.dir/build.make (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/build.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,98 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/ccmake
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/mo/cligg
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/mo/cligg
+
+# Include any dependencies generated for this target.
+include src/modules/read/CMakeFiles/read.dir/depend.make
+
+# Include the progress variables for this target.
+include src/modules/read/CMakeFiles/read.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include src/modules/read/CMakeFiles/read.dir/flags.make
+
+src/modules/read/CMakeFiles/read.dir/depend.make.mark: src/modules/read/CMakeFiles/read.dir/flags.make
+src/modules/read/CMakeFiles/read.dir/depend.make.mark: src/modules/read/read.c
+
+src/modules/read/CMakeFiles/read.dir/read.o: src/modules/read/CMakeFiles/read.dir/flags.make
+src/modules/read/CMakeFiles/read.dir/read.o: src/modules/read/read.c
+ $(CMAKE_COMMAND) -E cmake_progress_report /home/mo/cligg/CMakeFiles $(CMAKE_PROGRESS_1)
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object src/modules/read/CMakeFiles/read.dir/read.o"
+ /usr/bin/gcc $(C_FLAGS) -o src/modules/read/CMakeFiles/read.dir/read.o -c /home/mo/cligg/src/modules/read/read.c
+
+src/modules/read/CMakeFiles/read.dir/read.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to src/modules/read/CMakeFiles/read.dir/read.i"
+ /usr/bin/gcc $(C_FLAGS) -E /home/mo/cligg/src/modules/read/read.c > src/modules/read/CMakeFiles/read.dir/read.i
+
+src/modules/read/CMakeFiles/read.dir/read.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly src/modules/read/CMakeFiles/read.dir/read.s"
+ /usr/bin/gcc $(C_FLAGS) -S /home/mo/cligg/src/modules/read/read.c -o src/modules/read/CMakeFiles/read.dir/read.s
+
+src/modules/read/CMakeFiles/read.dir/read.o.requires:
+
+src/modules/read/CMakeFiles/read.dir/read.o.provides: src/modules/read/CMakeFiles/read.dir/read.o.requires
+ $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.o.provides.build
+
+src/modules/read/CMakeFiles/read.dir/read.o.provides.build: src/modules/read/CMakeFiles/read.dir/read.o
+
+src/modules/read/CMakeFiles/read.dir/depend: src/modules/read/CMakeFiles/read.dir/depend.make.mark
+
+src/modules/read/CMakeFiles/read.dir/depend.make.mark:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --magenta --bold "Scanning dependencies of target read"
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mo/cligg /home/mo/cligg/src/modules/read /home/mo/cligg /home/mo/cligg/src/modules/read /home/mo/cligg/src/modules/read/CMakeFiles/read.dir/DependInfo.cmake
+
+# Object files for target read
+read_OBJECTS = \
+"CMakeFiles/read.dir/read.o"
+
+# External object files for target read
+read_EXTERNAL_OBJECTS =
+
+src/modules/read/read.so: src/modules/read/CMakeFiles/read.dir/read.o
+src/modules/read/read.so: src/modules/read/CMakeFiles/read.dir/build.make
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C shared module read.so"
+ cd /home/mo/cligg/src/modules/read && $(CMAKE_COMMAND) -P CMakeFiles/read.dir/cmake_clean_target.cmake
+ cd /home/mo/cligg/src/modules/read && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/read.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+src/modules/read/CMakeFiles/read.dir/build: src/modules/read/read.so
+
+src/modules/read/CMakeFiles/read.dir/requires: src/modules/read/CMakeFiles/read.dir/read.o.requires
+
+src/modules/read/CMakeFiles/read.dir/clean:
+ cd /home/mo/cligg/src/modules/read && $(CMAKE_COMMAND) -P CMakeFiles/read.dir/cmake_clean.cmake
+
Added: src/modules/read/CMakeFiles/read.dir/cmake_clean.cmake
===================================================================
--- src/modules/read/CMakeFiles/read.dir/cmake_clean.cmake (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/cmake_clean.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,5 @@
+FILE(REMOVE
+"read.a"
+"read.so"
+"CMakeFiles/read.dir/read.o"
+)
Added: src/modules/read/CMakeFiles/read.dir/cmake_clean_target.cmake
===================================================================
--- src/modules/read/CMakeFiles/read.dir/cmake_clean_target.cmake (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/cmake_clean_target.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,4 @@
+FILE(REMOVE
+"read.a"
+"read.so"
+)
Added: src/modules/read/CMakeFiles/read.dir/depend.internal
===================================================================
--- src/modules/read/CMakeFiles/read.dir/depend.internal (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/depend.internal 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+src/modules/read/CMakeFiles/read.dir/read.o
+ /home/mo/cligg/src/modules/read/read.c
+ src/bin/cligg_eventhandler.h
+ src/lib/cligg_event.h
+ src/lib/cligg_module.h
+ src/lib/cligglib.h
Added: src/modules/read/CMakeFiles/read.dir/depend.make
===================================================================
--- src/modules/read/CMakeFiles/read.dir/depend.make (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/depend.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+src/modules/read/CMakeFiles/read.dir/read.o: src/modules/read/read.c
+src/modules/read/CMakeFiles/read.dir/read.o: src/bin/cligg_eventhandler.h
+src/modules/read/CMakeFiles/read.dir/read.o: src/lib/cligg_event.h
+src/modules/read/CMakeFiles/read.dir/read.o: src/lib/cligg_module.h
+src/modules/read/CMakeFiles/read.dir/read.o: src/lib/cligglib.h
+
Added: src/modules/read/CMakeFiles/read.dir/depend.make.mark
===================================================================
--- src/modules/read/CMakeFiles/read.dir/depend.make.mark (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/depend.make.mark 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+Dependencies updated>
Added: src/modules/read/CMakeFiles/read.dir/flags.make
===================================================================
--- src/modules/read/CMakeFiles/read.dir/flags.make (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/flags.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,5 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+C_FLAGS = -Dread_EXPORTS -g -DDEBUG -Wall -pedantic -ansi -fPIC -I/home/mo/cligg/src/bin -I/home/mo/cligg/src/lib
+
Added: src/modules/read/CMakeFiles/read.dir/link.txt
===================================================================
--- src/modules/read/CMakeFiles/read.dir/link.txt (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/link.txt 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1 @@
+/usr/bin/gcc -fPIC -g -DDEBUG -Wall -pedantic -ansi -shared -Wl,-soname,read.so -o read.so "CMakeFiles/read.dir/read.o" -Lsrc/lib
Added: src/modules/read/CMakeFiles/read.dir/progress.make
===================================================================
--- src/modules/read/CMakeFiles/read.dir/progress.make (rev 0)
+++ src/modules/read/CMakeFiles/read.dir/progress.make 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,2 @@
+CMAKE_PROGRESS_1 = 14
+
Added: src/modules/read/CMakeLists.txt
===================================================================
--- src/modules/read/CMakeLists.txt (rev 0)
+++ src/modules/read/CMakeLists.txt 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,2 @@
+add_library(read MODULE read.c)
+set_target_properties(read PROPERTIES PREFIX "")
Added: src/modules/read/Makefile
===================================================================
--- src/modules/read/Makefile (rev 0)
+++ src/modules/read/Makefile 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,135 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.4
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/ccmake
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/mo/cligg
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/mo/cligg
+
+# Include the progress variables for this target.
+include CMakeFiles/progress.make
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+ cd /home/mo/cligg/src/modules/read && /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ cd /home/mo/cligg/src/modules/read && /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles $(CMAKE_ALL_PROGRESS)
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/mo/cligg/CMakeFiles 0
+
+# The main clean target
+clean:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/clean
+
+# The main clean target
+clean/fast: clean
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/preinstall
+
+# clear depends
+depend:
+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+
+# Convenience name for target.
+src/modules/read/CMakeFiles/read.dir/rule:
+ cd /home/mo/cligg && $(MAKE) -f CMakeFiles/Makefile2 src/modules/read/CMakeFiles/read.dir/rule
+
+# Convenience name for target.
+read: src/modules/read/CMakeFiles/read.dir/rule
+
+# fast build rule for target.
+read/fast:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/build
+
+# target to build an object file
+read.o:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.o
+
+# target to preprocess a source file
+read.i:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.i
+
+# target to generate assembly for a file
+read.s:
+ cd /home/mo/cligg && $(MAKE) -f src/modules/read/CMakeFiles/read.dir/build.make src/modules/read/CMakeFiles/read.dir/read.s
+
+# Help Target
+help::
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... edit_cache"
+ @echo "... read"
+ @echo "... rebuild_cache"
+ @echo "... read.o"
+ @echo "... read.i"
+ @echo "... read.s"
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/mo/cligg && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+
Added: src/modules/read/cmake_install.cmake
===================================================================
--- src/modules/read/cmake_install.cmake (rev 0)
+++ src/modules/read/cmake_install.cmake 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,29 @@
+# Install script for directory: /home/mo/cligg/src/modules/read
+
+# Set the install prefix
+IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ SET(CMAKE_INSTALL_PREFIX "/usr/local")
+ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+IF(NOT CMAKE_INSTALL_CONFIG_NAME)
+ IF(BUILD_TYPE)
+ STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ ELSE(BUILD_TYPE)
+ SET(CMAKE_INSTALL_CONFIG_NAME "")
+ ENDIF(BUILD_TYPE)
+ MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+ENDIF(NOT CMAKE_INSTALL_CONFIG_NAME)
+
+# Set the component getting installed.
+IF(NOT CMAKE_INSTALL_COMPONENT)
+ IF(COMPONENT)
+ MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
+ SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ ELSE(COMPONENT)
+ SET(CMAKE_INSTALL_COMPONENT)
+ ENDIF(COMPONENT)
+ENDIF(NOT CMAKE_INSTALL_COMPONENT)
+
Added: src/modules/read/read.c
===================================================================
--- src/modules/read/read.c (rev 0)
+++ src/modules/read/read.c 2007-05-21 20:52:04 UTC (rev 59)
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cligg_module.h>
+#include <cligg_eventhandler.h>
+
+cligg_module_init print_init(void)
+{
+ char *inp = malloc(100*sizeof(char));
+ fprintf(stderr, "Read Module is loaded!\n");
+ printf("inp: ");
+ fgets(inp,100,stdin);
+ cligg_trigger_event("print",inp);
+}
+
+cligg_module_finit print_finit(void)
+{
+ fprintf(stderr, "Print Module is unloaded!\n");
+}
Added: src/modules/read/read.so
===================================================================
(Binary files differ)
Property changes on: src/modules/read/read.so
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 20:50:54
|
Revision: 58
http://cligg.svn.sourceforge.net/cligg/?rev=58&view=rev
Author: mo__
Date: 2007-05-21 13:50:52 -0700 (Mon, 21 May 2007)
Log Message:
-----------
basic read- and print-modules for testing purposes
Modified Paths:
--------------
src/bin/cligg.c
src/modules/CMakeLists.txt
src/modules/dummy/dummy.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-21 18:29:06 UTC (rev 57)
+++ src/bin/cligg.c 2007-05-21 20:50:52 UTC (rev 58)
@@ -60,8 +60,9 @@
fprintf(stderr, "Error loading module\n");
cligg_trigger_event("load_module", "test");
- cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");
- cligg_trigger_event("quit_cligg", NULL);
+ cligg_trigger_event("load_module", "/home/mo/cligg/src/modules/dummy/dummy.so");
+ cligg_trigger_event("load_module", "/home/mo/cligg/src/modules/read/read.so");
+ cligg_trigger_event("quit_cligg", NULL);
/* TODO load the config */
Modified: src/modules/CMakeLists.txt
===================================================================
--- src/modules/CMakeLists.txt 2007-05-21 18:29:06 UTC (rev 57)
+++ src/modules/CMakeLists.txt 2007-05-21 20:50:52 UTC (rev 58)
@@ -1 +1 @@
-subdirs (dummy)
+subdirs (dummy print read)
Modified: src/modules/dummy/dummy.c
===================================================================
--- src/modules/dummy/dummy.c 2007-05-21 18:29:06 UTC (rev 57)
+++ src/modules/dummy/dummy.c 2007-05-21 20:50:52 UTC (rev 58)
@@ -8,5 +8,5 @@
cligg_module_finit dummy_finit(void)
{
- fprintf(stderr, "Dummy Modules is unloaded!\n");
+ fprintf(stderr, "Dummy Module is unloaded!\n");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 18:29:08
|
Revision: 57
http://cligg.svn.sourceforge.net/cligg/?rev=57&view=rev
Author: sithhell
Date: 2007-05-21 11:29:06 -0700 (Mon, 21 May 2007)
Log Message:
-----------
updated TODO
Modified Paths:
--------------
TODO
Modified: TODO
===================================================================
--- TODO 2007-05-21 18:25:38 UTC (rev 56)
+++ TODO 2007-05-21 18:29:06 UTC (rev 57)
@@ -1,110 +1,11 @@
before implementing of the various w3c standards there is more
important stuff to do:
* setting up a basic framework
- - look at the source code, and contact us: http://cligg.sourceforge.net/de/devel.html
+ - The Binary search tree needs some balancing
+ - for further stuff, look at the source code, and contact us: http://cligg.sourceforge.net/de/devel.html
http://cligg.sourceforge.net/en/devel.html
- * Documentation
- - add doxygen stuff to the sourcecode
+ * Modules
+ - all of them, very very basic dummy module created for reference
-
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-
-###############################################################################
-######### HTTP/1.1
- * Started implementing:
- - http URL is partially finished
- - http://www.w3.org/Protocols/
- * implement libwww?
- - http://www.w3.org/Library/
-
-###############################################################################
-######### Hypertext Markup Language
- * see http://www.w3.org/MarkUp/
- * HTML 2.0
- - everything. http://www.w3.org/MarkUp/html-spec/
- * HTML 3.2
- - everything. http://www.w3.org/TR/REC-html32
- * HTML 4.0
- - everything. http://www.w3.org/TR/1998/REC-html40-19980424
- * HTML 4.01
- - everything. http://www.w3.org/MarkUp/#html4
- * XHTML 1.0
- - everything. http://www.w3.org/MarkUp/#xhtml1
- * XHTML 1.1
- - everything. http://www.w3.org/MarkUp/#xhtml11
- * Forms
- - everything. http://www.w3.org/MarkUp/Forms/
-
-###############################################################################
-######### Web Style Sheets
- * everything. (CSS, XSL, DSSSL, CSS-DOM & SAC)
- - http://www.w3.org/Style/
-
-###############################################################################
-######### Other Mime types as HTML/XHTML/XML...
- * everything. Should be handled by modules.
- * PNG
- - http://www.w3.org/Graphics/PNG/
- * JPEG
- * SVG
- * GIF
- * MPEG
- * PDF
- * ...
-
-###############################################################################
-######### XML
- * everything.
- - http://www.w3.org/2000/xp/Group/
- - http://www.w3.org/XML/
- - http://www.w3.org/TR/xmlbase/
- - http://www.w3.org/Encryption/2001/
- - http://www.w3.org/2001/XKMS/
- - http://www.w3.org/XML/Processing/
- - http://www.w3.org/XML/Query/
- - http://www.w3.org/XML/Schema
- - http://www.w3.org/Signature/
- - http://www.w3.org/XML/Linking
- - http://www.w3.org/2002/ws/databinding/
-
-###############################################################################
-######### Ink Markup Language (InkML)
- * everything.
- - http://www.w3.org/2002/mmi/ink
-
-###############################################################################
-######### MathML
- * everything.
- - http://www.w3.org/Math/
-
-###############################################################################
-######### The Synchronized Multimedia Integration Language (SMIL)
- * everything.
- - http://www.w3.org/AudioVideo/
-
-###############################################################################
-######### DOM
- * everything.
- - http://www.w3.org/DOM/DOMTR
-
-###############################################################################
-######### Web Applications 1.0
- * everything.
- - http://www.whatwg.org/specs/web-apps/current-work/
-
-###############################################################################
-######### RDF (Resource Description Framework
- * everything.
- - http://www.w3.org/RDF/
- - http://www.w3.org/2001/sw/DataAccess/
-
-###############################################################################
-######### WebAPI
- * everything.
- - http://www.w3.org/2006/webapi/
-
-###############################################################################
-######### Internationalisation
- * everything.
- - http://www.w3.org/International/
+ * Documentation
+ - add doxygen stuff to the sourcecode, still a lot to do
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 18:25:40
|
Revision: 56
http://cligg.svn.sourceforge.net/cligg/?rev=56&view=rev
Author: sithhell
Date: 2007-05-21 11:25:38 -0700 (Mon, 21 May 2007)
Log Message:
-----------
added dummy module
Modified Paths:
--------------
src/bin/cligg.c
Added Paths:
-----------
src/modules/CMakeLists.txt
src/modules/dummy/
src/modules/dummy/CMakeLists.txt
src/modules/dummy/dummy.c
Removed Paths:
-------------
src/modules/console.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-21 17:55:01 UTC (rev 55)
+++ src/bin/cligg.c 2007-05-21 18:25:38 UTC (rev 56)
@@ -60,6 +60,7 @@
fprintf(stderr, "Error loading module\n");
cligg_trigger_event("load_module", "test");
+ cligg_trigger_event("load_module", "/home/heller/projekte/cligg/src/modules/dummy/dummy.so");
cligg_trigger_event("quit_cligg", NULL);
Added: src/modules/CMakeLists.txt
===================================================================
--- src/modules/CMakeLists.txt (rev 0)
+++ src/modules/CMakeLists.txt 2007-05-21 18:25:38 UTC (rev 56)
@@ -0,0 +1 @@
+subdirs (dummy)
Deleted: src/modules/console.c
===================================================================
Added: src/modules/dummy/CMakeLists.txt
===================================================================
--- src/modules/dummy/CMakeLists.txt (rev 0)
+++ src/modules/dummy/CMakeLists.txt 2007-05-21 18:25:38 UTC (rev 56)
@@ -0,0 +1,2 @@
+add_library(dummy MODULE dummy.c)
+set_target_properties(dummy PROPERTIES PREFIX "")
Added: src/modules/dummy/dummy.c
===================================================================
--- src/modules/dummy/dummy.c (rev 0)
+++ src/modules/dummy/dummy.c 2007-05-21 18:25:38 UTC (rev 56)
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include <cligg_module.h>
+
+cligg_module_init dummy_init(void)
+{
+ fprintf(stderr, "Dummy Module is loaded!\n");
+}
+
+cligg_module_finit dummy_finit(void)
+{
+ fprintf(stderr, "Dummy Modules is unloaded!\n");
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-21 17:55:04
|
Revision: 55
http://cligg.svn.sourceforge.net/cligg/?rev=55&view=rev
Author: sithhell
Date: 2007-05-21 10:55:01 -0700 (Mon, 21 May 2007)
Log Message:
-----------
fixed various stuff
Modified Paths:
--------------
src/bin/cligg_eventhandler.c
src/bin/cligg_mainloop.c
src/bin/cligg_modulehandler.c
src/lib/cligg_btree.c
src/lib/cligg_event.c
src/lib/cligg_hashmap.c
src/lib/cligg_hashmap.h
src/lib/cligg_list.c
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/bin/cligg_eventhandler.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -162,7 +162,7 @@
}
new = (cligg_event_function *)cligg_hashmap_get_element(event_map, tmp);
- cligg_event_function_del(tmp);
+
if(new == NULL) ret = NULL;
else ret = new->event_cb;
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/bin/cligg_mainloop.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -1,5 +1,6 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <pthread.h>
#include <cligg.h>
#include <cligglib.h>
@@ -53,13 +54,18 @@
return (void *)EXIT_FAILURE;
cb = cligg_lookup_event(new->name);
+ free(new->name);
- if(cb == NULL) continue;
-
- if(!cb(new->data))
- fprintf(stderr, "Event callback failed!\n");
- if(strcmp(new->name, "quit_cligg") == 0) break;
+ if(cb == NULL) {
+ fprintf(stderr, "No Callback specified!\n");
+ }
+ else {
+ if(!cb(new->data))
+ fprintf(stderr, "Event callback failed!\n");
+ }
+ /*if(strcmp(new->name, "quit_cligg") == 0) break;*/
+ free(new);
}
- return (void *)EXIT_SUCCESS;
+ pthread_exit((void *)EXIT_SUCCESS);
}
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/bin/cligg_modulehandler.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -61,6 +61,7 @@
new->handle = dlopen(path, RTLD_LAZY);
if(!new->handle) {
fprintf(stderr, "Error loading module: %s\n", dlerror());
+ cligg_module_del(new);
return FALSE;
}
@@ -80,7 +81,6 @@
return FALSE;
}
-
dlerror(); /* clear any existing errors */
return ret;
}
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/lib/cligg_btree.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -35,11 +35,11 @@
CLIGG void
cligg_btree_clear(cligg_btree *tree)
{
- cligg_list *tofree = cligg_list_new(NULL);
+ /*cligg_list *tofree = cligg_list_new(NULL);
if(tofree == NULL) {
perror("Couldn't clear tree");
return;
- }
+ }*/
del(tree->root, tree->free_func);
@@ -52,8 +52,8 @@
del(dele->left, free_func);
del(dele->right, free_func);
- /*if(free_func)
- free_func(dele->data);*/
+ if(free_func)
+ free_func(dele->data);
free(dele);
}
@@ -149,9 +149,15 @@
}
if(tmp != tmp1) {
tmp->data = tmp1->data;
+ if(tree->free_func)
+ tree->free_func(tmp1->data);
free(tmp1);
}
- else free(tmp);
+ else {
+ if(tree->free_func)
+ tree->free_func(tmp->data);
+ free(tmp);
+ }
tree->size--;
Modified: src/lib/cligg_event.c
===================================================================
--- src/lib/cligg_event.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/lib/cligg_event.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -39,7 +39,7 @@
new->name = malloc(strlen(name) * sizeof(char) + 1);
if(new->name == NULL) {
- free(new);
+ free(new);
return NULL;
}
@@ -54,7 +54,7 @@
CLIGG void
cligg_event_function_del(void *event)
{
- free(((cligg_event_function *)event)->name);
- ((cligg_event_function *)event)->event_cb = NULL;
- /*free(event);*/
+ cligg_event_function *tmp = event;
+ free(tmp->name);
+ free(tmp);
}
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/lib/cligg_hashmap.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -29,7 +29,8 @@
flags |= BALANCE;
- new->map = cligg_btree_new(free_func, cmp);
+ new->map = cligg_btree_new(cligg_hashmap_element_delete, cmp);
+ new->free_func = free_func;
if(hash_func == NULL) {
fprintf(stderr, "Need a hash function!\n");
@@ -61,11 +62,9 @@
cligg_hashmap_add_element(cligg_hashmap *map,
void *data)
{
- cligg_hashmap_element *new = (cligg_hashmap_element *)malloc(sizeof(cligg_hashmap_element));
+ cligg_hashmap_element *new = cligg_hashmap_element_new(data, map->free_func, map->hash_func);
if(!new)
return FALSE;
- new->hash = map->hash_func(data);
- new->data = data;
return cligg_btree_add_element(map->map, new);
}
@@ -74,9 +73,9 @@
cligg_hashmap_del_element(cligg_hashmap *map,
void *data)
{
- cligg_hashmap_element *del = malloc(sizeof(cligg_hashmap_element));
- del->hash = map->hash_func(data);
- del->data = data;
+ cligg_hashmap_element *del = cligg_hashmap_element_new(data, map->free_func, map->hash_func);
+ if(!del)
+ return FALSE;
return cligg_btree_del_element(map->map, del);
}
@@ -87,13 +86,39 @@
{
cligg_btree_element *find;
- cligg_hashmap_element *element = malloc(sizeof(cligg_hashmap_element));
- element->hash = map->hash_func(data);
- element->data = data;
+ cligg_hashmap_element *element = cligg_hashmap_element_new(data, map->free_func, map->hash_func);
+ if(!element)
+ return FALSE;
find = (cligg_btree_element *)cligg_btree_find(map->map, element);
if(find) {
+ cligg_hashmap_element_delete(element);
return ((cligg_hashmap_element *)find->data)->data;
}
+ cligg_hashmap_element_delete(element);
return NULL;
}
+
+
+CLIGG cligg_hashmap_element *
+cligg_hashmap_element_new(void *data, free_func_cb free_func, hash_func_cb hash_func)
+{
+ cligg_hashmap_element *new = (cligg_hashmap_element *)malloc(sizeof(cligg_hashmap_element));
+ if(new == NULL)
+ return NULL;
+ new->data = data;
+ new->hash = hash_func(data);
+ new->free_func = free_func;
+
+ return new;
+}
+
+CLIGG void cligg_hashmap_element_delete(void *ele)
+{
+ cligg_hashmap_element *dele = ele;
+
+ if(dele == NULL) return;
+
+ if(dele->free_func) dele->free_func(dele->data);
+ free(dele);
+}
Modified: src/lib/cligg_hashmap.h
===================================================================
--- src/lib/cligg_hashmap.h 2007-05-16 16:27:24 UTC (rev 54)
+++ src/lib/cligg_hashmap.h 2007-05-21 17:55:01 UTC (rev 55)
@@ -14,6 +14,7 @@
struct cligg_hashmap {
cligg_btree *map;
hash_func_cb hash_func;
+ free_func_cb free_func;
};
/**
@@ -22,6 +23,7 @@
struct cligg_hashmap_element {
unsigned long hash;
void *data;
+ free_func_cb free_func;
};
/**
@@ -56,4 +58,7 @@
CLIGG void *cligg_hashmap_get_element(cligg_hashmap *, void *data);
+CLIGG cligg_hashmap_element *cligg_hashmap_element_new(void *data, free_func_cb free_func, hash_func_cb hash_func);
+CLIGG void cligg_hashmap_element_delete(void *ele);
+
#endif
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-16 16:27:24 UTC (rev 54)
+++ src/lib/cligg_list.c 2007-05-21 17:55:01 UTC (rev 55)
@@ -15,14 +15,17 @@
return NULL;
}
- memset(new_list, 0, sizeof(cligg_list));
+ /*memset(new_list, 0, sizeof(cligg_list));*/
+ new_list->size = 0;
+ new_list->first = NULL;
+ new_list->last = NULL;
+ new_list->current = NULL;
- if(free_func) {
+ if(free_func)
new_list->free_func = free_func;
- }
-
+ else {
+ new_list->free_func = NULL;
#ifdef DEBUG
- else {
printf("WARNING: No callback for freeing data specified.\n");
printf("Possible Memory leak!\n");
}
@@ -54,14 +57,17 @@
free(old);
}
free(list->last);
- memset(list, 0, sizeof(cligg_list));
+ /*memset(list, 0, sizeof(cligg_list));*/
+ list->last = NULL;
+ list->first = NULL;
list->current = NULL;
+ list->size = 0;
}
/* delete the list */
CLIGG void cligg_list_del(cligg_list *list)
{
- if(!list) {
+ if(list == NULL) {
return;
}
@@ -73,7 +79,7 @@
/* check if list is empty */
CLIGG int cligg_list_isempty(cligg_list *list)
{
- if(!list) {
+ if(list == NULL) {
return TRUE;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-16 16:27:26
|
Revision: 54
http://cligg.svn.sourceforge.net/cligg/?rev=54&view=rev
Author: sithhell
Date: 2007-05-16 09:27:24 -0700 (Wed, 16 May 2007)
Log Message:
-----------
well ... now it should really work. memory leaks still remain
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_mainloop.c
src/bin/cligg_modulehandler.c
src/lib/cligg_btree.c
src/lib/cligg_list.c
src/lib/cligg_list.h
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-16 14:08:44 UTC (rev 53)
+++ src/bin/cligg.c 2007-05-16 16:27:24 UTC (rev 54)
@@ -33,6 +33,7 @@
* for discussion about the code use the mailing list or/and irc
*/
+static int quit_cligg(void *data);
int main(int argc, char **argv)
{
@@ -49,15 +50,19 @@
exit(EXIT_FAILURE);
/* TODO register basic events */
+ /* event for quitting softly */
+ cligg_register_event("quit_cligg", quit_cligg);
/* init module system */
ret = cligg_init_modulehandler();
if(!cligg_trigger_event("test", NULL))
- fprintf(stderr, "Error laoding module\n");
+ fprintf(stderr, "Error loading module\n");
cligg_trigger_event("load_module", "test");
+ cligg_trigger_event("quit_cligg", NULL);
+
/* TODO load the config */
/* TODO process the config */
@@ -67,12 +72,18 @@
/* starting the event loop */
cligg_main_begin();
/* MAGIC!! */
+ return quit_cligg(NULL);
+}
+
+static int quit_cligg(void *data)
+{
+ int ret;
ret = cligg_main_end();
-printf("blubb\n");
/* Clean up */
cligg_delete_handler();
- cligg_del_modulehandler();
+ cligg_del_modulehandler();
+ fprintf(stderr, "Good Bye!\n");
+
exit(ret);
}
-
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-16 14:08:44 UTC (rev 53)
+++ src/bin/cligg_mainloop.c 2007-05-16 16:27:24 UTC (rev 54)
@@ -30,9 +30,11 @@
int
cligg_main_end(void)
{
- void *ret_val;
+ void *ret_val = NULL;
pthread_join(main_loop, &ret_val);
+ if(ret_val == NULL)
+ return EXIT_SUCCESS;
return (int)ret_val;
}
@@ -50,16 +52,13 @@
if(new == NULL)
return (void *)EXIT_FAILURE;
- /*printf("%s: %x\n", new->name, cb);*/
-
cb = cligg_lookup_event(new->name);
- /*printf("%s: %x\n", new->name, cb);*/
-
if(cb == NULL) continue;
if(!cb(new->data))
fprintf(stderr, "Event callback failed!\n");
+ if(strcmp(new->name, "quit_cligg") == 0) break;
}
return (void *)EXIT_SUCCESS;
Modified: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c 2007-05-16 14:08:44 UTC (rev 53)
+++ src/bin/cligg_modulehandler.c 2007-05-16 16:27:24 UTC (rev 54)
@@ -50,7 +50,9 @@
int cligg_register_module(char *path)
{
+ int ret = TRUE;
cligg_module *new = cligg_module_new(path);
+
if(new == NULL) {
perror("Error loading module");
return FALSE;
@@ -70,7 +72,7 @@
if(!cligg_list_element_append(module_list, new)) {
perror("Error loading module");
- return FALSE;
+ ret = FALSE;
}
if(pthread_mutex_unlock(&module_lock) != 0) {
fprintf(stderr, "Couldn't unlock module lock!\n");
@@ -80,7 +82,7 @@
dlerror(); /* clear any existing errors */
- return TRUE;
+ return ret;
}
int cligg_unregister_module(cligg_module *module)
@@ -97,21 +99,20 @@
if(cligg_list_element_find(module_list, cmp, module) == -1) {
fprintf(stderr, "Couldn't delete module: Not found!\n");
ret = FALSE;
- goto jump;
}
+ else {
+ tmp = (cligg_module *)module_list->current->data;
- tmp = (cligg_module *)module_list->current->data;
+ dlclose(tmp->handle);
- dlclose(tmp->handle);
+ cligg_list_element_del_current(module_list);
+ }
- cligg_list_element_del_current(module_list);
-
if(pthread_mutex_unlock(&module_lock) != 0) {
fprintf(stderr, "Couldn't unlock module lock!\n");
cligg_module_del(tmp);
return FALSE;
}
-jump:
return ret;
}
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-05-16 14:08:44 UTC (rev 53)
+++ src/lib/cligg_btree.c 2007-05-16 16:27:24 UTC (rev 54)
@@ -30,35 +30,33 @@
return tree;
}
+static void del(cligg_btree_element *, free_func_cb);
+
CLIGG void
cligg_btree_clear(cligg_btree *tree)
{
- cligg_btree_element *tmp;
cligg_list *tofree = cligg_list_new(NULL);
- /**
- * TODO put error handling code here ... i am lazy right now ...
- */
-
- if(!cligg_list_element_append(tofree, tree->root)) {
- /*error*/
+ if(tofree == NULL) {
+ perror("Couldn't clear tree");
+ return;
}
- while(!cligg_list_isempty(tofree)) {
- tmp = (cligg_btree_element *)cligg_list_element_get_first(tofree);
- cligg_list_element_del_first(tofree);
- if(!cligg_list_element_append(tofree, tmp->left)) {
- /*error*/
- }
- if(!cligg_list_element_append(tofree, tmp->right)) {
- /*error*/
- }
- if(tree->free_func)
- tree->free_func(tmp->data);
- free(tmp);
- }
+ del(tree->root, tree->free_func);
+
tree->size = 0;
}
+static void del(cligg_btree_element *dele, free_func_cb free_func)
+{
+ if(dele == NULL) return;
+ del(dele->left, free_func);
+ del(dele->right, free_func);
+
+ /*if(free_func)
+ free_func(dele->data);*/
+ free(dele);
+}
+
CLIGG void
cligg_btree_del(cligg_btree *tree)
{
@@ -172,10 +170,10 @@
tmp = tree->root;
while(tmp) {
switch (tree->cmp_func(tmp->data, data)) {
- case 1:
+ case -1:
tmp = tmp->right;
break;
- case -1:
+ case 1:
tmp = tmp->left;
break;
case 0:
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-16 14:08:44 UTC (rev 53)
+++ src/lib/cligg_list.c 2007-05-16 16:27:24 UTC (rev 54)
@@ -119,17 +119,16 @@
new_element->prev = NULL;
/*append to list*/
- if(list->last) {
- list->last->next = new_element;
- new_element->prev = list->last;
- }
+ new_element->prev = list->last;
+ if(list->first == NULL)
+ list->first = new_element;
+
+ if(list->last != NULL)
+ list->last->next = new_element;
list->last = new_element;
+ new_element->next = NULL;
- if(list->first == NULL) {
- list->first = list->last;
- }
-
list->size++;
return TRUE;
}
@@ -154,12 +153,16 @@
/* prepend to list */
new_element->next = list->first;
- list->first = new_element;
-
- if(list->last == NULL) {
- list->last = list->first;
+ if(list->last == NULL)
+ list->last = new_element;
+
+ if(list->first != NULL) {
+ list->first->prev = new_element;
}
+ list->first = new_element;
+ new_element->prev = NULL;
+
list->size++;
return TRUE;
@@ -171,6 +174,7 @@
list1->last->next = list2->first;
list2->first->prev = list1->last;
list1->last = list2->last;
+ list1->size += list2->size;
return TRUE;
}
@@ -181,83 +185,48 @@
list2->last->next = list1->first;
list1->first = list2->first;
list2->last = list1->first;
+ list1->size += list2->size;
return TRUE;
}
/* delete an element from the list */
CLIGG int cligg_list_element_del_first(cligg_list *list)
{
- cligg_list_element *old;
-
- if(cligg_list_isempty(list)) {
- return FALSE;
- }
+ cligg_list_element *tmp;
+ int ret;
- if(list->first == NULL) {
- return FALSE;
- }
-
- if(list->current == list->first)
- list->current = NULL;
+ if(list == NULL) return FALSE;
+ tmp = list->current;
+ if((tmp = list->first))
+ tmp = NULL;
- old = list->first;
- if(list->free_func) {
- list->free_func(old->data);
- }
- list->first = old->next;
- if(list->first != NULL)
- list->first->prev = NULL;
- free(old);
-
- list->size--;
-
- return TRUE;
+ list->current = list->first;
+ ret = cligg_list_element_del_current(list);
+ list->current = tmp;
+ return ret;
}
CLIGG int cligg_list_element_del_last(cligg_list *list)
{
- cligg_list_element *old;
- cligg_list_element *previous;
+ cligg_list_element *tmp;
+ int ret;
- if(cligg_list_isempty(list)) {
- return FALSE;
- }
+ if(list == NULL) return FALSE;
+ tmp = list->current;
+ if((tmp = list->last))
+ tmp = NULL;
- if(list->last == NULL) {
- return FALSE;
- }
-
- if(list->current == list->last)
- list->current = NULL;
-
- old = list->last;
-
- if(list->free_func) {
- list->free_func(old->data);
- }
-
- previous = list->first;
- while(previous && previous->next != old) {
- previous = previous->next;
- }
-
- list->last = previous;
- if(previous) {
- previous->next = NULL;
- }
-
- free(old);
-
- list->size--;
-
- return TRUE;
+ list->current = list->last;
+ ret = cligg_list_element_del_current(list);
+ list->current = tmp;
+ return ret;
}
CLIGG int cligg_list_element_del_index(cligg_list *list, int index)
{
int i = 0;
cligg_list_element *old;
- cligg_list_element *previous;
+ cligg_list_element *tmp;
if(cligg_list_isempty(list)) {
return FALSE;
@@ -279,47 +248,41 @@
if(i == index) {
break;
}
- previous = old;
old = old->next;
i++;
}
- if(list->current == old)
- list->current = NULL;
+ tmp = list->current;
- previous->next = old->next;
- previous->next->prev = old->next->prev;
- if(list->free_func) {
- list->free_func(old->data);
- }
- free(old);
+ if(tmp == old)
+ tmp = NULL;
- return TRUE;
+ list->current = old;
+
+ i = cligg_list_element_del_current(list);
+ list->current = tmp;
+ return i;
}
CLIGG int cligg_list_element_del_current(cligg_list *list)
{
- cligg_list_element *tmp;
+ cligg_list_element *tmp = list->current;
if(list->current == NULL)
return FALSE;
- if(list->current == list->first)
- return cligg_list_element_del_first(list);
- if(list->current == list->last)
- return cligg_list_element_del_last(list);
+ if(list->current->prev != NULL)
+ list->current->prev->next = list->current->next;
+ else
+ list->first = list->current->next;
+ if(list->current->next != NULL)
+ list->current->next->prev = list->current->prev;
- tmp = list->current;
- list->current->next = list->current->next->next;
- list->current = list->current->next;
-
+ list->current = NULL;
if(list->free_func)
list->free_func(tmp->data);
-
- tmp->prev->next = tmp->next;
- tmp->next->prev = tmp->prev;
-
free(tmp);
+ list->size--;
return TRUE;
}
@@ -340,16 +303,23 @@
return list->last->data;
}
-CLIGG void* cligg_list_element_get_index(cligg_list *list, int index)
+CLIGG void* cligg_list_element_get_current(cligg_list *list)
{
+ if(cligg_list_isempty(list))
+ return NULL;
+ return list->current->data;
+}
+
+CLIGG int cligg_list_element_goto(cligg_list *list, int index)
+{
int i = 0;
cligg_list_element *tmp;
if(cligg_list_isempty(list)) {
- return NULL;
+ return FALSE;
}
if(index >= list->size || index < 0) {
- return NULL;
+ return FALSE;
}
tmp = list->first;
@@ -361,7 +331,8 @@
tmp = tmp->next;
i++;
}
- return tmp->data;
+ list->current = tmp;
+ return TRUE;
}
CLIGG int cligg_list_element_find(cligg_list *list, compare_func_cb compare_func, void *data)
@@ -370,26 +341,29 @@
cligg_list_element *tmp = NULL;
if(cligg_list_isempty(list)) {
- return -1;
+ return 0;
}
if(compare_func(list->last->data, data) == 0) {
list->current = list->last;
return list->size-1;
}
+ if(compare_func(list->first->data, data) == 0) {
+ list->current = list->first;
+ return 1;
+ }
tmp = list->first;
- while(tmp->next != list->last) {
- if(compare_func(tmp->data, data) == 0) {
- list->current = tmp;
- return i;
- }
+ while(tmp->next != NULL && (compare_func(tmp->data, data) == 0)) {
tmp = tmp->next;
i++;
}
- list->current = NULL;
- return -1;
+ list->current = tmp;
+
+ if(i > list->size)
+ return -1;
+ return i;
}
CLIGG int cligg_list_element_add_sorted(cligg_list *list, compare_func_cb compare_func, void *data)
Modified: src/lib/cligg_list.h
===================================================================
--- src/lib/cligg_list.h 2007-05-16 14:08:44 UTC (rev 53)
+++ src/lib/cligg_list.h 2007-05-16 16:27:24 UTC (rev 54)
@@ -87,14 +87,15 @@
/* get list element data*/
CLIGG void* cligg_list_element_get_first(cligg_list *);
CLIGG void* cligg_list_element_get_last(cligg_list *);
-CLIGG void* cligg_list_element_get_index(cligg_list *, int);
+CLIGG void* cligg_list_element_get_current(cligg_list *);
+CLIGG int cligg_list_element_goto(cligg_list *, int);
/* returns the index of the first element which matches data */
CLIGG int cligg_list_element_find(cligg_list *, compare_func_cb, void *);
/* sorted list stuff*/
/* please remember, sorting a list which is in an unsorted state is n*n, so i won't implement it here. *
* inserting an element in sorted mode is n, this is far from optimum, use another datatype, thanks. *
- * this is just for completion */
+ * this is just for completion, and not tested yet. */
CLIGG int cligg_list_element_add_sorted(cligg_list *, compare_func_cb , void *);
/** @} */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-16 14:08:49
|
Revision: 53
http://cligg.svn.sourceforge.net/cligg/?rev=53&view=rev
Author: sithhell
Date: 2007-05-16 07:08:44 -0700 (Wed, 16 May 2007)
Log Message:
-----------
everything, to this point should work now, memroy leaks could still be there
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_eventhandler.c
src/bin/cligg_mainloop.c
src/lib/cligg_btree.c
src/lib/cligg_hashmap.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-16 09:41:33 UTC (rev 52)
+++ src/bin/cligg.c 2007-05-16 14:08:44 UTC (rev 53)
@@ -47,6 +47,8 @@
ret = cligg_init_handler();
if(!ret)
exit(EXIT_FAILURE);
+
+ /* TODO register basic events */
/* init module system */
ret = cligg_init_modulehandler();
@@ -54,7 +56,7 @@
if(!cligg_trigger_event("test", NULL))
fprintf(stderr, "Error laoding module\n");
- cligg_trigger_event("load_module", NULL);
+ cligg_trigger_event("load_module", "test");
/* TODO load the config */
@@ -62,13 +64,11 @@
/* TODO define own signal handlers */
- /* TODO register basic events */
-
/* starting the event loop */
cligg_main_begin();
/* MAGIC!! */
ret = cligg_main_end();
-
+printf("blubb\n");
/* Clean up */
cligg_delete_handler();
cligg_del_modulehandler();
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-05-16 09:41:33 UTC (rev 52)
+++ src/bin/cligg_eventhandler.c 2007-05-16 14:08:44 UTC (rev 53)
@@ -59,8 +59,6 @@
int ret;
cligg_event_function *new;
- printf("%s : %x\n", name, event_cb);
-
new = cligg_event_function_new(name, event_cb);
if(new == NULL)
return FALSE;
@@ -154,9 +152,9 @@
{
cligg_event_cb ret;
cligg_event_function *new;
- cligg_event_function *tmp = cligg_event_function_new(name, NULL);
- if(tmp == NULL)
- return NULL;
+ cligg_event_function *tmp = cligg_event_function_new(name, NULL);
+ if(tmp == NULL)
+ return NULL;
if(pthread_mutex_lock(&hash_lock) != 0) {
fprintf(stderr, "Couldn't obtain lock for the event map!\n");
@@ -164,7 +162,7 @@
}
new = (cligg_event_function *)cligg_hashmap_get_element(event_map, tmp);
- cligg_event_function_del(tmp);
+ cligg_event_function_del(tmp);
if(new == NULL) ret = NULL;
else ret = new->event_cb;
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-16 09:41:33 UTC (rev 52)
+++ src/bin/cligg_mainloop.c 2007-05-16 14:08:44 UTC (rev 53)
@@ -43,16 +43,18 @@
cligg_loop(void *arg)
{
cligg_event_data *new;
- cligg_event_cb cb;
+ cligg_event_cb cb = NULL;
while(TRUE) {
new = cligg_waiton_event();
if(new == NULL)
return (void *)EXIT_FAILURE;
+
+ /*printf("%s: %x\n", new->name, cb);*/
cb = cligg_lookup_event(new->name);
- printf("%s: %x\n", new->name, cb);
+ /*printf("%s: %x\n", new->name, cb);*/
if(cb == NULL) continue;
Modified: src/lib/cligg_btree.c
===================================================================
--- src/lib/cligg_btree.c 2007-05-16 09:41:33 UTC (rev 52)
+++ src/lib/cligg_btree.c 2007-05-16 14:08:44 UTC (rev 53)
@@ -85,7 +85,6 @@
new->right = NULL;
new->left = NULL;
new->data = data;
-
tmp2 = tree->root;
while(tmp2) {
tmp1 = tmp2;
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-16 09:41:33 UTC (rev 52)
+++ src/lib/cligg_hashmap.c 2007-05-16 14:08:44 UTC (rev 53)
@@ -1,7 +1,6 @@
#include <stdlib.h>
#include <stdio.h>
#include <cligg_hashmap.h>
-#include <cligg_event.h>
static int
cmp(void *_a,
@@ -63,6 +62,8 @@
void *data)
{
cligg_hashmap_element *new = (cligg_hashmap_element *)malloc(sizeof(cligg_hashmap_element));
+ if(!new)
+ return FALSE;
new->hash = map->hash_func(data);
new->data = data;
@@ -92,8 +93,7 @@
find = (cligg_btree_element *)cligg_btree_find(map->map, element);
if(find) {
- printf("%s: %x\n", ((cligg_event_function *)find->data->)name, ((cligg_event_function *)find->data->)event_cb);
- return find->data;
+ return ((cligg_hashmap_element *)find->data)->data;
}
return NULL;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-16 09:41:35
|
Revision: 52
http://cligg.svn.sourceforge.net/cligg/?rev=52&view=rev
Author: sithhell
Date: 2007-05-16 02:41:33 -0700 (Wed, 16 May 2007)
Log Message:
-----------
blubb
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_eventhandler.c
src/bin/cligg_mainloop.c
src/lib/cligg_event.c
src/lib/cligg_hashmap.c
src/lib/cligg_list.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/bin/cligg.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -54,6 +54,8 @@
if(!cligg_trigger_event("test", NULL))
fprintf(stderr, "Error laoding module\n");
+ cligg_trigger_event("load_module", NULL);
+
/* TODO load the config */
/* TODO process the config */
@@ -69,6 +71,7 @@
/* Clean up */
cligg_delete_handler();
+ cligg_del_modulehandler();
exit(ret);
}
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/bin/cligg_eventhandler.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -59,6 +59,8 @@
int ret;
cligg_event_function *new;
+ printf("%s : %x\n", name, event_cb);
+
new = cligg_event_function_new(name, event_cb);
if(new == NULL)
return FALSE;
@@ -152,19 +154,23 @@
{
cligg_event_cb ret;
cligg_event_function *new;
+ cligg_event_function *tmp = cligg_event_function_new(name, NULL);
+ if(tmp == NULL)
+ return NULL;
if(pthread_mutex_lock(&hash_lock) != 0) {
fprintf(stderr, "Couldn't obtain lock for the event map!\n");
- return FALSE;
+ return NULL;
}
- new = cligg_hashmap_get_element(event_map, name);
+ new = (cligg_event_function *)cligg_hashmap_get_element(event_map, tmp);
+ cligg_event_function_del(tmp);
if(new == NULL) ret = NULL;
else ret = new->event_cb;
if(pthread_mutex_unlock(&hash_lock) != 0) {
fprintf(stderr, "Couldn't release lock for the event map!\n");
- return FALSE;
+ return NULL;
}
return ret;
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/bin/cligg_mainloop.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -52,6 +52,8 @@
cb = cligg_lookup_event(new->name);
+ printf("%s: %x\n", new->name, cb);
+
if(cb == NULL) continue;
if(!cb(new->data))
Modified: src/lib/cligg_event.c
===================================================================
--- src/lib/cligg_event.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/lib/cligg_event.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -33,13 +33,15 @@
cligg_event_function_new(char *name,
cligg_event_cb event_cb)
{
- cligg_event_function *new = malloc(sizeof(cligg_event_function));
+ cligg_event_function *new = (cligg_event_function *)malloc(sizeof(cligg_event_function));
if(new == NULL)
return NULL;
new->name = malloc(strlen(name) * sizeof(char) + 1);
- if(new->name == NULL)
+ if(new->name == NULL) {
+ free(new);
return NULL;
+ }
strcpy(new->name, name);
@@ -53,5 +55,6 @@
cligg_event_function_del(void *event)
{
free(((cligg_event_function *)event)->name);
- free(event);
+ ((cligg_event_function *)event)->event_cb = NULL;
+ /*free(event);*/
}
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/lib/cligg_hashmap.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -90,8 +90,10 @@
element->hash = map->hash_func(data);
element->data = data;
- find = cligg_btree_find(map->map, element);
- if(find)
- return element;
+ find = (cligg_btree_element *)cligg_btree_find(map->map, element);
+ if(find) {
+ printf("%s: %x\n", ((cligg_event_function *)find->data->)name, ((cligg_event_function *)find->data->)event_cb);
+ return find->data;
+ }
return NULL;
}
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-15 21:54:32 UTC (rev 51)
+++ src/lib/cligg_list.c 2007-05-16 09:41:33 UTC (rev 52)
@@ -205,7 +205,8 @@
list->free_func(old->data);
}
list->first = old->next;
- list->first->prev = NULL;
+ if(list->first != NULL)
+ list->first->prev = NULL;
free(old);
list->size--;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-15 21:54:34
|
Revision: 51
http://cligg.svn.sourceforge.net/cligg/?rev=51&view=rev
Author: sithhell
Date: 2007-05-15 14:54:32 -0700 (Tue, 15 May 2007)
Log Message:
-----------
error correction, segfault still remains ...
Modified Paths:
--------------
src/bin/cligg.c
src/bin/cligg_eventhandler.c
src/lib/cligg_event.c
src/lib/cligg_hashmap.c
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-15 20:58:37 UTC (rev 50)
+++ src/bin/cligg.c 2007-05-15 21:54:32 UTC (rev 51)
@@ -51,6 +51,9 @@
/* init module system */
ret = cligg_init_modulehandler();
+ if(!cligg_trigger_event("test", NULL))
+ fprintf(stderr, "Error laoding module\n");
+
/* TODO load the config */
/* TODO process the config */
Modified: src/bin/cligg_eventhandler.c
===================================================================
--- src/bin/cligg_eventhandler.c 2007-05-15 20:58:37 UTC (rev 50)
+++ src/bin/cligg_eventhandler.c 2007-05-15 21:54:32 UTC (rev 51)
@@ -23,7 +23,7 @@
static unsigned long
hash(void *data) /* this is the sdbm hashing algorithm */
{
- char *str = (char *)data;
+ char *str = ((char *)((cligg_event_function *)data)->name);
unsigned long hash = 0;
int c;
while((c = *str++))
Modified: src/lib/cligg_event.c
===================================================================
--- src/lib/cligg_event.c 2007-05-15 20:58:37 UTC (rev 50)
+++ src/lib/cligg_event.c 2007-05-15 21:54:32 UTC (rev 51)
@@ -43,6 +43,7 @@
strcpy(new->name, name);
+
new->event_cb = event_cb;
return new;
Modified: src/lib/cligg_hashmap.c
===================================================================
--- src/lib/cligg_hashmap.c 2007-05-15 20:58:37 UTC (rev 50)
+++ src/lib/cligg_hashmap.c 2007-05-15 21:54:32 UTC (rev 51)
@@ -1,6 +1,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <cligg_hashmap.h>
+#include <cligg_event.h>
static int
cmp(void *_a,
@@ -61,7 +62,7 @@
cligg_hashmap_add_element(cligg_hashmap *map,
void *data)
{
- cligg_hashmap_element *new = malloc(sizeof(cligg_hashmap_element));
+ cligg_hashmap_element *new = (cligg_hashmap_element *)malloc(sizeof(cligg_hashmap_element));
new->hash = map->hash_func(data);
new->data = data;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cli...@li...> - 2007-05-15 20:58:39
|
Revision: 50
http://cligg.svn.sourceforge.net/cligg/?rev=50&view=rev
Author: sithhell
Date: 2007-05-15 13:58:37 -0700 (Tue, 15 May 2007)
Log Message:
-----------
implemented our module handler, which registers two events: load_module, unload_module\n added constructor and destructor for the modules see src/lib/cligg_module.h
Modified Paths:
--------------
src/bin/CMakeLists.txt
src/bin/cligg.c
src/bin/cligg_mainloop.c
src/lib/cligg_event.c
src/lib/cligg_event.h
src/lib/cligg_hashmap.h
src/lib/cligg_list.c
src/lib/cligg_list.h
src/lib/cligg_module.c
src/lib/cligg_module.h
Added Paths:
-----------
src/bin/cligg_modulehandler.c
src/bin/cligg_modulehandler.h
Modified: src/bin/CMakeLists.txt
===================================================================
--- src/bin/CMakeLists.txt 2007-05-14 21:47:41 UTC (rev 49)
+++ src/bin/CMakeLists.txt 2007-05-15 20:58:37 UTC (rev 50)
@@ -1,6 +1,7 @@
add_library(cligg_mainloop STATIC cligg_mainloop.c)
add_library(cligg_eventhandler STATIC cligg_eventhandler.c)
+add_library(cligg_modulehandler STATIC cligg_modulehandler.c)
add_executable(cligg cligg.c)
-target_link_libraries(cligg cligglib cligg_mainloop cligg_eventhandler pthread)
+target_link_libraries(cligg cligglib cligg_mainloop cligg_eventhandler cligg_modulehandler pthread dl)
add_executable(tree_test test.c)
target_link_libraries(tree_test cligglib)
Modified: src/bin/cligg.c
===================================================================
--- src/bin/cligg.c 2007-05-14 21:47:41 UTC (rev 49)
+++ src/bin/cligg.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -12,6 +12,7 @@
#include <cligg_event.h>
#include <cligg_eventhandler.h>
#include <cligg_mainloop.h>
+#include <cligg_modulehandler.h>
/**
* @file cligg.c
@@ -37,15 +38,18 @@
{
int ret;
+#ifndef _POSIX_THREADS
+ fprintf(stderr, "Your Platform is not supported at the moment!\n");
+ exit(EXIT_FAILURE);
+#endif
+
/* initialisition */
ret = cligg_init_handler();
if(!ret)
exit(EXIT_FAILURE);
-#ifndef _POSIX_THREADS
- fprintf(stderr, "Your Platform is not supported at the moment!\n");
- exit(EXIT_FAILURE);
-#endif
+ /* init module system */
+ ret = cligg_init_modulehandler();
/* TODO load the config */
Modified: src/bin/cligg_mainloop.c
===================================================================
--- src/bin/cligg_mainloop.c 2007-05-14 21:47:41 UTC (rev 49)
+++ src/bin/cligg_mainloop.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -54,7 +54,8 @@
if(cb == NULL) continue;
- cb(new->data);
+ if(!cb(new->data))
+ fprintf(stderr, "Event callback failed!\n");
}
return (void *)EXIT_SUCCESS;
Added: src/bin/cligg_modulehandler.c
===================================================================
--- src/bin/cligg_modulehandler.c (rev 0)
+++ src/bin/cligg_modulehandler.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -0,0 +1,131 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pthread.h>
+#include <dlfcn.h>
+#include <cligg.h>
+#include <cligglib.h>
+#include <cligg_list.h>
+#include <cligg_module.h>
+#include <cligg_eventhandler.h>
+#include <cligg_modulehandler.h>
+
+static int cmp(void *a, void *b);
+static int module_reg_event_cb(void *data);
+static int module_unreg_event_cb(void *data);
+
+static pthread_mutex_t module_lock = PTHREAD_MUTEX_INITIALIZER;
+static cligg_list *module_list;
+
+int
+cligg_init_modulehandler(void)
+{
+ module_list = cligg_list_new(cligg_module_del);
+ if(module_list == NULL)
+ return FALSE;
+
+ if(!cligg_register_event("load_module", module_reg_event_cb)) {
+ free(module_list);
+ return FALSE;
+ }
+ if(!cligg_register_event("unload_module", module_unreg_event_cb)) {
+ free(module_list);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+int
+cligg_del_modulehandler(void)
+{
+ cligg_module *tmp;
+ while((tmp = cligg_list_element_get_first(module_list))) {
+ cligg_unregister_module(tmp);
+ }
+ cligg_list_del(module_list);
+
+ return TRUE;
+}
+
+int cligg_register_module(char *path)
+{
+ cligg_module *new = cligg_module_new(path);
+ if(new == NULL) {
+ perror("Error loading module");
+ return FALSE;
+ }
+
+ new->handle = dlopen(path, RTLD_LAZY);
+ if(!new->handle) {
+ fprintf(stderr, "Error loading module: %s\n", dlerror());
+ return FALSE;
+ }
+
+ if(pthread_mutex_lock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't obtain module lock!\n");
+ cligg_module_del(new);
+ return FALSE;
+ }
+
+ if(!cligg_list_element_append(module_list, new)) {
+ perror("Error loading module");
+ return FALSE;
+ }
+ if(pthread_mutex_unlock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't unlock module lock!\n");
+ cligg_module_del(new);
+ return FALSE;
+ }
+
+
+ dlerror(); /* clear any existing errors */
+ return TRUE;
+}
+
+int cligg_unregister_module(cligg_module *module)
+{
+ cligg_module *tmp;
+ int ret = TRUE;
+
+ if(pthread_mutex_lock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't obtain module lock!\n");
+ cligg_module_del(tmp);
+ return FALSE;
+ }
+
+ if(cligg_list_element_find(module_list, cmp, module) == -1) {
+ fprintf(stderr, "Couldn't delete module: Not found!\n");
+ ret = FALSE;
+ goto jump;
+ }
+
+ tmp = (cligg_module *)module_list->current->data;
+
+ dlclose(tmp->handle);
+
+ cligg_list_element_del_current(module_list);
+
+ if(pthread_mutex_unlock(&module_lock) != 0) {
+ fprintf(stderr, "Couldn't unlock module lock!\n");
+ cligg_module_del(tmp);
+ return FALSE;
+ }
+jump:
+ return ret;
+}
+
+static int cmp(void *a, void *b)
+{
+ return strcmp(((cligg_module *)a)->path, ((cligg_module *)b)->path);
+}
+
+static int module_reg_event_cb(void *data)
+{
+ return cligg_register_module((char *)data);
+}
+
+static int module_unreg_event_cb(void *data)
+{
+ return cligg_unregister_module((cligg_module *)data);
+}
Added: src/bin/cligg_modulehandler.h
===================================================================
--- src/bin/cligg_modulehandler.h (rev 0)
+++ src/bin/cligg_modulehandler.h 2007-05-15 20:58:37 UTC (rev 50)
@@ -0,0 +1,12 @@
+#ifndef CLIGG_MODULEHANDLER_H
+#define CLIGG_MODULEHANDLER_H
+
+#include <cligg_module.h>
+
+int cligg_init_modulehandler(void);
+int cligg_del_modulehandler(void);
+
+int cligg_register_module(char *);
+int cligg_unregister_module(cligg_module *);
+
+#endif
Modified: src/lib/cligg_event.c
===================================================================
--- src/lib/cligg_event.c 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_event.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -15,7 +15,7 @@
if(new->name == NULL)
return NULL;
- strcpy(name, new->name);
+ strcpy(new->name, name);
new->data = data;
@@ -41,7 +41,7 @@
if(new->name == NULL)
return NULL;
- strcpy(name, new->name);
+ strcpy(new->name, name);
new->event_cb = event_cb;
Modified: src/lib/cligg_event.h
===================================================================
--- src/lib/cligg_event.h 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_event.h 2007-05-15 20:58:37 UTC (rev 50)
@@ -14,7 +14,7 @@
*/
typedef struct cligg_event_data cligg_event_data;
typedef struct cligg_event_function cligg_event_function;
-typedef void* (*cligg_event_cb) (void* data);
+typedef int (*cligg_event_cb) (void* data);
struct cligg_event_data {
char *name; /**< Name */
Modified: src/lib/cligg_hashmap.h
===================================================================
--- src/lib/cligg_hashmap.h 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_hashmap.h 2007-05-15 20:58:37 UTC (rev 50)
@@ -8,18 +8,47 @@
typedef struct cligg_hashmap cligg_hashmap;
typedef struct cligg_hashmap_element cligg_hashmap_element;
+/**
+ * @brief
+ */
struct cligg_hashmap {
cligg_btree *map;
hash_func_cb hash_func;
};
+/**
+ * @brief
+ */
struct cligg_hashmap_element {
unsigned long hash;
void *data;
};
+/**
+ * @brief
+ *
+ * @param free_func_cb
+ * @param hash_func_cb
+ * @param int
+ *
+ * @return
+ */
CLIGG cligg_hashmap *cligg_hashmap_new(free_func_cb, hash_func_cb, int);
+/**
+ * @brief
+ *
+ * @param
+ *
+ * @return
+ */
CLIGG void cligg_hashmap_clear(cligg_hashmap *);
+/**
+ * @brief
+ *
+ * @param
+ *
+ * @return
+ */
CLIGG void cligg_hashmap_del(cligg_hashmap *);
CLIGG int cligg_hashmap_add_element(cligg_hashmap *, void *data);
Modified: src/lib/cligg_list.c
===================================================================
--- src/lib/cligg_list.c 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_list.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -55,6 +55,7 @@
}
free(list->last);
memset(list, 0, sizeof(cligg_list));
+ list->current = NULL;
}
/* delete the list */
@@ -115,10 +116,12 @@
}
new_element->data = data;
new_element->next = NULL;
+ new_element->prev = NULL;
/*append to list*/
if(list->last) {
list->last->next = new_element;
+ new_element->prev = list->last;
}
list->last = new_element;
@@ -145,6 +148,8 @@
return FALSE;
}
new_element->data = data;
+ new_element->next = NULL;
+ new_element->prev = NULL;
/* prepend to list */
new_element->next = list->first;
@@ -164,6 +169,7 @@
CLIGG int cligg_list_list_append(cligg_list *list1, cligg_list *list2)
{
list1->last->next = list2->first;
+ list2->first->prev = list1->last;
list1->last = list2->last;
return TRUE;
}
@@ -171,6 +177,7 @@
/* prepend another list */
CLIGG int cligg_list_list_prepend(cligg_list *list1, cligg_list *list2)
{
+ list1->first->prev = list2->last;
list2->last->next = list1->first;
list1->first = list2->first;
list2->last = list1->first;
@@ -189,12 +196,16 @@
if(list->first == NULL) {
return FALSE;
}
+
+ if(list->current == list->first)
+ list->current = NULL;
old = list->first;
if(list->free_func) {
list->free_func(old->data);
}
list->first = old->next;
+ list->first->prev = NULL;
free(old);
list->size--;
@@ -214,6 +225,9 @@
if(list->last == NULL) {
return FALSE;
}
+
+ if(list->current == list->last)
+ list->current = NULL;
old = list->last;
@@ -269,7 +283,11 @@
i++;
}
+ if(list->current == old)
+ list->current = NULL;
+
previous->next = old->next;
+ previous->next->prev = old->next->prev;
if(list->free_func) {
list->free_func(old->data);
}
@@ -278,6 +296,32 @@
return TRUE;
}
+CLIGG int cligg_list_element_del_current(cligg_list *list)
+{
+ cligg_list_element *tmp;
+
+ if(list->current == NULL)
+ return FALSE;
+
+ if(list->current == list->first)
+ return cligg_list_element_del_first(list);
+ if(list->current == list->last)
+ return cligg_list_element_del_last(list);
+
+ tmp = list->current;
+ list->current->next = list->current->next->next;
+ list->current = list->current->next;
+
+ if(list->free_func)
+ list->free_func(tmp->data);
+
+ tmp->prev->next = tmp->next;
+ tmp->next->prev = tmp->prev;
+
+ free(tmp);
+ return TRUE;
+}
+
/* get list element data*/
CLIGG void* cligg_list_element_get_first(cligg_list *list)
{
@@ -328,17 +372,22 @@
return -1;
}
- if(compare_func(list->last->data, data) == 0)
+ if(compare_func(list->last->data, data) == 0) {
+ list->current = list->last;
return list->size-1;
+ }
tmp = list->first;
while(tmp->next != list->last) {
- if(compare_func(tmp->data, data) == 0)
+ if(compare_func(tmp->data, data) == 0) {
+ list->current = tmp;
return i;
+ }
tmp = tmp->next;
i++;
}
+ list->current = NULL;
return -1;
}
Modified: src/lib/cligg_list.h
===================================================================
--- src/lib/cligg_list.h 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_list.h 2007-05-15 20:58:37 UTC (rev 50)
@@ -36,6 +36,7 @@
struct cligg_list {
cligg_list_element *first; /**< The first element in the list @sa cligg_list_element */
cligg_list_element *last; /**< The last element in the list @sa cligg_list_element */
+ cligg_list_element *current;
free_func_cb free_func; /**< Function pointer to a free function @sa cligg_list_new */
int size; /**< Size of the list */
};
@@ -45,6 +46,7 @@
*/
struct cligg_list_element {
cligg_list_element *next; /**< Pointer to the next element */
+ cligg_list_element *prev;
void *data; /**< Pointer to the data this element holds */
};
@@ -80,6 +82,7 @@
CLIGG int cligg_list_element_del_first(cligg_list *);
CLIGG int cligg_list_element_del_last(cligg_list *);
CLIGG int cligg_list_element_del_index(cligg_list *, int);
+CLIGG int cligg_list_element_del_current(cligg_list *);
/* get list element data*/
CLIGG void* cligg_list_element_get_first(cligg_list *);
Modified: src/lib/cligg_module.c
===================================================================
--- src/lib/cligg_module.c 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_module.c 2007-05-15 20:58:37 UTC (rev 50)
@@ -1,3 +1,30 @@
-#define BLUBB "MAEEH!!!"
+#include <stdlib.h>
+#include <string.h>
+#include <cligg_module.h>
-void blubb(){}
+cligg_module *
+cligg_module_new(char *path)
+{
+ cligg_module *new = (cligg_module *)malloc(sizeof(cligg_module));
+ if(new == NULL)
+ return NULL;
+
+ new->path = (char *)malloc(strlen(path)+1 * sizeof(char));
+ if(new->path == NULL) {
+ free(new);
+ return NULL;
+ }
+
+ new->path = strcpy(new->path, path);
+ new->handle = NULL;
+
+ return new;
+}
+
+void cligg_module_del(void *module)
+{
+ cligg_module *old = (cligg_module *)module;
+
+ free(old->path);
+ free(old);
+}
Modified: src/lib/cligg_module.h
===================================================================
--- src/lib/cligg_module.h 2007-05-14 21:47:41 UTC (rev 49)
+++ src/lib/cligg_module.h 2007-05-15 20:58:37 UTC (rev 50)
@@ -5,7 +5,7 @@
*/
#ifndef CLIGG_MODULE_H
-#define CLIGG_MODULE_C
+#define CLIGG_MODULE_H
/**
* @defgroup load_modules Official loadable modules for cligg
@@ -18,14 +18,24 @@
* @{
*/
+#ifndef CLIGG_MODULE
+# define CLIGG_MODULE
+# define cligg_module_init void __attribute__ ((constructor))
+# define cligg_module_finit void __attribute__ ((destructor))
+#endif
+
+
typedef struct cligg_module cligg_module;
/*this is likely to be changed soon */
struct cligg_module {
- char *name ;
- void *(*module_init)();
+ char *path;
+ void *handle;
};
+cligg_module *cligg_module_new(char *);
+void cligg_module_del(void *);
+
/** @} */
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|