2016-02-20 47 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系統程序中發現的標準助記符。

相關問題