Back to index

lightning-sunbird  0.9+nobinonly
Functions
PyIComponentManagerObsolete.cpp File Reference
#include "PyXPCOM_std.h"

Go to the source code of this file.

Functions

static
nsIComponentManagerObsolete
GetI (PyObject *self)
static PyObject * PyCreateInstanceByContractID (PyObject *self, PyObject *args)
static PyObject * PyContractIDToClassID (PyObject *self, PyObject *args)
static PyObject * PyCLSIDToContractID (PyObject *self, PyObject *args)
static PyObject * PyEnumerateCLSIDs (PyObject *self, PyObject *args)
static PyObject * PyEnumerateContractIDs (PyObject *self, PyObject *args)

Function Documentation

static nsIComponentManagerObsolete* GetI ( PyObject *  self) [static]

Definition at line 50 of file PyIComponentManagerObsolete.cpp.

                                                         {
       static const nsIID iid = NS_GET_IID(nsIComponentManagerObsolete);

       if (!Py_nsISupports::Check(self, iid)) {
              PyErr_SetString(PyExc_TypeError, "This object is not the correct interface");
              return NULL;
       }
       return (nsIComponentManagerObsolete *)Py_nsISupports::GetI(self);
}

Here is the call graph for this function:

Here is the caller graph for this function:

static PyObject* PyCLSIDToContractID ( PyObject *  self,
PyObject *  args 
) [static]

Definition at line 113 of file PyIComponentManagerObsolete.cpp.

{
       PyObject *obIID;
       if (!PyArg_ParseTuple(args, "O", &obIID))
              return NULL;

       nsIID iid;
       if (!Py_nsIID::IIDFromPyObject(obIID, &iid))
              return NULL;
       char *ret_pid = nsnull;
       char *ret_class = nsnull;
       nsIComponentManagerObsolete *pI = GetI(self);
       if (pI==NULL)
              return NULL;

       nsresult r;
       Py_BEGIN_ALLOW_THREADS;
       r = pI->CLSIDToContractID(iid, &ret_class, &ret_pid);
       Py_END_ALLOW_THREADS;
       if ( NS_FAILED(r) )
              return PyXPCOM_BuildPyException(r);

       PyObject *ob_pid = PyString_FromString(ret_pid);
       PyObject *ob_class = PyString_FromString(ret_class);
       PyObject *ret = Py_BuildValue("OO", ob_pid, ob_class);
       nsMemory::Free(ret_pid);
       nsMemory::Free(ret_class);
       Py_XDECREF(ob_pid);
       Py_XDECREF(ob_class);
       return ret;
}

Here is the call graph for this function:

static PyObject* PyContractIDToClassID ( PyObject *  self,
PyObject *  args 
) [static]

Definition at line 93 of file PyIComponentManagerObsolete.cpp.

{
       char *pid;
       if (!PyArg_ParseTuple(args, "s", &pid))
              return NULL;
       nsIComponentManagerObsolete *pI = GetI(self);
       if (pI==NULL)
              return NULL;

       nsIID  iid;
       nsresult r;
       Py_BEGIN_ALLOW_THREADS;
       r = pI->ContractIDToClassID(pid, &iid);
       Py_END_ALLOW_THREADS;
       if ( NS_FAILED(r) )
              return PyXPCOM_BuildPyException(r);

       return Py_nsIID::PyObjectFromIID(iid);
}

Here is the call graph for this function:

static PyObject* PyCreateInstanceByContractID ( PyObject *  self,
PyObject *  args 
) [static]

Definition at line 60 of file PyIComponentManagerObsolete.cpp.

{
       char *pid, *notyet = NULL;
       PyObject *obIID = NULL;
       if (!PyArg_ParseTuple(args, "s|zO", &pid, &notyet, &obIID))
              return NULL;
       if (notyet != NULL) {
              PyErr_SetString(PyExc_ValueError, "2nd arg must be none");
              return NULL;
       }
       nsIComponentManagerObsolete *pI = GetI(self);
       if (pI==NULL)
              return NULL;

       nsIID  iid;
       if (obIID==NULL)
              iid = NS_GET_IID(nsISupports);
       else
              if (!Py_nsIID::IIDFromPyObject(obIID, &iid))
                     return NULL;

       nsISupports *pis;
       nsresult r;
       Py_BEGIN_ALLOW_THREADS;
       r = pI->CreateInstanceByContractID(pid, NULL, iid, (void **)&pis);
       Py_END_ALLOW_THREADS;
       if ( NS_FAILED(r) )
              return PyXPCOM_BuildPyException(r);

       /* Return a type based on the IID (with no extra ref) */
       return Py_nsISupports::PyObjectFromInterface(pis, iid, PR_FALSE, PR_FALSE);
}

Here is the call graph for this function:

static PyObject* PyEnumerateCLSIDs ( PyObject *  self,
PyObject *  args 
) [static]

Definition at line 145 of file PyIComponentManagerObsolete.cpp.

{
       if (!PyArg_ParseTuple(args, ""))
              return NULL;

       nsIComponentManagerObsolete *pI = GetI(self);
       if (pI==NULL)
              return NULL;

       nsIEnumerator *pRet;
       nsresult r;
       Py_BEGIN_ALLOW_THREADS;
       r = pI->EnumerateCLSIDs(&pRet);
       Py_END_ALLOW_THREADS;
       if ( NS_FAILED(r) )
              return PyXPCOM_BuildPyException(r);

       return Py_nsISupports::PyObjectFromInterface(pRet, NS_GET_IID(nsIEnumerator), PR_FALSE);
}

Here is the call graph for this function:

static PyObject* PyEnumerateContractIDs ( PyObject *  self,
PyObject *  args 
) [static]

Definition at line 165 of file PyIComponentManagerObsolete.cpp.

{
       if (!PyArg_ParseTuple(args, ""))
              return NULL;

       nsIComponentManagerObsolete *pI = GetI(self);
       if (pI==NULL)
              return NULL;

       nsIEnumerator *pRet;
       nsresult r;
       Py_BEGIN_ALLOW_THREADS;
       r = pI->EnumerateContractIDs(&pRet);
       Py_END_ALLOW_THREADS;
       if ( NS_FAILED(r) )
              return PyXPCOM_BuildPyException(r);

       return Py_nsISupports::PyObjectFromInterface(pRet, NS_GET_IID(nsIEnumerator), PR_FALSE);
}

Here is the call graph for this function: