MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / Module_HV

Method Module_HV

modules/dasHV/src/dasHV.cpp:1116–1446  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1114class Module_HV : public Module {
1115public:
1116 Module_HV() : Module("dashv") {
1117 // libhv defaults to file_logger (bin/libhv.YYYYMMDD.log). Invisible
1118 // under popen + CI runners. Two env-gated opt-outs:
1119 // DASLIVE_HV_LOG=stderr (or =1) → redirect libhv to stderr
1120 // DASLIVE_HV_LOG=stdout → redirect libhv to stdout
1121 // DASLIVE_HV_LOG=silent → disable libhv logging entirely
1122 // DASLIVE_HV_LOG_LEVEL=DEBUG/INFO/WARN/ERROR overrides the level.
1123 // Default unset → file_logger (unchanged).
1124 if (const char * route = std::getenv("DASLIVE_HV_LOG")) {
1125 if (!strcmp(route, "stderr") || !strcmp(route, "1")) {
1126 hlog_set_handler(stderr_logger);
1127 } else if (!strcmp(route, "stdout")) {
1128 hlog_set_handler(stdout_logger);
1129 } else if (!strcmp(route, "silent")) {
1130 hlog_disable();
1131 }
1132 }
1133 if (const char * lvl = std::getenv("DASLIVE_HV_LOG_LEVEL")) {
1134 hlog_set_level_by_str(lvl);
1135 }
1136
1137 ModuleLibrary lib;
1138 lib.addModule(this);
1139 lib.addBuiltInModule();
1140 lib.addModule(Module::require("rtti_core"));
1141 addEnumeration(new Enumeration_ws_opcode());
1142 addEnumeration(new Enumeration_ws_session_type());
1143 addEnumeration(new Enumeration_http_method());
1144 addEnumeration(new Enumeration_http_status());
1145 // client — handle-backed
1146 addHandleAnnotation<hv::WebSocketClient>(this, lib, "WebSocketClient",
1147 "destroy_web_socket_client", "das::Handle<hv::WebSocketClient>");
1148 addExtern<DAS_BIND_FUN(makeWebSocketClient)> (*this, lib, "make_web_socket_client",
1149 SideEffects::worstDefault, "makeWebSocketClient")
1150 ->args({"class","info","context"});
1151 addExtern<DAS_BIND_FUN(das_wsc_open)> (*this, lib, "open",
1152 SideEffects::worstDefault, "das_wsc_open")
1153 ->args({"self","url"});
1154 addExtern<DAS_BIND_FUN(das_wsc_send)> (*this, lib, "send",
1155 SideEffects::worstDefault, "das_wsc_send")
1156 ->args({"self","msg"});
1157 addExtern<DAS_BIND_FUN(das_wsc_send_buf)> (*this, lib, "send",
1158 SideEffects::worstDefault, "das_wsc_send_buf")
1159 ->args({"self","msg","len","opcode"});
1160 addExtern<DAS_BIND_FUN(das_wsc_close)>(*this, lib, "close",
1161 SideEffects::worstDefault, "das_wsc_close")
1162 ->args({"self"});
1163 addExtern<DAS_BIND_FUN(das_wsc_is_connected)>(*this, lib, "is_connected",
1164 SideEffects::worstDefault,"das_wsc_is_connected")
1165 ->args({"self"});
1166 addExtern<DAS_BIND_FUN(das_wsc_tick)>(*this, lib, "tick",
1167 SideEffects::worstDefault,"das_wsc_tick")
1168 ->args({"self"});
1169 // server — handle-backed
1170 addHandleAnnotation<hv::WebSocketServer>(this, lib, "WebSocketServer",
1171 "destroy_web_socket_server", "das::Handle<hv::WebSocketServer>");
1172 addHandleAnnotation<hv::WebSocketChannel>(this, lib, "WebSocketChannel",
1173 "", "das::Handle<hv::WebSocketChannel>");

Callers

nothing calls this directly

Calls 4

addBuiltInModuleMethod · 0.80
addModuleMethod · 0.45
argsMethod · 0.45
makeEnumTypeMethod · 0.45

Tested by

no test coverage detected