diff --git a/CellFrame/python-cellframe.c b/CellFrame/python-cellframe.c index 8cd6d5a97160c1a937caff18d2f1c335c71f0a49..3c1f33ce39a11d4d582010ebf874c224a74bfcdb 100644 --- a/CellFrame/python-cellframe.c +++ b/CellFrame/python-cellframe.c @@ -57,6 +57,8 @@ PyObject *python_cellframe_init(PyObject *self, PyObject *args){ s_init_ks = true; submodules_deint = false; + PyObject *events = NULL; + #ifdef _WIN32 setConsoleCtrlHandler((PHANDLER_ROUTINE)consoleHandler, TRUE); #else @@ -178,6 +180,16 @@ PyObject *python_cellframe_init(PyObject *self, PyObject *args){ return NULL; } dap_cert_init(); + } else if (strcmp(c_value, "Events") == 0){ + dap_events_init(0,0); + events = _PyObject_New(&dapEvents_dapEventsType); + ((PyDapEventsObject*)events)->t_events = dap_events_new(); + dap_events_start(((PyDapEventsObject*)events)->t_events); + } else if (strcmp(c_value, "Server") == 0){ + if(dap_server_init() != 0 ){ + PyErr_SetString(CellFrame_error, "Failed to initialize Server."); + return NULL; + } }else if (strcmp(c_value, "ServerCore") == 0){ PyObject* getServerCoreData = PyDict_GetItemString(result, "ServerCore"); if (getServerCoreData == NULL){ @@ -219,6 +231,11 @@ PyObject *python_cellframe_init(PyObject *self, PyObject *args){ return NULL; } s_init_http = true; + } else if (strcmp(c_value, "HttpSimple") == 0){ + if (dap_http_simple_module_init() != 0){ + PyErr_SetString(CellFrame_error, "Failed to initialize HttpSimple module. "); + return NULL; + } } else if (strcmp(c_value, "EncHttp") == 0){ if(enc_http_init() != 0){ PyErr_SetString(CellFrame_error, "Failed to initialize EncHttp module. "); @@ -295,12 +312,7 @@ PyObject *python_cellframe_init(PyObject *self, PyObject *args){ PyErr_SetString(CellFrame_error, "Failed to initialize ChainNetSrv module. "); return NULL; } - }else if (strcmp(c_value, "HttpSimple") == 0){ - if (dap_http_simple_module_init() != 0){ - PyErr_SetString(CellFrame_error, "Failed to initialize HttpSimple module. "); - return NULL; - } - } else if (strcmp(c_value, "StreamChChain") == 0){ + }else if (strcmp(c_value, "StreamChChain") == 0){ if (dap_stream_ch_chain_init() != 0 ){ PyErr_SetString(CellFrame_error, "Failed to initialize StreamChChain module. "); return NULL; @@ -347,7 +359,10 @@ PyObject *python_cellframe_init(PyObject *self, PyObject *args){ log_it(L_WARNING,"Unknown module \"%s\"", c_value); } } - return PyLong_FromLong(0); + if (events == NULL) + return PyLong_FromLong(0); + else + return Py_BuildValue("iO", PyLong_FromLong(0), events); } PyMODINIT_FUNC PyInit_libCellFrame(void){ diff --git a/dists/examples/0.Beginning/MyChains.py b/dists/examples/0.Beginning/MyChains.py index 4941f3f6dd31e629c0d8503e3a6b7ec2b5e100bc..62d1610db6d88d9cc51092d9021b983079f0d7a6 100755 --- a/dists/examples/0.Beginning/MyChains.py +++ b/dists/examples/0.Beginning/MyChains.py @@ -8,7 +8,7 @@ tmp_dir = os.getcwd() + "/tmp" var_dir = os.getcwd() + "/var" json_string = """{ - "modules": ["Crypto", "ServerCore", "Http", "HttpFolder", "GlobalDB", "Client", "HttpClientSimple", "Mempool", + "modules": ["Crypto", "Events", "Server", "Http", "HttpFolder", "GlobalDB", "Client", "HttpClientSimple", "Mempool", "Chain", "Wallet", "ChainCSDag", "ChainCSDagPoa", "ChainCSDagPos", "GDB", "Net", "AppCliServer", "ChainNetSrv", "EncHttp", "Stream", "StreamCtl", "HttpSimple", "StreamChChain", "StreamChChainNet", "StreamChChainNetSrv"], "DAP": { @@ -18,12 +18,9 @@ json_string = """{ "file_name_log": \""""+var_dir+"/log/"+app_name+".log"+"""\" }, "Stream" : { + "prefferd_encryption": "IAES", "DebugDumpStreamHeaders": false }, - "ServerCore" : { - "thread_cnt": 0, - "conn": 0 - }, "Configuration" : { "general": { "debug_mode": false, @@ -77,21 +74,22 @@ json_string = """{ } }""" -init(json_string) +rsi = init(json_string) +ev = rsi[1] setLogLevel(DEBUG) server_host_name = configGetItem("server", "listen_address") server_port = int(configGetItem("server", "listen_port_tcp")) -sr = ServerCore.listen(server_host_name, server_port, 0) +sr = ServerCore.listen(ev, server_host_name, server_port, 0) Http.new(sr, app_name) EncHttp.addProc(sr, "/enc_http") Stream.addProcHttp(sr, "/stream") StreamCtl.addProcHttp(sr, "/stream_ctl") -ev = Events() -ev.start() +#ev = Events() +#ev.start() logItNotice(app_name+" v0.1 runned on port "+str(server_port)) -rc = ServerCore.loop(sr) +rc = ev.wait() deinit()