diameter_make
Diameter dictionary compilation.
The function codec/2 is used to compile a diameter dictionary file into Erlang source. The resulting source implements the interface diameter required to encode and decode the dictionary's messages and AVP's.
The utility diameterc(1) provides an alternate compilation interface.
Functions
codec(Path::string(), [Opt]) -> ok | {error, Reason}
Compile a single dictionary file to Erlang source.
Opt
can have the following types.
{include, string()}
Prepend the specified directory to the code path.
Use to point at beam files compiled from inherited dictionaries,
@inherits
in a dictionary file creating a beam
dependency, not an erl/hrl dependency.
Multiple include
options can be specified.
{outdir, string()}
Write generated source to the specified directory. Defaults to the current working directory.
{name|prefix, string()}
Transform the input dictionary before compilation, setting
@name
or @prefix
to the specified
string.
{inherits, string()}
Transform the input dictionary before compilation, appending
@inherits
of the specified string.
Two forms of @inherits
have special meaning:
{inherits, "-"} {inherits, "Prev/Mod"}
The first has the effect of clearing any previous inherits, the second
of replacing a previous inherits of Prev
to one of Mod
.
This allows the semantics of the input dictionary to be changed without
modifying the file itself.
Multiple inherits
options can be specified.
BUGS
All options are string-valued. In particular, it is not currently possible to specify an @inherits module as an atom(), or a path as an arbitrary file:name()