Provided by: erlang-manpages_25.3.2.8+dfsg-1ubuntu4.4_all bug

NAME

       megaco_flex_scanner - Interface module to the flex scanner linked in driver.

DESCRIPTION

       This module contains the public interface to the flex scanner linked in driver. The flex scanner performs
       the scanning phase of text message decoding.

       The  flex  scanner  is  written using a tool called flex. In order to be able to compile the flex scanner
       driver, this tool has to be available.

       By default the flex scanner reports line-number of an error. But it  can  be  built  without  line-number
       reporting.  Instead  token  number  is  used.  This will speed up the scanning some 5-10%. Use --disable-
       megaco-flex-scanner-lineno when configuring the application.

       The scanner will, by default, be built as a reentrant scanner if  the  flex  utility  supports  this  (it
       depends  on  the version of flex). It is possible to explicitly disable this even when flex support this.
       Use --disable-megaco-reentrant-flex-scanner when configuring the application.

DATA TYPES

       megaco_ports() = term()
       megaco_version() = integer() >= 1

EXPORTS

       start() -> {ok, PortOrPorts} | {error, Reason}

              Types:

                 PortOrPorts = megaco_ports()
                 Reason = term()

              This function is used to start the flex scanner. It locates the library and loads  the  linked  in
              driver.

              On  a single core system or if it's a non-reentrant scanner, a single port is created. On a multi-
              core system with a reentrant scanner, several ports will be created (one for each scheduler).

              Note that the process that calls this function must be permanent. If it  dies,  the  port(s)  will
              exit and the driver unload.

       stop(PortOrPorts) -> stopped

              Types:

                 PortOrPorts = megaco_ports()

              This function is used to stop the flex scanner. It also unloads the driver.

       is_reentrant_enabled() -> Boolean

              Types:

                 Boolean = boolean()

              Is the flex scanner reentrant or not.

       is_scanner_port(Port, PortOrPorts) -> Boolean

              Types:

                 Port = port()
                 PortOrPorts = megaco_ports()
                 Boolean = boolean()

              Checks if a port is a flex scanner port or not (useful when if a port exits).

       scan(Binary, PortOrPorts) -> {ok, Tokens, Version, LatestLine} | {error, Reason, LatestLine}

              Types:

                 Binary = binary()
                 PortOrPorts = megaco_ports()
                 Tokens = list()
                 Version = megaco_version()
                 LatestLine = integer()
                 Reason = term()

              Scans a megaco message and generates a token list to be passed on the parser.

Ericsson AB                                       megaco 4.4.3                         megaco_flex_scanner(3erl)