Skip to content
Snippets Groups Projects
libdap-server-core-python.c 1.33 KiB
Newer Older
#include "libdap-server-core-python.h"

#define LOG_TAG "libdap-server-core-python"

int dap_server_core_init(uint32_t l_thread_cnt, size_t conn_t){
    int result = dap_server_init(l_thread_cnt);
    if ( result != 0 ) {
       log_it( L_CRITICAL, "Can't init socket server module" );
    dap_events_init(l_thread_cnt, conn_t);
    dap_client_remote_init();
    dap_client_remote_deinit();
    dap_server_deinit();
    dap_events_deinit();
}

PyObject *dap_server_core_loop(PyObject *self, PyObject *args){
    PyObject *obj_server;
    if (!PyArg_ParseTuple(args, "O", &obj_server)){
        return NULL;
    }
    int32_t result = dap_server_loop(((PyDapServerObject*)obj_server)->t_server);
    log_it( result ? L_CRITICAL : L_NOTICE, "Server loop stopped with return code %d", ((PyDapServerObject*)obj_server)->t_server );
PyObject *dap_server_core_listen(PyObject *self, PyObject *args){
    const char *addr;
    uint16_t port;
    uint16_t type;
    if (!PyArg_ParseTuple(args, "s|H|H", &addr, &port, &type)){
        return NULL;
    }
    if (type > 1)
        return  NULL;
    PyObject *obj = _PyObject_New(&dapServer_dapServerType);
    ((PyDapServerObject*)obj)->t_server = dap_server_listen(addr, port, type);
    return Py_BuildValue("O", obj);