[Uludag-commits] r16297 - in branches/comar-dbus/comar: include src

uludag-commits at pardus.org.tr uludag-commits at pardus.org.tr
11 Ara 2007 Sal 19:27:15 EET


Author: bahadir.kandemir
Date: Tue Dec 11 19:27:15 2007
New Revision: 16297

Modified:
   branches/comar-dbus/comar/include/dbus.h
   branches/comar-dbus/comar/include/utility.h
   branches/comar-dbus/comar/src/csl.c
   branches/comar-dbus/comar/src/dbus.c
   branches/comar-dbus/comar/src/utility.c
Log:
* comar.{remove,listAppModels} raises exceptions if application doesn't exist.
* str methods accept const char* arguments instead of char*

Modified: branches/comar-dbus/comar/include/dbus.h
=================================================================
--- branches/comar-dbus/comar/include/dbus.h	(original)
+++ branches/comar-dbus/comar/include/dbus.h	Tue Dec 11 19:27:15 2007
@@ -11,7 +11,7 @@
 #include <Python.h>
 
 void dbus_send(DBusMessage *reply);
-void dbus_signal(char *path, char *interface, char *name, PyObject *obj);
+void dbus_signal(const char *path, const char *interface, const char *name, PyObject *obj);
 void dbus_method_call(DBusMessage* msg, DBusConnection* conn);
 void dbus_listen();
 void dbus_app_methods(const char *interface, const char *path, const char *method);

Modified: branches/comar-dbus/comar/include/utility.h
=================================================================
--- branches/comar-dbus/comar/include/utility.h	(original)
+++ branches/comar-dbus/comar/include/utility.h	Tue Dec 11 19:27:15 2007
@@ -9,8 +9,8 @@
 
 #include <sys/time.h>
 
-char *strsub(char *str, int start, int end);
-char *strrep(char *str, char old, char new);
+char *strsub(const char *str, int start, int end);
+char *strrep(const char *str, char old, char new);
 
 int check_file(const char *fname);
 unsigned char *load_file(const char *fname, int *sizeptr);

Modified: branches/comar-dbus/comar/src/csl.c
=================================================================
--- branches/comar-dbus/comar/src/csl.c	(original)
+++ branches/comar-dbus/comar/src/csl.c	Tue Dec 11 19:27:15 2007
@@ -21,8 +21,8 @@
 static PyObject *
 c_script(PyObject *self, PyObject *args)
 {
-    char *path = dbus_message_get_path(my_proc.bus_msg);
-    char *app = strsub(path, strlen("/package/"), 0);
+    const char *path = dbus_message_get_path(my_proc.bus_msg);
+    const char *app = strsub(path, strlen("/package/"), 0);
     return PyString_FromString(app);
 }
 
@@ -81,7 +81,7 @@
 c_notify(PyObject *self, PyObject *args)
 {
     PyObject *item, *tuple, *result;
-    char *interface, *path, *method, *msg;
+    const char *interface, *path, *method, *msg;
 
     if (!PyArg_ParseTuple(args, "ss", &method, &msg))
         return NULL;

Modified: branches/comar-dbus/comar/src/dbus.c
=================================================================
--- branches/comar-dbus/comar/src/dbus.c	(original)
+++ branches/comar-dbus/comar/src/dbus.c	Tue Dec 11 19:27:15 2007
@@ -36,7 +36,7 @@
 }
 
 void
-dbus_signal(char *path, char *interface, char *name, PyObject *obj)
+dbus_signal(const char *path, const char *interface, const char *name, PyObject *obj)
 {
     DBusMessage *msg;
     DBusMessageIter iter;
@@ -123,7 +123,7 @@
 }
 
 static void
