python/py_spoolss_forms.c

ソースコードを見る。

関数

PyObject * spoolss_hnd_addform (PyObject *self, PyObject *args, PyObject *kw)
PyObject * spoolss_hnd_getform (PyObject *self, PyObject *args, PyObject *kw)
PyObject * spoolss_hnd_setform (PyObject *self, PyObject *args, PyObject *kw)
PyObject * spoolss_hnd_deleteform (PyObject *self, PyObject *args, PyObject *kw)
PyObject * spoolss_hnd_enumforms (PyObject *self, PyObject *args, PyObject *kw)


関数

PyObject* spoolss_hnd_addform ( PyObject *  self,
PyObject *  args,
PyObject *  kw 
)

py_spoolss_forms.c25 行で定義されています。

参照先 spoolss_policy_hnd_object::cliform_name()get_level_value()init_unistr2()levelspoolss_policy_hnd_object::mem_ctx_form::namespoolss_policy_hnd_object::polpy_to_FORM()py_werror_tuple()rpccli_spoolss_addform()spoolss_errorspoolss_werrorUNI_STR_TERMINATEwerror.

00026 {
00027         spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
00028         WERROR werror;
00029         PyObject *info;
00030         FORM form;
00031         int level;
00032         static char *kwlist[] = {"form", NULL};
00033 
00034         /* Parse parameters */
00035         
00036         if (!PyArg_ParseTupleAndKeywords(
00037                     args, kw, "O!", kwlist, &PyDict_Type, &info))
00038                 return NULL;
00039         
00040         /* Call rpc function */
00041         
00042         if (!py_to_FORM(&form, info)) {
00043                 PyErr_SetString(spoolss_error, "invalid form");
00044                 return NULL;
00045         }
00046 
00047         if (!get_level_value(info, &level)) {
00048                 PyErr_SetString(spoolss_error, "invalid info level");
00049                 return NULL;
00050         }
00051 
00052         if (level != 1) {
00053                 PyErr_SetString(spoolss_error, "unsupported info level");
00054                 return NULL;
00055         }
00056         
00057         switch (level) {
00058         case 1: {
00059                 PyObject *obj = PyDict_GetItemString(info, "name");
00060                 char *form_name = PyString_AsString(obj);
00061 
00062                 init_unistr2(&form.name, form_name, UNI_STR_TERMINATE);
00063                 break;
00064         }
00065         default:
00066                 PyErr_SetString(spoolss_error, "unsupported info level");
00067                 return NULL;
00068         }
00069                 
00070         werror = rpccli_spoolss_addform(hnd->cli, hnd->mem_ctx, &hnd->pol,
00071                                         level, &form);
00072 
00073 
00074         if (!W_ERROR_IS_OK(werror)) {
00075                 PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
00076                 return NULL;
00077         }
00078 
00079         Py_INCREF(Py_None);
00080         return Py_None;
00081 }

PyObject* spoolss_hnd_getform ( PyObject *  self,
PyObject *  args,
PyObject *  kw 
)

py_spoolss_forms.c85 行で定義されています。

参照先 spoolss_policy_hnd_object::cliform_name()levelspoolss_policy_hnd_object::mem_ctxspoolss_policy_hnd_object::polpy_from_FORM_1()py_werror_tuple()resultrpccli_spoolss_getform()spoolss_werrorwerror.

00086 {
00087         spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
00088         WERROR werror;
00089         PyObject *result;
00090         char *form_name;
00091         int level = 1;
00092         static char *kwlist[] = {"form_name", "level", NULL};
00093         FORM_1 form;
00094 
00095         /* Parse parameters */
00096 
00097         if (!PyArg_ParseTupleAndKeywords(
00098                     args, kw, "s|i", kwlist, &form_name, &level))
00099                 return NULL;
00100         
00101         /* Call rpc function */
00102 
00103         werror = rpccli_spoolss_getform(
00104                 hnd->cli, hnd->mem_ctx, &hnd->pol, form_name, level, &form);
00105 
00106         if (!W_ERROR_IS_OK(werror)) {
00107                 PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
00108                 return NULL;
00109         }
00110 
00111         result = Py_None;
00112 
00113         switch(level) {
00114         case 1:
00115                 py_from_FORM_1(&result, &form);
00116                 break;
00117         }
00118 
00119         Py_INCREF(result);
00120         return result;
00121 }

PyObject* spoolss_hnd_setform ( PyObject *  self,
PyObject *  args,
PyObject *  kw 
)

py_spoolss_forms.c125 行で定義されています。

参照先 spoolss_policy_hnd_object::cliform_name()get_level_value()levelspoolss_policy_hnd_object::mem_ctxspoolss_policy_hnd_object::polpy_to_FORM()py_werror_tuple()rpccli_spoolss_setform()spoolss_errorspoolss_werrorwerror.

