Show
Ignore:
Timestamp:
06/22/09 22:56:45 (1 year ago)
Author:
piotras
Message:

Added midgard_view and derived classes. Fixes #1008

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midgard/apis/python/Makefile.am

    r22653 r22654  
    2626        py_midgard_transaction.c \ 
    2727        py_midgard_user.c \ 
     28        py_midgard_view.c \ 
    2829        py_midgard.h \ 
    2930        midgard.py 
  • trunk/midgard/apis/python/midgardmodule.c

    r22653 r22654  
    103103 
    104104        py_midgard_object_register_class(d, &PyGObject_Type); 
     105} 
     106 
     107static void 
     108py_midgard_register_view_classes(PyObject *d) 
     109{ 
     110        PyObject *module; 
     111                 
     112        if ((module = PyImport_ImportModule("gobject")) != NULL) { 
     113                 
     114                _MPyGObject_Type = (PyTypeObject *)PyObject_GetAttrString(module, "GObject"); 
     115                 
     116                if (_MPyGObject_Type == NULL) { 
     117                         
     118                        PyErr_SetString(PyExc_ImportError, 
     119                                        "cannot import name GObject from gobject"); 
     120                        return ; 
     121                } 
     122         
     123        } else { 
     124                 
     125                PyErr_SetString(PyExc_ImportError, "could not import gobject"); 
     126                 
     127                return ; 
     128        } 
     129 
     130        py_midgard_view_register_class(d, &PyGObject_Type); 
    105131} 
    106132 
     
    191217init_midgard(void) 
    192218{ 
    193         PyObject *m, *d, *tuple, *o, *sm, *dm
     219        PyObject *m, *d, *tuple, *o, *sm, *dm, *vm
    194220 
    195221        /* initialise pygobject */ 
     
    250276        py_midgard_register_schema_classes(sd); 
    251277         
     278        /* Mgdschema view module */ 
     279        vm = Py_InitModule("__view__", NULL); 
     280        if(!vm)  
     281                g_warning("Failed to initialize mgdschema view module"); 
     282        PyObject *vd = PyModule_GetDict(vm); 
     283        PyModule_AddObject(m, "view", vm); 
     284        py_midgard_register_view_classes(vd); 
     285 
    252286        /* Globals */ 
    253287 
  • trunk/midgard/apis/python/py_midgard.h

    r22653 r22654  
    4848extern void py_midgard_transaction_register_class(PyObject *d, gpointer pygobject_type); 
    4949extern void py_midgard_storage_register_class(PyObject *d, gpointer pygobject_type); 
     50extern void py_midgard_view_register_class(PyObject *d, gpointer pygobject_type); 
    5051 
    5152/* PARAMETERS */