-dbus_introspection(const char *path)
+dbus_introspection_methods(const char *path)
 {
     char *intros, *app;
 
@@ -183,15 +183,22 @@
         Py_Finalize();
     }
     else if (strcmp(method, "listApplicationModels") == 0) {
+        Py_Initialize();
         args = dbus_py_import(my_proc.bus_msg);
         app = PyString_AsString(PyList_GetItem(args, 0));
         db_get_models(app, &models);
-        Py_Initialize();
-        result = py_str_split(models, '|');
-        dbus_reply_object(result);
+        if (models == NULL) {
+            log_error("No such application: '%s'\n", app);
+            dbus_reply_error("No such application");
+        }
+        else {
+            result = py_str_split(models, '|');
+            dbus_reply_object(result);
+        }
         Py_Finalize();
     }
     else if (strcmp(method, "register") == 0) {
+        Py_Initialize();
         args = dbus_py_import(my_proc.bus_msg);
         app = PyString_AsString(PyList_GetItem(args, 0));
         model = PyString_AsString(PyList_GetItem(args, 1));
@@ -202,7 +209,6 @@
             dbus_reply_error("No such model.");
         }
         else {
-            Py_Initialize();
             if (py_compile(script) != 0) {
                 log_error("Not a valid Python script: '%s'\n", script);
                 dbus_reply_error("Not a valid Python script.");
@@ -213,23 +219,29 @@
                 db_register_model(app, model);
                 dbus_reply_object(Py_True);
             }
-            Py_Finalize();
         }
+        Py_Finalize();
     }
     else if (strcmp(method, "remove") == 0) {
+        Py_Initialize();
         args = dbus_py_import(my_proc.bus_msg);
         app = PyString_AsString(PyList_GetItem(args, 0));
         db_get_models(app, &models);
 
-        db_remove_app(app);
+        if (models == NULL) {
+            log_error("No such application: '%s'\n", app);
+            dbus_reply_error("No such application");
+        }
+        else {
+            db_remove_app(app);
 
-        Py_Initialize();
-        list = py_str_split(models, '|');
-        for (i = 0; i < PyList_Size(list); i++) {
-            script = get_script_path(app, PyString_AsString(PyList_GetItem(list, i)));
-            unlink(script);
+            list = py_str_split(models, '|');
+            for (i = 0; i < PyList_Size(list); i++) {
+                script = get_script_path(app, PyString_AsString(PyList_GetItem(list, i)));
+                unlink(script);
+            }
+            dbus_reply_object(Py_True);
         }
-        dbus_reply_object(Py_True);
         Py_Finalize();
     }
     else {
@@ -291,7 +303,7 @@
     gettimeofday(&time_start, NULL);
 
     if (strcmp(interface, "org.freedesktop.DBus.Introspectable") == 0) {
-        dbus_introspection(path);
+        dbus_introspection_methods(path);
     }
     else if (strncmp(interface, cfg_bus_name, strlen(cfg_bus_name)) == 0) {
         if (strcmp(path, "/system") == 0 && strcmp(interface, cfg_bus_name) == 0) {

Modified: branches/comar-dbus/comar/src/utility.c
=================================================================
--- branches/comar-dbus/comar/src/utility.c	(original)
+++ branches/comar-dbus/comar/src/utility.c	Tue Dec 11 19:27:15 2007
@@ -21,7 +21,7 @@
 const char *valid_model_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.";
 
 char *
-strsub(char *str, int start, int end)
+strsub(const char *str, int start, int end)
 {
     if (start < 0) {
         start = strlen(str) + start;
@@ -41,7 +41,7 @@
 
     char *new_src, *t;
     new_src = malloc(end - start + 2);
-    for (t = str + start; t < str + end; t++) {
+    for (t = (char *) str + start; t < str + end; t++) {
         new_src[t - (str + start)] = *t;
     }
     new_src[t - (str + start)] = '\0';
@@ -49,7 +49,7 @@
 }
 
 char *
-strrep(char *str, char old, char new)
+strrep(const char *str, char old, char new)
 {
     char *new_str, *t;
 


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi