1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
{{#args}}
{{python_type}} {{name}}{{initialization}};
{{/args}}
{{#has_args}}
if (!PyArg_ParseTuple(args, {{tuple_format}}))
{
// TODO => RAISE : https://stackoverflow.com/questions/60832317
PyErr_SetString(PyExc_TypeError, "Bad types for the arguments ({{count_args}} arguments expected)");
return NULL;
}
{{/has_args}}
{{#return_long}}
long value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
return PyLong_FromLong(value);
{{/return_long}}
{{#return_static_string}}
const char* s = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
if (s == NULL)
{
Py_INCREF(Py_None);
return Py_None;
}
else
{
return PyUnicode_FromString(s);
}
{{/return_static_string}}
{{#return_dynamic_string}}
OrthancPlugins::OrthancString s;
s.Assign({{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}));
{{#args}}{{release}}{{/args}}
if (s.GetContent() == NULL)
{
// TODO => RAISE : https://stackoverflow.com/questions/60832317
//PythonLock::RaiseException(module, OrthancPluginErrorCode_InternalError);
PyErr_SetString(PyExc_ValueError, "Internal error");
return NULL;
}
else
{
return PyUnicode_FromString(s.GetContent());
}
{{/return_dynamic_string}}
{{#return_void}}
{{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
Py_INCREF(Py_None);
return Py_None;
{{/return_void}}
{{#return_error}}
OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
if (code == OrthancPluginErrorCode_Success)
{
Py_INCREF(Py_None);
return Py_None;
}
else
{
// TODO => RAISE : https://stackoverflow.com/questions/60832317
//PythonLock::RaiseException(module, code);
PyErr_SetString(PyExc_ValueError, "Internal error");
return NULL;
}
{{/return_error}}
{{#return_object}}
// This is the case of a constructor
{{return_object}}* obj = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
if (obj == NULL)
{
// TODO => RAISE : https://stackoverflow.com/questions/60832317
//PythonLock::RaiseException(module, OrthancPluginErrorCode_InternalError);
PyErr_SetString(PyExc_ValueError, "Internal error");
return NULL;
}
else
{
PyObject *argList = Py_BuildValue("Lb", obj, false /* not borrowed */);
PyObject *python = PyObject_CallObject((PyObject *) &sdk_{{return_object}}_Type, argList);
Py_DECREF(argList);
return python;
}
{{/return_object}}
{{#return_bytes}}
OrthancPlugins::MemoryBuffer buffer;
OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(), *buffer{{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
if (code == OrthancPluginErrorCode_Success)
{
return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize());
}
else
{
// TODO => RAISE : https://stackoverflow.com/questions/60832317
//PythonLock::RaiseException(module, OrthancPluginErrorCode_InternalError);
PyErr_SetString(PyExc_ValueError, "Internal error");
return NULL;
}
{{/return_bytes}}
{{#return_enumeration}}
{{return_enumeration}} value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}});
{{#args}}{{release}}{{/args}}
return PyLong_FromLong(value);
{{/return_enumeration}}
|