2016-02-20 45 views
2

这是一个文件从this project的提取物(全文here):该方法中的元素是什么?

Method redirects() [ Private, ProcedureBlock = 0 ] 
{ 
/// Mnemonics 
APC d APC^%X364 q 
BEL d BEL^%X364 q 
CBT(%1) d CBT^%X364(%1) q 
CCH d CCH^%X364 q 
CHA(%1) d CHA^%X364(%1) q 
CHT(%1) d CHT^%X364(%1) q 
CNL(%1) d CNL^%X364(%1) q 
CPL(%1) d CPL^%X364(%1) q 
CPR d CPR^%X364 q 
CTC(%1,%2,%3,%4,%5,%6,%7,%8,%9) d CTC^%X364(%1,%2,%3,%4,%5,%6,%7,%8,%9) q 
CUB(%1) d CUB^%X364(%1) q 
CUD(%1) d CUD^%X364(%1) q 
CUF(%1) d CUF^%X364(%1) q 
CUP(%2,%1) d CUP^%X364(%2,%1) q 
CUU(%1) d CUU^%X364(%1) q 
CVT(%1) d CVT^%X364(%1) q 
DA d DA^%X364 q 
DAQ(%1,%2,%3,%4,%5,%6,%7,%8,%9) d DAQ^%X364(%1,%2,%3,%4,%5,%6,%7,%8,%9) q 
DCH(%1) d DCH^%X364(%1) q 
DCS d DCS^%X364 q 
DL(%1) d DL^%X364(%1) q 
DMI d DMI^%X364 q 
DSR(%1) d DSR^%X364(%1) q 
EA(%1) d EA^%X364(%1) q 
ECH(%1) d ECH^%X364(%1) q 
ED(%1) d ED^%X364(%1) q 
EF(%1) d EF^%X364(%1) q 
EL(%1) d EL^%X364(%1) q 
EMI d EMI^%X364 q 
EPA d EPA^%X364 q 
ESA d ESA^%X364 q 
FNT d DNT^%X364 q 
GSM d GSM^%X364 q 
GSS d GSS^%X364 q 
HPA(%1) d HPA^%X364(%1) q 
HPR(%1) d HPR^%X364(%1) q 
HTJ d HTJ^%X364 q 
HTS d HTS^%X364 q 
HVP(%1,%2) d HVP^%X364(%1,%2) q 
ICH(%1) d ICH^%X364(%1) q 
IL(%1) d IL^%X364(%1) q 
IND d IND^%X364 q 
// And others, followed by old style MAC routines 
} 

这是我第一次看到......我找不到什么那些“记忆法”的文档。

它们是什么?它的文档在哪里?

+0

http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_intro#GIOD_intro_definemnemomic 这里Nikita @zitro在他自己的例程中拦截标准助记符。 – tsafin

+0

@ tsafin uhm,好吧,但这是否意味着它可以在ObjectScript方法的任何地方定义?另外,'d'和'q'分别是Do和Quit命令,还是别的? – fge

+0

是的,是的。这里是简单的重定向示例https://github.com/intersystems-ru/Cache-MDX2JSON/blob/master/MDX2JSON/AbstractREST.cls.xml#L457 – rfg

回答

4

这是WebTerminal内部WebTerminal本身的标准助记符实现。

为了使WebTerminal工作作为共同的终端做主持的WebSockets,最重要的事情之一是代码

use $io:(/NOXY:/BREAK):"^" _ ..InitialZName 
这是在WebSocket的服务器初始化开始执行

一个小行,这实际上设置助记符空间的名称,它等于WebTerminal的编译的例程名称(如WebTerminal.Engine.1.int)。

这些助记符(APC,BEL等)是一个小的宏程序,用户可以使用特殊的语法从终端调用。例如,助记“CHA”是用来设置插入符位置:

USER > w "Pos 0", /CHA(14), "Pos 14", /CHA(35), "Pos 35" 
Pos 0  Pos 14    Pos 35 

为了使用户能够访问所有这些与此语法,有需要包括所有标准的助记符名到终端程序,默认设置为每个客户端的助记符空间(因为设置默认助记符空间,其中包括这些助记符打破WebTerminal)。剩下的唯一解决方案是使用ProcedureBlock = 0任何方法(在本例中,名为“重定向”的方法)中声明它们。

谈到语法,一般来说,我们有

MNEMONICNAME(%ArgByRef) do MNEMONICNAME^%SYSTEMROUTINE(%ArgByRef) quit 

这只是调用都可以在^%X364系统程序中发现的标准助记符。

相关问题