From 1ed6335bc204334454cd2db2f94ad9dc14e40f44 Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Tue, 26 Nov 2019 14:53:34 +0700
Subject: [PATCH] [+] Added wrapping dap_client_stage_t

---
 include/wrapping_dap_client_stage.h | 84 +++++++++++++++++++++++++++++
 src/wrapping_dap_client_stage.c     | 37 +++++++++++++
 2 files changed, 121 insertions(+)
 create mode 100644 include/wrapping_dap_client_stage.h
 create mode 100644 src/wrapping_dap_client_stage.c

diff --git a/include/wrapping_dap_client_stage.h b/include/wrapping_dap_client_stage.h
new file mode 100644
index 00000000..bb3a9fe8
--- /dev/null
+++ b/include/wrapping_dap_client_stage.h
@@ -0,0 +1,84 @@
+#ifndef _WRAPPING_DAP_CLIENT_STAGE_
+#define _WRAPPING_DAP_CLIENT_STAGE_
+#include <Python.h>
+#include "dap_client.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+typedef struct PyDapClientStage{
+    PyObject_HEAD
+    dap_client_stage_t stage;
+}PyDapClientStageObject;
+
+PyObject *STAGE_BEGIN_PY();
+PyObject *STAGE_ENC_INIT_PY();
+PyObject *STAGE_STREAM_CTL_PY();
+PyObject *STAGE_STREAM_SESSION_PY();
+PyObject *STAGE_STREAM_CONNECTED_PY();
+PyObject *STAGE_STREAM_STREAMING_PY();
+PyObject *STAGE_STREAM_ABORT_PY();
+
+static PyMethodDef DapClientStageMethods[] = {
+        {"STAGE_BEGIN", (PyCFunction)STAGE_BEGIN_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_ENC_INIT", (PyCFunction)STAGE_ENC_INIT_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_STREAM_CTL", (PyCFunction)STAGE_STREAM_CTL_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_STREAM_SESSION", (PyCFunction)STAGE_STREAM_SESSION_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_STREAM_CONNECTED", (PyCFunction)STAGE_STREAM_CONNECTED_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_STREAM_STREAMING", (PyCFunction)STAGE_STREAM_STREAMING_PY, METH_NOARGS | METH_STATIC, ""},
+        {"STAGE_STREAM_ABORT",(PyCFunction) STAGE_STREAM_ABORT_PY, METH_NOARGS | METH_STATIC, ""},
+        {NULL, NULL, 0, NULL}
+};
+
+static PyTypeObject dapClientStageObject_dapClientStageType = {
+        PyVarObject_HEAD_INIT(NULL, 0)
+        "CellFrame.ClientStage",                                      /* tp_name */
+        sizeof(PyDapClientStageObject),                               /* tp_basicsize */
+        0,                                                            /* tp_itemsize */
+        0,                                                            /* tp_dealloc */
+        0,                                                            /* tp_print */
+        0,                                                            /* tp_getattr */
+        0,                                                            /* tp_setattr */
+        0,                                                            /* tp_reserved */
+        0,                                                            /* tp_repr */
+        0,                                                            /* tp_as_number */
+        0,                                                            /* tp_as_sequence */
+        0,                                                            /* tp_as_mapping */
+        0,                                                            /* tp_hash  */
+        0,                                                            /* tp_call */
+        0,                                                            /* tp_str */
+        0,                                                            /* tp_getattro */
+        0,                                                            /* tp_setattro */
+        0,                                                            /* tp_as_buffer */
+        Py_TPFLAGS_DEFAULT |
+        Py_TPFLAGS_BASETYPE,                                      /* tp_flags */
+        "Client stage objects",                                              /* tp_doc */
+        0,		                                                      /* tp_traverse */
+        0,		                                                      /* tp_clear */
+        0,		                                                      /* tp_richcompare */
+        0,		                                                      /* tp_weaklistoffset */
+        0,		                                                      /* tp_iter */
+        0,		                                                      /* tp_iternext */
+        DapClientStageMethods,                                              /* tp_methods */
+        0,                                                            /* tp_members */
+        0,                                                            /* tp_getset */
+        0,                                                            /* tp_base */
+        0,                                                            /* tp_dict */
+        0,                                                            /* tp_descr_get */
+        0,                                                            /* tp_descr_set */
+        0,                                                            /* tp_dictoffset */
+        0,                                                            /* tp_init */
+        0,                                                            /* tp_alloc */
+        PyType_GenericNew,                                            /* tp_new */
+
+};
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _WRAPPING_DAP_CLIENT_STAGE_
\ No newline at end of file
diff --git a/src/wrapping_dap_client_stage.c b/src/wrapping_dap_client_stage.c
new file mode 100644
index 00000000..25cc1966
--- /dev/null
+++ b/src/wrapping_dap_client_stage.c
@@ -0,0 +1,37 @@
+#include "wrapping_dap_client_stage.h"
+
+PyObject *STAGE_BEGIN_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_BEGIN;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_ENC_INIT_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_ENC_INIT;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_STREAM_CTL_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_STREAM_CTL;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_STREAM_SESSION_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_STREAM_SESSION;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_STREAM_CONNECTED_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_STREAM_CONNECTED;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_STREAM_STREAMING_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_STREAM_STREAMING;
+    return (PyObject *)obj_stage;
+}
+PyObject *STAGE_STREAM_ABORT_PY(){
+    PyDapClientStageObject *obj_stage = (PyDapClientStageObject*)_PyObject_New(&dapClientStageObject_dapClientStageType);
+    obj_stage->stage = STAGE_STREAM_ABORT;
+    return (PyObject *)obj_stage;
+}
\ No newline at end of file
-- 
GitLab