在线文档教程

diameter_make

diameter_make

模块

diameter_make

模块摘要

Diameter字典编译。

描述

该函数codec/2用于将一个直径编译dictionary file成Erlang源代码。生成的源实现接口直径,需要对字典的消息和AVP进行编码和解码。

该实用程序diameterc(1)提供了一个备用编译界面。

出口

codec(File :: iolist() | binary(), [Opt]) -> ok | {ok, [Out]} | {error, Reason}

编译单个字典文件。输入File可以是路径或文字字典,发生换行(ascii NL)或回车(ascii CR)来识别后者。Opt确定结果的格式以及它们是写入文件还是返回,并且可以具有以下类型。

parse | forms | erl | hrl

指定输出格式。输出是返回还是写入文件取决于是否return指定了选项。当写入文件时,生成的文件(一个或多个)将具有扩展.D.F.erl,和.hrl分别基本名称默认为dictionary如果输入字典是文字,并且不指定@name。返回时,结果按相应格式选项的顺序排列。如果未指定,格式选项默认为erlhrl(按此顺序)。

parse格式是可以传递到内部表示flatten/1format/1,而forms格式可以传递给compile:forms/2。在erlhrl格式返回iolists。

{include, string()}

将指定的目录添加到代码路径中。用于指向从继承字典编译的波束文件,@inherits创建波束依赖关系的字典文件中,而不是erl / hrl依赖项。

include可以指定多个选项。

{outdir, string()}

将生成的源代码写入指定的目录。默认为当前工作目录。如果return指定了选项,则不起作用。

return

{ok, [Out]}tuple的形式返回结果,而不是写入文件并返回ok

{name|prefix, string()}

在编译,设置@name@prefix指定的字符串之前转换输入字典。

{inherits, string()}

编译前转换输入字典,并追加@inherits指定字符串的。

有两种形式有特殊的含义:

{inherits, "-"} {inherits, "Prev/Mod"}

所述第一有清除所有以前的继承,取代的先前继承的第二的效果Prev,以之一Mod。这允许在不修改文件本身的情况下改变输入字典的语义。

inherits可以指定多个选项。

请注意,字典@nameoutdir选项一起确定return未指定选项时的输出路径。的@name文字输入字典默认的dictionary

返回的错误原因可以使用转换为可读的字符串format_error/1

format(Parsed) -> iolist()

将解析的字典作为返回codec/2的字典格式转换回来。

flatten(Parsed) -> term()

重新codec/2构建解析的字典,不需要使用返回的字典@inherits。也就是说,构建一个等价字典,其中所有AVP都是在字典中定义的。返回值也是一个解析的字典。

format_error(Reason) -> string()

将返回的错误原因codec/2转换为可读的字符串。

错误

无法识别的选项会被忽略。

另见

diameterc(1)diameter_dict(4)