00126 {
00127         spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
00128         WERROR werror;
00129         PyObject *info, *form_name;
00130         int level;
00131         static char *kwlist[] = { "form", NULL};
00132         FORM form;
00133 
00134         /* Parse parameters */
00135 
00136         if (!PyArg_ParseTupleAndKeywords(
00137                     args, kw, "O!", kwlist, &PyDict_Type, &info))
00138                 return NULL;
00139 
00140         if (!get_level_value(info, &level)) {
00141                 PyErr_SetString(spoolss_error, "invalid info level");
00142                 return NULL;
00143         }
00144 
00145         if (level != 1) {
00146                 PyErr_SetString(spoolss_error, "unsupported info level");
00147                 return NULL;
00148         }
00149 
00150         /* Call rpc function */
00151 
00152         if (!py_to_FORM(&form, info)) {
00153                 PyErr_SetString(spoolss_error, "invalid form");
00154                 return NULL;
00155         }
00156 
00157         form_name = PyDict_GetItemString(info, "name");
00158 
00159         werror = rpccli_spoolss_setform(
00160                 hnd->cli, hnd->mem_ctx, &hnd->pol, level, 
00161                 PyString_AsString(form_name), &form);
00162 
00163         if (!W_ERROR_IS_OK(werror)) {
00164                 PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
00165                 return NULL;
00166         }
00167 
00168         Py_INCREF(Py_None);
00169         return Py_None;
00170 }

PyObject* spoolss_hnd_deleteform ( PyObject *  self,
PyObject *  args,
PyObject *  kw 
)

py_spoolss_forms.c174 行で定義されています。

参照先 spoolss_policy_hnd_object::cliform_name()spoolss_policy_hnd_object::mem_ctxspoolss_policy_hnd_object::polpy_werror_tuple()rpccli_spoolss_deleteform()spoolss_werrorwerror.

00175 {
00176         spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
00177         WERROR werror;
00178         static char *kwlist[] = {"form_name", NULL};
00179         char *form_name;
00180 
00181         /* Parse parameters */
00182         
00183         if (!PyArg_ParseTupleAndKeywords(
00184                     args, kw, "s", kwlist, &form_name))
00185                 return NULL;
00186         
00187         /* Call rpc function */
00188 
00189         werror = rpccli_spoolss_deleteform(
00190                 hnd->cli, hnd->mem_ctx, &hnd->pol, form_name);
00191 
00192         if (!W_ERROR_IS_OK(werror)) {
00193                 PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
00194                 return NULL;
00195         }
00196 
00197         Py_INCREF(Py_None);
00198         return Py_None;
00199 }

PyObject* spoolss_hnd_enumforms ( PyObject *  self,
PyObject *  args,
PyObject *  kw 
)

py_spoolss_forms.c203 行で定義されています。

参照先 spoolss_policy_hnd_object::clilevelspoolss_policy_hnd_object::mem_ctxnamespoolss_policy_hnd_object::polpy_from_FORM_1()py_werror_tuple()resultrpccli_spoolss_enumforms()rpcstr_pull()spoolss_errorspoolss_werrorwerror.

00204 {
00205         PyObject *result;
00206         spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
00207         WERROR werror;
00208         uint32 level = 1, num_forms, i;
00209         static char *kwlist[] = {"level", NULL};
00210         FORM_1 *forms;
00211 
00212         /* Parse parameters */
00213         
00214         if (!PyArg_ParseTupleAndKeywords(
00215                     args, kw, "|i", kwlist, &level))
00216                 return NULL;
00217         
00218         /* Call rpc function */
00219 
00220         werror = rpccli_spoolss_enumforms(
00221                 hnd->cli, hnd->mem_ctx, &hnd->pol, level, &num_forms, &forms);
00222 
00223         if (!W_ERROR_IS_OK(werror)) {
00224                 PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
00225                 return NULL;
00226         }
00227 
00228         switch(level) {
00229         case 1:
00230                 result = PyDict_New();
00231 
00232                 for (i = 0; i < num_forms; i++) {
00233                         PyObject *value;
00234                         fstring name;
00235 
00236                         rpcstr_pull(name, forms[i].name.buffer,
00237                                     sizeof(fstring), -1, STR_TERMINATE);
00238 
00239                         py_from_FORM_1(&value, &forms[i]);
00240 
00241                         PyDict_SetItemString(
00242                                 value, "level", PyInt_FromLong(1));
00243 
00244                         PyDict_SetItemString(result, name, value);
00245                 }
00246 
00247                 break;
00248         default:
00249                 PyErr_SetString(spoolss_error, "unknown info level");
00250                 return NULL;
00251         }
00252 
00253         return result;
00254 }


Sambaに対してSat Aug 29 21:24:05 2009に生成されました。  doxygen 1.4.7