Mercurial > hg > orthanc-python
annotate CodeAnalysis/FunctionBody.mustache @ 181:faaa3fec799a java-code-model
refactoring using FunctionDocumentation.mustache
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 02 Jul 2024 13:26:33 +0200 |
parents | f49864df6f1f |
children | f34f3a149c22 |
rev | line source |
---|---|
0 | 1 {{#args}} |
2 {{python_type}} {{name}}{{initialization}}; | |
3 {{/args}} | |
4 | |
5 {{#has_args}} | |
6 if (!PyArg_ParseTuple(args, {{tuple_format}})) | |
7 { | |
8 PyErr_SetString(PyExc_TypeError, "Bad types for the arguments ({{count_args}} arguments expected)"); | |
9 return NULL; | |
10 } | |
11 {{/has_args}} | |
172
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
12 {{#args}}{{#check_object_type}} |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
13 if ({{name}} != Py_None && Py_TYPE({{name}}) != Get{{check_object_type}}Type()) |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
14 { |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
15 PyErr_SetString(PyExc_TypeError, "Invalid orthanc.{{check_object_type}} object"); |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
16 return NULL; |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
17 } |
8382c7dea471
created CodeAnalysis/GenerateOrthancSDK.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
77
diff
changeset
|
18 {{/check_object_type}}{{/args}} |
0 | 19 {{#return_long}} |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
20 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 21 long value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
22 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 23 {{#args}}{{release}}{{/args}} |
24 return PyLong_FromLong(value); | |
25 {{/return_long}} | |
26 {{#return_static_string}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
27 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 28 const char* s = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
29 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 30 {{#args}}{{release}}{{/args}} |
31 if (s == NULL) | |
32 { | |
33 Py_INCREF(Py_None); | |
34 return Py_None; | |
35 } | |
36 else | |
37 { | |
38 return PyUnicode_FromString(s); | |
39 } | |
40 {{/return_static_string}} | |
41 {{#return_dynamic_string}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
42 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 43 OrthancPlugins::OrthancString s; |
44 s.Assign({{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}})); | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
45 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 46 {{#args}}{{release}}{{/args}} |
47 if (s.GetContent() == NULL) | |
48 { | |
75
cbfc72a53970
refactoring calls to PythonLock::RaiseException()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
49 PythonLock::RaiseException(OrthancPluginErrorCode_InternalError); |
0 | 50 return NULL; |
51 } | |
52 else | |
53 { | |
54 return PyUnicode_FromString(s.GetContent()); | |
55 } | |
56 {{/return_dynamic_string}} | |
57 {{#return_void}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
58 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 59 {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
60 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 61 {{#args}}{{release}}{{/args}} |
62 | |
63 Py_INCREF(Py_None); | |
64 return Py_None; | |
65 {{/return_void}} | |
66 {{#return_error}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
67 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 68 OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
69 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 70 {{#args}}{{release}}{{/args}} |
71 | |
72 if (code == OrthancPluginErrorCode_Success) | |
73 { | |
74 Py_INCREF(Py_None); | |
75 return Py_None; | |
76 } | |
77 else | |
78 { | |
75
cbfc72a53970
refactoring calls to PythonLock::RaiseException()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
79 PythonLock::RaiseException(code); |
0 | 80 return NULL; |
81 } | |
82 {{/return_error}} | |
83 {{#return_object}} | |
84 // This is the case of a constructor | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
85 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 86 {{return_object}}* obj = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
87 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 88 {{#args}}{{release}}{{/args}} |
89 if (obj == NULL) | |
90 { | |
75
cbfc72a53970
refactoring calls to PythonLock::RaiseException()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
91 PythonLock::RaiseException(OrthancPluginErrorCode_InternalError); |
0 | 92 return NULL; |
93 } | |
94 else | |
95 { | |
96 PyObject *argList = Py_BuildValue("Lb", obj, false /* not borrowed */); | |
97 PyObject *python = PyObject_CallObject((PyObject *) &sdk_{{return_object}}_Type, argList); | |
98 Py_DECREF(argList); | |
99 return python; | |
100 } | |
101 {{/return_object}} | |
102 {{#return_bytes}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
103 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 104 OrthancPlugins::MemoryBuffer buffer; |
105 OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(), *buffer{{self}}{{call_args}}); | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
106 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 107 {{#args}}{{release}}{{/args}} |
108 if (code == OrthancPluginErrorCode_Success) | |
109 { | |
110 return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize()); | |
111 } | |
112 else | |
113 { | |
77
e7ff5efb100d
Custom exception "orthanc.OrthancException" is raised instead of "ValueError"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
75
diff
changeset
|
114 PythonLock::RaiseException(code); |
0 | 115 return NULL; |
116 } | |
117 {{/return_bytes}} | |
118 {{#return_enumeration}} | |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
119 {{#allow_threads}}PyThreadState *_save = PyEval_SaveThread();{{/allow_threads}} |
0 | 120 {{return_enumeration}} value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); |
179
f49864df6f1f
trying Py_BEGIN_ALLOW_THREADS
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
121 {{#allow_threads}}PyEval_RestoreThread(_save);{{/allow_threads}} |
0 | 122 {{#args}}{{release}}{{/args}} |
123 return PyLong_FromLong(value); | |
124 {{/return_enumeration}} |