@lpc-lang/core 1.1.2-5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +255 -0
- package/bin/lpc +4 -0
- package/bin/lpcserver +4 -0
- package/cancellationToken/cancellationToken.d.ts +8 -0
- package/cancellationToken/cancellationToken.d.ts.map +1 -0
- package/cancellationToken/serverCancellationToken.d.ts +21 -0
- package/cancellationToken/serverCancellationToken.d.ts.map +1 -0
- package/cli/_namespaces/lpc.d.ts +2 -0
- package/cli/_namespaces/lpc.d.ts.map +1 -0
- package/cli/lpc.d.ts +2 -0
- package/cli/lpc.d.ts.map +1 -0
- package/compiler/LpcConfig.d.ts +17 -0
- package/compiler/LpcConfig.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.d.ts +49 -0
- package/compiler/_namespaces/lpc.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts +2 -0
- package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.performance.d.ts +2 -0
- package/compiler/_namespaces/lpc.performance.d.ts.map +1 -0
- package/compiler/binder.d.ts +2 -0
- package/compiler/binder.d.ts.map +1 -0
- package/compiler/builderPublic.d.ts +76 -0
- package/compiler/builderPublic.d.ts.map +1 -0
- package/compiler/checker.d.ts +2 -0
- package/compiler/checker.d.ts.map +1 -0
- package/compiler/commandLineParser.d.ts +47 -0
- package/compiler/commandLineParser.d.ts.map +1 -0
- package/compiler/core.d.ts +3 -0
- package/compiler/core.d.ts.map +1 -0
- package/compiler/corePublic.d.ts +19 -0
- package/compiler/corePublic.d.ts.map +1 -0
- package/compiler/debug.d.ts +71 -0
- package/compiler/debug.d.ts.map +1 -0
- package/compiler/diagnosticInformation.d.ts +518 -0
- package/compiler/diagnosticInformation.d.ts.map +1 -0
- package/compiler/emitter.d.ts +11 -0
- package/compiler/emitter.d.ts.map +1 -0
- package/compiler/executeCommandLine.d.ts +15 -0
- package/compiler/executeCommandLine.d.ts.map +1 -0
- package/compiler/expressionToTypeNode.d.ts +2 -0
- package/compiler/expressionToTypeNode.d.ts.map +1 -0
- package/compiler/factory/baseNodeFactory.d.ts +2 -0
- package/compiler/factory/baseNodeFactory.d.ts.map +1 -0
- package/compiler/factory/emitHelper.d.ts +2 -0
- package/compiler/factory/emitHelper.d.ts.map +1 -0
- package/compiler/factory/emitNode.d.ts +22 -0
- package/compiler/factory/emitNode.d.ts.map +1 -0
- package/compiler/factory/nodeChildren.d.ts +2 -0
- package/compiler/factory/nodeChildren.d.ts.map +1 -0
- package/compiler/factory/nodeConverters.d.ts +2 -0
- package/compiler/factory/nodeConverters.d.ts.map +1 -0
- package/compiler/factory/nodeFactory.d.ts +4 -0
- package/compiler/factory/nodeFactory.d.ts.map +1 -0
- package/compiler/factory/parenthesizerRules.d.ts +2 -0
- package/compiler/factory/parenthesizerRules.d.ts.map +1 -0
- package/compiler/factory/utilities.d.ts +2 -0
- package/compiler/factory/utilities.d.ts.map +1 -0
- package/compiler/factory/utilitiesPublic.d.ts +4 -0
- package/compiler/factory/utilitiesPublic.d.ts.map +1 -0
- package/compiler/lpcFileHandler.d.ts +10 -0
- package/compiler/lpcFileHandler.d.ts.map +1 -0
- package/compiler/lpcJsHelpers.d.ts +17 -0
- package/compiler/lpcJsHelpers.d.ts.map +1 -0
- package/compiler/lpcbuild.d.ts +2 -0
- package/compiler/lpcbuild.d.ts.map +1 -0
- package/compiler/lpcbuildPublic.d.ts +26 -0
- package/compiler/lpcbuildPublic.d.ts.map +1 -0
- package/compiler/moduleNameResolver.d.ts +55 -0
- package/compiler/moduleNameResolver.d.ts.map +1 -0
- package/compiler/moduleSpecifiers.d.ts +2 -0
- package/compiler/moduleSpecifiers.d.ts.map +1 -0
- package/compiler/nodeTests.d.ts +115 -0
- package/compiler/nodeTests.d.ts.map +1 -0
- package/compiler/parser.d.ts +65 -0
- package/compiler/parser.d.ts.map +1 -0
- package/compiler/path.d.ts +2 -0
- package/compiler/path.d.ts.map +1 -0
- package/compiler/perfLoger.d.ts +2 -0
- package/compiler/perfLoger.d.ts.map +1 -0
- package/compiler/performance.d.ts +2 -0
- package/compiler/performance.d.ts.map +1 -0
- package/compiler/performanceCore.d.ts +2 -0
- package/compiler/performanceCore.d.ts.map +1 -0
- package/compiler/program.d.ts +72 -0
- package/compiler/program.d.ts.map +1 -0
- package/compiler/resolutionCache.d.ts +6 -0
- package/compiler/resolutionCache.d.ts.map +1 -0
- package/compiler/resolver.d.ts +1 -0
- package/compiler/resolver.d.ts.map +1 -0
- package/compiler/scanner.d.ts +85 -0
- package/compiler/scanner.d.ts.map +1 -0
- package/compiler/sourcemap.d.ts +2 -0
- package/compiler/sourcemap.d.ts.map +1 -0
- package/compiler/sys.d.ts +56 -0
- package/compiler/sys.d.ts.map +1 -0
- package/compiler/tracing.d.ts +31 -0
- package/compiler/tracing.d.ts.map +1 -0
- package/compiler/transformers/declarations.d.ts +2 -0
- package/compiler/transformers/declarations.d.ts.map +1 -0
- package/compiler/transformers.d.ts +2 -0
- package/compiler/transformers.d.ts.map +1 -0
- package/compiler/types.d.ts +3284 -0
- package/compiler/types.d.ts.map +1 -0
- package/compiler/utilities.d.ts +57 -0
- package/compiler/utilities.d.ts.map +1 -0
- package/compiler/utilitiesPublic.d.ts +213 -0
- package/compiler/utilitiesPublic.d.ts.map +1 -0
- package/compiler/visitorPublic.d.ts +72 -0
- package/compiler/visitorPublic.d.ts.map +1 -0
- package/compiler/watch.d.ts +2 -0
- package/compiler/watch.d.ts.map +1 -0
- package/compiler/watchPublic.d.ts +44 -0
- package/compiler/watchPublic.d.ts.map +1 -0
- package/compiler/watchUtilities.d.ts +14 -0
- package/compiler/watchUtilities.d.ts.map +1 -0
- package/config-types.d.ts +33 -0
- package/config-types.d.ts.map +1 -0
- package/harness/harnessIO.d.ts +4 -0
- package/harness/harnessIO.d.ts.map +1 -0
- package/lpc/_namespaces/lpc.d.ts +6 -0
- package/lpc/_namespaces/lpc.d.ts.map +1 -0
- package/lpc/_namespaces/lpc.server.d.ts +2 -0
- package/lpc/_namespaces/lpc.server.d.ts.map +1 -0
- package/lpc/lpc.d.ts +2 -0
- package/lpc/lpc.d.ts.map +1 -0
- package/lpcserver/document.d.ts +1 -0
- package/lpcserver/document.d.ts.map +1 -0
- package/lpcserver/nodeServer.d.ts +25 -0
- package/lpcserver/nodeServer.d.ts.map +1 -0
- package/lpcserver/protocol.const.d.ts +46 -0
- package/lpcserver/protocol.const.d.ts.map +1 -0
- package/lpcserver/server.d.ts +3 -0
- package/lpcserver/server.d.ts.map +1 -0
- package/lpcserver/textRendering.d.ts +14 -0
- package/lpcserver/textRendering.d.ts.map +1 -0
- package/lpcserver/typeConverters.d.ts +44 -0
- package/lpcserver/typeConverters.d.ts.map +1 -0
- package/lpcserver/utils.d.ts +14 -0
- package/lpcserver/utils.d.ts.map +1 -0
- package/package.json +48 -0
- package/parse-fluff-docs.d.ts +2 -0
- package/parse-fluff-docs.d.ts.map +1 -0
- package/parse-ld-docs.d.ts +2 -0
- package/parse-ld-docs.d.ts.map +1 -0
- package/server/_namespaces/lpc.d.ts +5 -0
- package/server/_namespaces/lpc.d.ts.map +1 -0
- package/server/_namespaces/lpc.server.d.ts +11 -0
- package/server/_namespaces/lpc.server.d.ts.map +1 -0
- package/server/_namespaces/lpc.server.protocol.d.ts +2 -0
- package/server/_namespaces/lpc.server.protocol.d.ts.map +1 -0
- package/server/editorServices.d.ts +261 -0
- package/server/editorServices.d.ts.map +1 -0
- package/server/project.d.ts +143 -0
- package/server/project.d.ts.map +1 -0
- package/server/protocol.d.ts +962 -0
- package/server/protocol.d.ts.map +1 -0
- package/server/scriptInfo.d.ts +53 -0
- package/server/scriptInfo.d.ts.map +1 -0
- package/server/scriptVersionCache.d.ts +2 -0
- package/server/scriptVersionCache.d.ts.map +1 -0
- package/server/session.d.ts +150 -0
- package/server/session.d.ts.map +1 -0
- package/server/types.d.ts +24 -0
- package/server/types.d.ts.map +1 -0
- package/server/utilities.d.ts +2 -0
- package/server/utilities.d.ts.map +1 -0
- package/server/utilitiesPublic.d.ts +37 -0
- package/server/utilitiesPublic.d.ts.map +1 -0
- package/server.d.ts +2 -0
- package/server.d.ts.map +1 -0
- package/services/_namespaces/lpc.Completions.StringCompletions.d.ts +2 -0
- package/services/_namespaces/lpc.Completions.StringCompletions.d.ts.map +1 -0
- package/services/_namespaces/lpc.Completions.d.ts +4 -0
- package/services/_namespaces/lpc.Completions.d.ts.map +1 -0
- package/services/_namespaces/lpc.FindAllReferences.d.ts +3 -0
- package/services/_namespaces/lpc.FindAllReferences.d.ts.map +1 -0
- package/services/_namespaces/lpc.GoToDefinition.d.ts +2 -0
- package/services/_namespaces/lpc.GoToDefinition.d.ts.map +1 -0
- package/services/_namespaces/lpc.JsDoc.d.ts +2 -0
- package/services/_namespaces/lpc.JsDoc.d.ts.map +1 -0
- package/services/_namespaces/lpc.NavigationBar.d.ts +2 -0
- package/services/_namespaces/lpc.NavigationBar.d.ts.map +1 -0
- package/services/_namespaces/lpc.Rename.d.ts +2 -0
- package/services/_namespaces/lpc.Rename.d.ts.map +1 -0
- package/services/_namespaces/lpc.SignatureHelp.d.ts +2 -0
- package/services/_namespaces/lpc.SignatureHelp.d.ts.map +1 -0
- package/services/_namespaces/lpc.SymbolDisplay.d.ts +2 -0
- package/services/_namespaces/lpc.SymbolDisplay.d.ts.map +1 -0
- package/services/_namespaces/lpc.codefix.d.ts +3 -0
- package/services/_namespaces/lpc.codefix.d.ts.map +1 -0
- package/services/_namespaces/lpc.d.ts +30 -0
- package/services/_namespaces/lpc.d.ts.map +1 -0
- package/services/_namespaces/lpc.formatting.d.ts +7 -0
- package/services/_namespaces/lpc.formatting.d.ts.map +1 -0
- package/services/_namespaces/lpc.textChanges.d.ts +2 -0
- package/services/_namespaces/lpc.textChanges.d.ts.map +1 -0
- package/services/classifier2020.d.ts +2 -0
- package/services/classifier2020.d.ts.map +1 -0
- package/services/codefixes/helpers.d.ts +2 -0
- package/services/codefixes/helpers.d.ts.map +1 -0
- package/services/codefixes/importFixes.d.ts +2 -0
- package/services/codefixes/importFixes.d.ts.map +1 -0
- package/services/completions.d.ts +2 -0
- package/services/completions.d.ts.map +1 -0
- package/services/documentRegistry.d.ts +90 -0
- package/services/documentRegistry.d.ts.map +1 -0
- package/services/exportInfoMap.d.ts +5 -0
- package/services/exportInfoMap.d.ts.map +1 -0
- package/services/findAllReferences.d.ts +2 -0
- package/services/findAllReferences.d.ts.map +1 -0
- package/services/formatting/formatting.d.ts +2 -0
- package/services/formatting/formatting.d.ts.map +1 -0
- package/services/formatting/formattingContext.d.ts +2 -0
- package/services/formatting/formattingContext.d.ts.map +1 -0
- package/services/formatting/rule.d.ts +2 -0
- package/services/formatting/rule.d.ts.map +1 -0
- package/services/formatting/rules.d.ts +2 -0
- package/services/formatting/rules.d.ts.map +1 -0
- package/services/formatting/rulesMap.d.ts +2 -0
- package/services/formatting/rulesMap.d.ts.map +1 -0
- package/services/formatting/smartIndenter.d.ts +2 -0
- package/services/formatting/smartIndenter.d.ts.map +1 -0
- package/services/goToDefinition.d.ts +2 -0
- package/services/goToDefinition.d.ts.map +1 -0
- package/services/importTracker.d.ts +2 -0
- package/services/importTracker.d.ts.map +1 -0
- package/services/jsDoc.d.ts +2 -0
- package/services/jsDoc.d.ts.map +1 -0
- package/services/navigationBar.d.ts +2 -0
- package/services/navigationBar.d.ts.map +1 -0
- package/services/rename.d.ts +2 -0
- package/services/rename.d.ts.map +1 -0
- package/services/services.d.ts +54 -0
- package/services/services.d.ts.map +1 -0
- package/services/signatureHelp.d.ts +2 -0
- package/services/signatureHelp.d.ts.map +1 -0
- package/services/sourcemaps.d.ts +2 -0
- package/services/sourcemaps.d.ts.map +1 -0
- package/services/stringCompletions.d.ts +2 -0
- package/services/stringCompletions.d.ts.map +1 -0
- package/services/suggestionDiagnostics.d.ts +2 -0
- package/services/suggestionDiagnostics.d.ts.map +1 -0
- package/services/symbolDisplay.d.ts +2 -0
- package/services/symbolDisplay.d.ts.map +1 -0
- package/services/textChanges.d.ts +2 -0
- package/services/textChanges.d.ts.map +1 -0
- package/services/types.d.ts +901 -0
- package/services/types.d.ts.map +1 -0
- package/services/utilities.d.ts +3 -0
- package/services/utilities.d.ts.map +1 -0
- package/src/cli.js +58 -0
- package/src/cli.js.map +7 -0
- package/src/efuns/fluffos/arrays.h +205 -0
- package/src/efuns/fluffos/async.h +84 -0
- package/src/efuns/fluffos/buffers.h +80 -0
- package/src/efuns/fluffos/calls.h +275 -0
- package/src/efuns/fluffos/contrib.h +805 -0
- package/src/efuns/fluffos/db.h +125 -0
- package/src/efuns/fluffos/driver.h +107 -0
- package/src/efuns/fluffos/ed.h +48 -0
- package/src/efuns/fluffos/efuns.fluffos.h +75 -0
- package/src/efuns/fluffos/external.h +30 -0
- package/src/efuns/fluffos/filesystem.h +154 -0
- package/src/efuns/fluffos/floats.h +136 -0
- package/src/efuns/fluffos/functions.h +104 -0
- package/src/efuns/fluffos/general.h +548 -0
- package/src/efuns/fluffos/interactive.h +777 -0
- package/src/efuns/fluffos/internals.h +455 -0
- package/src/efuns/fluffos/lpc-config.json +10 -0
- package/src/efuns/fluffos/mappings.h +205 -0
- package/src/efuns/fluffos/misc.h +43 -0
- package/src/efuns/fluffos/mudlib.h +228 -0
- package/src/efuns/fluffos/numbers.h +41 -0
- package/src/efuns/fluffos/objects.h +365 -0
- package/src/efuns/fluffos/parsing.h +220 -0
- package/src/efuns/fluffos/pcre.h +75 -0
- package/src/efuns/fluffos/sockets.h +276 -0
- package/src/efuns/fluffos/strings.h +542 -0
- package/src/efuns/fluffos/system.h +408 -0
- package/src/efuns/fluffos/zh-cn/arrays.zh-cn.h +167 -0
- package/src/efuns/fluffos/zh-cn/async.zh-cn.h +81 -0
- package/src/efuns/fluffos/zh-cn/buffers.zh-cn.h +69 -0
- package/src/efuns/fluffos/zh-cn/calls.zh-cn.h +242 -0
- package/src/efuns/fluffos/zh-cn/contrib.zh-cn.h +767 -0
- package/src/efuns/fluffos/zh-cn/db.zh-cn.h +113 -0
- package/src/efuns/fluffos/zh-cn/ed.zh-cn.h +42 -0
- package/src/efuns/fluffos/zh-cn/efuns.fluffos.h +76 -0
- package/src/efuns/fluffos/zh-cn/external.zh-cn.h +25 -0
- package/src/efuns/fluffos/zh-cn/filesystem.zh-cn.h +140 -0
- package/src/efuns/fluffos/zh-cn/floats.zh-cn.h +129 -0
- package/src/efuns/fluffos/zh-cn/functions.zh-cn.h +87 -0
- package/src/efuns/fluffos/zh-cn/general.zh-cn.h +506 -0
- package/src/efuns/fluffos/zh-cn/interactive.zh-cn.h +659 -0
- package/src/efuns/fluffos/zh-cn/internals.zh-cn.h +356 -0
- package/src/efuns/fluffos/zh-cn/mappings.zh-cn.h +188 -0
- package/src/efuns/fluffos/zh-cn/misc.zh-cn.h +43 -0
- package/src/efuns/fluffos/zh-cn/mudlib.zh-cn.h +190 -0
- package/src/efuns/fluffos/zh-cn/numbers.zh-cn.h +36 -0
- package/src/efuns/fluffos/zh-cn/objects.zh-cn.h +280 -0
- package/src/efuns/fluffos/zh-cn/parsing.zh-cn.h +212 -0
- package/src/efuns/fluffos/zh-cn/pcre.zh-cn.h +67 -0
- package/src/efuns/fluffos/zh-cn/sockets.zh-cn.h +230 -0
- package/src/efuns/fluffos/zh-cn/strings.zh-cn.h +484 -0
- package/src/efuns/fluffos/zh-cn/system.zh-cn.h +366 -0
- package/src/efuns/ldmud/defines.h +69 -0
- package/src/efuns/ldmud/efun.h +10449 -0
- package/src/efuns/ldmud/efuns.ldmud.h +87 -0
- package/src/efuns/ldmud/lpc-config.json +9 -0
- package/src/efuns/ldmud/obsolete.h +2168 -0
- package/src/lpc.js +82486 -0
- package/src/lpc.js.map +6 -0
- package/src/server.js +129 -0
- package/src/server.js.map +7 -0
- package/types.d.ts +23 -0
- package/types.d.ts.map +1 -0
- package/utils.d.ts +21 -0
- package/utils.d.ts.map +1 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
// system.h
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* uptime() - 返回自上次驱动重启以来经过的秒数
|
|
5
|
+
*
|
|
6
|
+
* 这个函数返回自上次驱动重启以来经过的秒数。
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
int uptime( void );
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* trace_start - 开始收集驱动跟踪信息
|
|
13
|
+
*
|
|
14
|
+
* 调用此函数将开始收集来自驱动的跟踪信息。这包括LPC函数级别的执行信息。
|
|
15
|
+
*
|
|
16
|
+
* 跟踪收集将在 `trace_end()` 被调用或在 `auto_stop_sec` 秒后停止,该值默认为30秒。
|
|
17
|
+
*
|
|
18
|
+
* 注意:不要让跟踪启用太长时间,否则会有耗尽内存的风险。
|
|
19
|
+
* @param filename 写入跟踪数据的文件
|
|
20
|
+
* @param auto_stop_sec 收集跟踪数据之前的秒数,默认为30秒
|
|
21
|
+
*/
|
|
22
|
+
varargs void trace_start(string filename, int auto_stop_sec);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* trace_end - 停止收集驱动跟踪信息
|
|
26
|
+
*
|
|
27
|
+
* 调用此函数将停止活动的跟踪并将结果写出到`trace_start(filename)`提供的文件中。
|
|
28
|
+
*
|
|
29
|
+
* 注意:不要让跟踪启用太长时间,否则会有耗尽内存的风险。
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
void trace_end();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* time_ns() - 返回自1970年1月1日以来的纳秒数
|
|
36
|
+
*
|
|
37
|
+
* 返回自1970年1月1日午夜(GMT)以来经过的纳秒数。
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
int time_ns( void );
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* time() - 返回自1970年1月1日以来的秒数
|
|
44
|
+
*
|
|
45
|
+
* 返回自1970年1月1日午夜(GMT)以来经过的秒数。
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
int time( void );
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* sys_reload_tls() - 重新加载给定端口的TLS证书和密钥。
|
|
52
|
+
*
|
|
53
|
+
* 重新加载指定在配置文件中的端口索引的TLS证书和密钥。
|
|
54
|
+
*
|
|
55
|
+
* 例如,如果您在配置中定义了external_port_1_tls,那么您可以调用sys_reload_tls(1)来重新加载
|
|
56
|
+
* 它。这允许您在不重启服务器的情况下更新证书和密钥。
|
|
57
|
+
*
|
|
58
|
+
* 注意:
|
|
59
|
+
* - 在调用此函数之前,您必须覆盖磁盘上先前的证书/密钥文件。
|
|
60
|
+
* - 目前不支持为WebSocket端口重新加载TLS。
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
void sys_reload_tls ( int port_index );
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* sys_network_ports() - 显示活动网络端口
|
|
67
|
+
*
|
|
68
|
+
* 返回一个数组的数组;每个数组对应于正在被积极使用的网络端口。
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
mixed *sys_network_ports(void);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* strptime() - 将字符串解析为本地时间
|
|
75
|
+
*
|
|
76
|
+
* 使用格式字符串解析给定的时间 'str',请参见:
|
|
77
|
+
* https://man7.org/linux/man-pages/man3/strptime.3.html
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
int strptime( string fmt, string str );
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* strftime() - 将时间格式化为字符串
|
|
84
|
+
*
|
|
85
|
+
* 使用格式字符串格式化给定时间,请参见:
|
|
86
|
+
* https://man7.org/linux/man-pages/man3/strftime.3.html
|
|
87
|
+
*
|
|
88
|
+
*/
|
|
89
|
+
string strftime( string fmt, int time );
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* shutdown() - 关闭驱动
|
|
93
|
+
*
|
|
94
|
+
* 此函数以受控的方式关闭驱动(与崩溃时关闭的方式相对)。'how'参数指定驱动应该将哪个
|
|
95
|
+
* 整数值传递给exit()。约定是当重启驱动的脚本也应该死亡时,将'how'传递为-1。
|
|
96
|
+
* 因此,重启命令将使用shutdown(),而停止命令将使用shutdown(-1)。脚本必须明确检查
|
|
97
|
+
* 返回值,以查看是否是-1,如果您希望使用此约定。显然,shutdown()是一个敏感函数,应该
|
|
98
|
+
* 受到保护。与exec()一样,使其安全的方式是添加一个同名的simul_efun,并进行适当的安全检查。
|
|
99
|
+
* 确保在master.c中设置valid_override(4)以保护against efun::shutdown()。
|
|
100
|
+
*
|
|
101
|
+
*/
|
|
102
|
+
varargs void shutdown( int how );
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* set_reset - 修改对象的重置时间
|
|
106
|
+
*
|
|
107
|
+
* 将 'ob' 的重置时间设置为从现在起 'time' 秒。如果 'time' 被省略,
|
|
108
|
+
* 驱动程序的正常重置时间设置公式将应用于 'ob',即:
|
|
109
|
+
*
|
|
110
|
+
* 重置时间 = 当前时间 + 重置时间 / 2 + 随机(重置时间 / 2)
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
varargs void set_reset( object ob, int time );
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* set_eval_limit() - 设置最大评估成本
|
|
117
|
+
*
|
|
118
|
+
* set_eval_limit(),使用非零参数,设置允许任何一个线程的最大
|
|
119
|
+
* 评估成本,在此成本达到时,会发生运行时错误。使用零作为参数,
|
|
120
|
+
* 会将当前评估计数器设置为零,并返回最大成本。set_eval_limit(-1)
|
|
121
|
+
* 返回剩余的评估成本。
|
|
122
|
+
*
|
|
123
|
+
*/
|
|
124
|
+
void set_eval_limit( int );
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* reset_eval_cost() - 重置剩余评估成本
|
|
128
|
+
*
|
|
129
|
+
* reset_eval_cost(),将剩余评估成本重置为最大评估成本。
|
|
130
|
+
*
|
|
131
|
+
* 返回新的评估成本。
|
|
132
|
+
*
|
|
133
|
+
*/
|
|
134
|
+
int reset_eval_cost();
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* replace_program() - 替换 this_object() 中的程序
|
|
138
|
+
*
|
|
139
|
+
* replace_program() 将 this_object() 中的程序替换为其继承的
|
|
140
|
+
* 对象的程序。字符串参数是要使用的对象的文件名。一旦替换
|
|
141
|
+
* 发生,当前对象实际上变成了那个其他对象的克隆,但保留了
|
|
142
|
+
* 当前的文件名和全局变量值。程序实际上不会在当前执行
|
|
143
|
+
* 完成之前被替换。
|
|
144
|
+
*
|
|
145
|
+
*/
|
|
146
|
+
void replace_program( string str );
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* reclaim_objects - 回收任何残留对象
|
|
150
|
+
*
|
|
151
|
+
* 循环遍历所有已加载的对象,并释放任何它可以释放的残留对象。
|
|
152
|
+
* 这可能导致根据泥巴的编码释放大量内存。对象通常在一个
|
|
153
|
+
* 全局变量在多个对象中包含对其的指针时被留下残留,而该对象
|
|
154
|
+
* 被销毁。此 efun 返回在变量中遇到的被销毁对象的数量。
|
|
155
|
+
*
|
|
156
|
+
*/
|
|
157
|
+
int reclaim_objects( void );
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* perf_counter_ns() - 以纳秒为单位提供纪元时间测量
|
|
161
|
+
*
|
|
162
|
+
* 返回自 1970 年 1 月 1 日午夜 (GMT) 起的纳秒数。
|
|
163
|
+
*
|
|
164
|
+
*/
|
|
165
|
+
int perf_counter_ns( void );
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* max_eval_cost() - 返回最大评估成本
|
|
169
|
+
*
|
|
170
|
+
* max_eval_cost() 返回驱动程序决定进入无限循环之前可以执行的
|
|
171
|
+
* 指令数量。
|
|
172
|
+
*
|
|
173
|
+
*/
|
|
174
|
+
void max_eval_cost();
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* localtime() - 转换为当地时间
|
|
178
|
+
*
|
|
179
|
+
* localtime() 将一个时间值(由 time() 返回)转换为一个
|
|
180
|
+
* 表示当地时间的值数组。过去使用 time() 获取 GMT (UTC) 中的时间,
|
|
181
|
+
* 然后使用本地定义确定与 GMT 的本地偏移。这个绕行的过程
|
|
182
|
+
* 不再必要。localtime() 返回秒、分钟和小时、天、月和年、
|
|
183
|
+
* 星期几、一年中的天数、本地时区的名称以及泥巴与 GMT 的
|
|
184
|
+
* 时差。此信息直接从操作系统检索,并提供给驱动程序,
|
|
185
|
+
* 无需使用泥巴特定的配置文件。
|
|
186
|
+
*
|
|
187
|
+
* localtime() 返回一个包含上述值的数组。每个值的索引在
|
|
188
|
+
* localtime.h 中被象征性地定义。以下表总结了 localtime()
|
|
189
|
+
* 返回的数组。
|
|
190
|
+
*
|
|
191
|
+
* int LT_SEC 分钟后的秒数 (0..59)
|
|
192
|
+
* int LT_MIN 小时后的分钟数 (0..59)
|
|
193
|
+
* int LT_HOUR 自午夜以来的小时数 (0..23)
|
|
194
|
+
* int LT_MDAY 月中的天数 (1..31)
|
|
195
|
+
* int LT_MON 从一月起的月份数 (0..11)
|
|
196
|
+
* int LT_YEAR 年份(保证 >= 1900)
|
|
197
|
+
* int LT_WDAY 自周日以来的天数 (0..6)
|
|
198
|
+
* int LT_YDAY 从 1 月 1 日起的天数 (0..365)
|
|
199
|
+
* int LT_GMTOFF 自 GMT (UTC) 的秒数
|
|
200
|
+
* string LT_ZONE 时区名称
|
|
201
|
+
* int LT_ISDST 如果当前正在观察夏令时
|
|
202
|
+
*
|
|
203
|
+
*/
|
|
204
|
+
mixed *localtime( int time );
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* inherits() - 确定对象是否继承给定文件
|
|
208
|
+
*
|
|
209
|
+
* inherits() 如果 obj 不继承文件,则返回 0;如果
|
|
210
|
+
* 继承了文件的最新副本,则返回 1;如果
|
|
211
|
+
* 继承了文件的旧副本,则返回 2。
|
|
212
|
+
*
|
|
213
|
+
* 如果没有对象作为第二个参数传入,则此 efun 将默认为
|
|
214
|
+
* this_object()。
|
|
215
|
+
*
|
|
216
|
+
*/
|
|
217
|
+
int inherits( string file, object obj );
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* inherit_list() - 获取对象的父对象列表
|
|
221
|
+
*
|
|
222
|
+
* 返回一个数组,包含 obj 继承的文件名。仅返回直接
|
|
223
|
+
* 继承的文件。例如,如果 A 继承 B,B 继承 C,
|
|
224
|
+
* inherit_list(A) 将返回一个数组包含 B,而不包含 C。
|
|
225
|
+
*
|
|
226
|
+
* 如果没有对象被提供,此 efun 将默认为 this_object()。
|
|
227
|
+
*
|
|
228
|
+
*/
|
|
229
|
+
string *inherit_list( object obj );
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* function_profile() - 获取对象的函数性能分析信息
|
|
233
|
+
*
|
|
234
|
+
* 返回 'ob' 的函数性能分析信息,如果 'ob' 没有指定,
|
|
235
|
+
* 则返回 this_object()。只有在驱动程序进行了 PROFILE_FUNCTIONS
|
|
236
|
+
* 编译时,这才可用。
|
|
237
|
+
*
|
|
238
|
+
*/
|
|
239
|
+
mixed *function_profile( object ob );
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* function_exists() - 查找对象中给定函数所在的文件
|
|
243
|
+
* @param str 要检查的函数名称
|
|
244
|
+
* @param ob 要检查的对象
|
|
245
|
+
* @returns 定义函数 'str' 的对象的文件名 'ob'。
|
|
246
|
+
* 返回值可以与 'file_name(ob)' 不同,如果函数是由一个继
|
|
247
|
+
* 承的对象定义的。
|
|
248
|
+
*
|
|
249
|
+
* 如果函数未定义,则返回 0。
|
|
250
|
+
*
|
|
251
|
+
* 请注意,function_exists() 不检查阴影。
|
|
252
|
+
*
|
|
253
|
+
* 如果没有对象作为第二个参数传入,则此 efun 将默认为
|
|
254
|
+
* this_object()。
|
|
255
|
+
*
|
|
256
|
+
*/
|
|
257
|
+
varargs string function_exists( string str, object ob );
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* flush_messages - 发送所有待处理的消息给用户
|
|
261
|
+
*
|
|
262
|
+
* 通常,消息会被排队,然后一次性发送,以最小化所需的
|
|
263
|
+
* 数据包数量。此 efun 强制所有待处理的消息立即写入。
|
|
264
|
+
* 如果没有指定用户,则所有用户的消息都会被刷新。
|
|
265
|
+
*
|
|
266
|
+
*/
|
|
267
|
+
int flush_messages();
|
|
268
|
+
int flush_messages(object user);
|
|
269
|
+
/**
|
|
270
|
+
* find_call_out() - 查找计划调用的呼叫
|
|
271
|
+
*
|
|
272
|
+
* 查找计划调用的呼叫,可以通过函数名称或句柄进行查找。
|
|
273
|
+
*
|
|
274
|
+
* 如果参数是一个字符串,那么找到第一个计划执行的函数 'func' 的呼叫,返回剩余的时间(秒数)。
|
|
275
|
+
* 如果没有找到呼叫,则返回 -1。
|
|
276
|
+
*
|
|
277
|
+
* 如果参数是一个整数,那么找到句柄为 'handle' 的呼叫,返回剩余的时间(秒数)。
|
|
278
|
+
* 如果没有找到呼叫,则返回 -1。
|
|
279
|
+
*
|
|
280
|
+
* 这将找到通过 call_out() 或 call_out_walltime() 调度的呼叫。
|
|
281
|
+
*
|
|
282
|
+
* 如果剩余时间是分数值,则结果将是一个整数,其值将被取整向下。
|
|
283
|
+
*
|
|
284
|
+
* 示例:
|
|
285
|
+
* int handle = call_out("func", 10);
|
|
286
|
+
* printf("Remaining time: %O\n", find_call_out(handle));
|
|
287
|
+
* // 剩余时间:10
|
|
288
|
+
*
|
|
289
|
+
* int handle = call_out("func", 10.75);
|
|
290
|
+
* printf("Remaining time: %O\n", find_call_out(handle));
|
|
291
|
+
* // 剩余时间:10
|
|
292
|
+
*
|
|
293
|
+
* 此 efun 只会找到由 this_object() 初始化的呼叫。
|
|
294
|
+
*
|
|
295
|
+
*/
|
|
296
|
+
int find_call_out( string func ) ;
|
|
297
|
+
int find_call_out( int handle ) ;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* eval_cost() - 返回剩余的评估成本
|
|
301
|
+
*
|
|
302
|
+
* eval_cost() 返回在驱动程序判断处于无限循环之前可以执行的指令数量。
|
|
303
|
+
*
|
|
304
|
+
*/
|
|
305
|
+
int eval_cost();
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* errorp() - 确定给定变量是否为错误代码
|
|
309
|
+
*
|
|
310
|
+
* 如果 'arg' 是一个错误代码的整数,则返回 1。
|
|
311
|
+
*
|
|
312
|
+
* 最终 efuns 将被修改为返回标准错误代码,以便可以使用如下代码:
|
|
313
|
+
*
|
|
314
|
+
* if (errorp(result = efun_call()))
|
|
315
|
+
* printf("error = %d\n", result);
|
|
316
|
+
*
|
|
317
|
+
* 将来,还将有一个 perror(result) efun 返回与特定错误整数相关的错误字符串。
|
|
318
|
+
*
|
|
319
|
+
*/
|
|
320
|
+
int errorp( mixed arg );
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* error - 生成运行时错误
|
|
324
|
+
*
|
|
325
|
+
* 当调用 error() 时,将生成一个运行时错误 'err'。当前线程的执行将中止,调试日志将记录追踪信息。
|
|
326
|
+
* 'err' 本身允许最大长度为 2045 个字符,不包括最后一个可选的 '\n' 字符。
|
|
327
|
+
* 在处理错误之前,将移除可选的 '\n',并在前面添加 '*',并在后面附加一个无条件的 '\n'。
|
|
328
|
+
* @throws err
|
|
329
|
+
*/
|
|
330
|
+
void error( string err );
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* deep_inherit_list() - 获取对象的祖先列表
|
|
334
|
+
*
|
|
335
|
+
* 返回一个数组,包含所有直接和间接继承自 obj 的对象的文件名。
|
|
336
|
+
*
|
|
337
|
+
* 如果未提供对象,此 efun 将默认使用 this_object()。
|
|
338
|
+
*
|
|
339
|
+
*/
|
|
340
|
+
string *deep_inherit_list( object obj );
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* ctime() - 返回时间字符串
|
|
344
|
+
*
|
|
345
|
+
* 返回一个包含当前日期和时间的字符串,参数 'clock' 是自 1970 年以来的秒数。
|
|
346
|
+
*
|
|
347
|
+
* 如果未提供参数,将使用当前时间。
|
|
348
|
+
*
|
|
349
|
+
*/
|
|
350
|
+
string ctime(void| int clock );
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* call_out_info() - 获取待处理的 call_out() 信息
|
|
354
|
+
*
|
|
355
|
+
* 获取所有待处理呼叫的信息。返回一个数组,其中数组中的每个项包含 4 个元素:对象、函数、延迟时间和可选参数。
|
|
356
|
+
*
|
|
357
|
+
*/
|
|
358
|
+
mixed *call_out_info( void );
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* all_previous_objects() - 返回调用当前函数的对象数组
|
|
362
|
+
*
|
|
363
|
+
* 返回调用当前函数的对象数组。请注意,本地函数调用不会将 previous_object() 设置为当前对象,而是保持不变。
|
|
364
|
+
*
|
|
365
|
+
*/
|
|
366
|
+
object *all_previous_objects();
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Driver-provided defines that are injected into each file
|
|
2
|
+
|
|
3
|
+
#define LPC3 1 /* always defined */
|
|
4
|
+
#define __LDMUD__ 1 /* always defined */
|
|
5
|
+
#define __EUIDS__ 1 /* always (for compatibility) */
|
|
6
|
+
#define COMPAT_FLAG 1 /* defined if the driver runs in compat mode */
|
|
7
|
+
#define __COMPAT_MODE__ 1 /* ditto */
|
|
8
|
+
#define __STRICT_EUIDS__ 1 /* defined if strict euid usage is enforced */
|
|
9
|
+
#define __FILENAME_SPACES__ 1 /* defined if filenames may contain spaces */
|
|
10
|
+
|
|
11
|
+
// #define __MASTER_OBJECT__ "master_object" /* the name of the master object (in compat mode without leading '/') */
|
|
12
|
+
// #define __FILE__ "compiled_file" /* the name of the compiled file (in compat mode without leading '/') */
|
|
13
|
+
#define __LINE__ 1 /* the current line number */
|
|
14
|
+
#define __FUNCTION__ "function" /* the current function name */
|
|
15
|
+
// #define __DIR__ "directory_path" /* the directory path of the compiled file (in compat mode without leading '/') */
|
|
16
|
+
#define __PATH__(n) "/path/" /* the directory path of the compiled file without the <n> trailing elements (in compat mode without leading '/') */
|
|
17
|
+
// #define __VERSION__ "version_string" /* the version string of the driver */
|
|
18
|
+
#define __VERSION_MAJOR__ 3 /* the major version number of the driver */
|
|
19
|
+
#define __VERSION_MINOR__ 6 /* the minor version number of the driver */
|
|
20
|
+
#define __VERSION_MICRO__ 1 /* the micro version number of the driver */
|
|
21
|
+
#define __VERSION_PATCH__ 1 /* the patchlevel of the driver; a 0 here means 'no patchlevel' */
|
|
22
|
+
#define __VERSION_COMMITID__ "commit_id" /* the commit ID of the source of the driver (attention: it might be <unknown>, if the driver was not compiled from a git repository) */
|
|
23
|
+
// #define __VERSION_LOCAL__ "local_level" /* the (optional) LOCAL_LEVEL, the user has defined */
|
|
24
|
+
|
|
25
|
+
#define __DOMAIN_NAME__ "domain_name" /* the domain the host is part of */
|
|
26
|
+
#define __HOST_IP_NUMBER__ "host_ip_number" /* the hosts IP number (as a string) */
|
|
27
|
+
#define __HOST_NAME__ "hostname" /* the full hostname */
|
|
28
|
+
#define __MAX_RECURSION__ 1000 /* the max count of nested function calls (this is config.h:MAX_USER_TRACE) */
|
|
29
|
+
#define __MAX_EVAL_COST__ 1000 /* the max evaluation cost */
|
|
30
|
+
#define __RESET_TIME__ 1 /* default interval time between object resets */
|
|
31
|
+
#define __CLEANUP_TIME__ 1 /* default interval time between object cleanups */
|
|
32
|
+
#define __ALARM_TIME__ 1 /* the configured timing granularity */
|
|
33
|
+
#define __HEART_BEAT_INTERVAL__ 1 /* the configured heartbeat time */
|
|
34
|
+
#define __SYNCHRONOUS_HEART_BEAT__ 1 /* defined if synchronous heartbeats are enabled */
|
|
35
|
+
#define __MAX_COMMAND_LENGTH__ 1 /* the maximum length a command from command(), execute_command() or H_MODIFY_COMMAND can have */
|
|
36
|
+
#define __EFUN_DEFINED__(name) 0 /* if the efun 'name' exists, this macro evaluates to " 1 ", else to " 0 " */
|
|
37
|
+
#define __DRIVER_LOG__ "driver_log" /* the name of the default debug.log file (within the mudlib); undefined if a different name has been specified on the commandline */
|
|
38
|
+
#define __WIZLIST__ "wizlist" /* the name of the (mudlib) file from where the driver read the initial WIZLIST information. It is undefined if the driver was configured to not read the information */
|
|
39
|
+
|
|
40
|
+
#define __MAX_MALLOC__ 1000 /* the internal upper limit for total memory usage */
|
|
41
|
+
#define __INT_MAX__ 2147483647 /* the largest integer number */
|
|
42
|
+
#define __INT_MIN__ -2147483648 /* the smallest integer number */
|
|
43
|
+
#define __FLOAT_MAX__ 1.0e+20 /* the largest (positive) float number */
|
|
44
|
+
#define __FLOAT_MIN__ 0.00000 /* the smallest (positive) float number */
|
|
45
|
+
|
|
46
|
+
#define __LPC_NOSAVE__ 1 /* always defined */
|
|
47
|
+
#define __LPC_STRUCTS__ 1 /* always defined */
|
|
48
|
+
#define __LPC_LWOBJECTS__ 1 /* always defined */
|
|
49
|
+
#define __LPC_INLINE_CLOSURES__ 1 /* always defined */
|
|
50
|
+
#define __LPC_ARRAY_CALLS__ 1 /* always defined */
|
|
51
|
+
#define __BOOT_TIME__ 1 /* the time() the driver was started */
|
|
52
|
+
|
|
53
|
+
#define __ERQ_MAX_SEND__ 1 /* the max size of the send buffer */
|
|
54
|
+
#define __ERQ_MAX_REPLY__ 1 /* the max size of the reply buffer */
|
|
55
|
+
|
|
56
|
+
#define __IDNA__ 0 /* support for IDNA */
|
|
57
|
+
#define __IPV6__ 0 /* support for IP v.6 */
|
|
58
|
+
#define __MYSQL__ 0 /* support for mySQL */
|
|
59
|
+
#define __PGSQL__ 0 /* support for PostgreSQL */
|
|
60
|
+
#define __SQLITE__ 0 /* support for SQLite 3 */
|
|
61
|
+
#define __XML_DOM__ 0 /* support for XML parsing */
|
|
62
|
+
#define __MCCP__ 0 /* support for MCCP */
|
|
63
|
+
#define __ALISTS__ 0 /* support for alists */
|
|
64
|
+
#define __PCRE__ 0 /* support for PCRE (always defined) */
|
|
65
|
+
#define __TLS__ 0 /* support for TLS (internal) */
|
|
66
|
+
#define __GNUTLS__ 0 /* if __TLS__: TLS support provided by GnuTLS */
|
|
67
|
+
#define __OPENSSL__ 0 /* if __TLS__: TLS support provided by OpenSSL */
|
|
68
|
+
#define __GCRYPT__ 0 /* cryptographic routines provided by libgcrypt */
|
|
69
|
+
#define __DEPRECATED__ 0 /* support for obsolete and deprecated efuns */
|