generated apidoc added
Signed-off-by: ETHGRY <gyorgy.rethy@ericsson.com>
diff --git a/apidoc/Data/ClassHierarchy.nd b/apidoc/Data/ClassHierarchy.nd
new file mode 100644
index 0000000..bc063b0
--- /dev/null
+++ b/apidoc/Data/ClassHierarchy.nd
Binary files differ
diff --git a/apidoc/Data/ConfigFileInfo.nd b/apidoc/Data/ConfigFileInfo.nd
new file mode 100644
index 0000000..7fadca9
--- /dev/null
+++ b/apidoc/Data/ConfigFileInfo.nd
Binary files differ
diff --git a/apidoc/Data/FileInfo.nd b/apidoc/Data/FileInfo.nd
new file mode 100644
index 0000000..47be8eb
--- /dev/null
+++ b/apidoc/Data/FileInfo.nd
@@ -0,0 +1,4 @@
+1.52
+TTCN3
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/MBT/src/LoadGen/EPTF_MBT_LGen_Definitions.ttcn 1580733673 1 EPTF_MBT_LGen_Definitions
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/MBT/src/LoadGen/EPTF_MBT_LGen_Functions.ttcn 1580733673 1 EPTF_MBT_LGen_Functions
diff --git a/apidoc/Data/ImageFileInfo.nd b/apidoc/Data/ImageFileInfo.nd
new file mode 100644
index 0000000..278e2bf
--- /dev/null
+++ b/apidoc/Data/ImageFileInfo.nd
Binary files differ
diff --git a/apidoc/Data/ImageReferenceTable.nd b/apidoc/Data/ImageReferenceTable.nd
new file mode 100644
index 0000000..278e2bf
--- /dev/null
+++ b/apidoc/Data/ImageReferenceTable.nd
Binary files differ
diff --git a/apidoc/Data/IndexInfo.nd b/apidoc/Data/IndexInfo.nd
new file mode 100644
index 0000000..2733db0
--- /dev/null
+++ b/apidoc/Data/IndexInfo.nd
Binary files differ
diff --git a/apidoc/Data/PreviousMenuState.nd b/apidoc/Data/PreviousMenuState.nd
new file mode 100644
index 0000000..786a4d2
--- /dev/null
+++ b/apidoc/Data/PreviousMenuState.nd
Binary files differ
diff --git a/apidoc/Data/PreviousSettings.nd b/apidoc/Data/PreviousSettings.nd
new file mode 100644
index 0000000..276d988
--- /dev/null
+++ b/apidoc/Data/PreviousSettings.nd
Binary files differ
diff --git a/apidoc/Data/SymbolTable.nd b/apidoc/Data/SymbolTable.nd
new file mode 100644
index 0000000..9718084
--- /dev/null
+++ b/apidoc/Data/SymbolTable.nd
Binary files differ
diff --git a/apidoc/Languages.txt b/apidoc/Languages.txt
new file mode 100755
index 0000000..d231539
--- /dev/null
+++ b/apidoc/Languages.txt
@@ -0,0 +1,126 @@
+Format: 1.52
+
+# This is the Natural Docs languages file for this project. If you change
+# anything here, it will apply to THIS PROJECT ONLY. If you'd like to change
+# something for all your projects, edit the Languages.txt in Natural Docs'
+# Config directory instead.
+
+
+Ignore Extensions: cc c cpp hh h o sh csh txt pl pm py
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Unlike other Natural Docs configuration files, in this file all comments
+# MUST be alone on a line. Some languages deal with the # character, so you
+# cannot put comments on the same line as content.
+#
+# Also, all lists are separated with spaces, not commas, again because some
+# languages may need to use them.
+#
+# Language: [name]
+# Alter Language: [name]
+# Defines a new language or alters an existing one. Its name can use any
+# characters. If any of the properties below have an add/replace form, you
+# must use that when using Alter Language.
+#
+# The language Shebang Script is special. It's entry is only used for
+# extensions, and files with those extensions have their shebang (#!) lines
+# read to determine the real language of the file. Extensionless files are
+# always treated this way.
+#
+# The language Text File is also special. It's treated as one big comment
+# so you can put Natural Docs content in them without special symbols. Also,
+# if you don't specify a package separator, ignored prefixes, or enum value
+# behavior, it will copy those settings from the language that is used most
+# in the source tree.
+#
+# Extensions: [extension] [extension] ...
+# [Add/Replace] Extensions: [extension] [extension] ...
+# Defines the file extensions of the language's source files. You can
+# redefine extensions found in the main languages file. You can use * to
+# mean any undefined extension.
+#
+# Shebang Strings: [string] [string] ...
+# [Add/Replace] Shebang Strings: [string] [string] ...
+# Defines a list of strings that can appear in the shebang (#!) line to
+# designate that it's part of the language. You can redefine strings found
+# in the main languages file.
+#
+# Ignore Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
+#
+# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+# Specifies prefixes that should be ignored when sorting symbols in an
+# index. Can be specified in general or for a specific topic type.
+#
+#------------------------------------------------------------------------------
+# For basic language support only:
+#
+# Line Comments: [symbol] [symbol] ...
+# Defines a space-separated list of symbols that are used for line comments,
+# if any.
+#
+# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
+# Defines a space-separated list of symbol pairs that are used for block
+# comments, if any.
+#
+# Package Separator: [symbol]
+# Defines the default package separator symbol. The default is a dot.
+#
+# [Topic Type] Prototype Enders: [symbol] [symbol] ...
+# When defined, Natural Docs will attempt to get a prototype from the code
+# immediately following the topic type. It stops when it reaches one of
+# these symbols. Use \n for line breaks.
+#
+# Line Extender: [symbol]
+# Defines the symbol that allows a prototype to span multiple lines if
+# normally a line break would end it.
+#
+# Enum Values: [global|under type|under parent]
+# Defines how enum values are referenced. The default is global.
+# global - Values are always global, referenced as 'value'.
+# under type - Values are under the enum type, referenced as
+# 'package.enum.value'.
+# under parent - Values are under the enum's parent, referenced as
+# 'package.value'.
+#
+# Perl Package: [perl package]
+# Specifies the Perl package used to fine-tune the language behavior in ways
+# too complex to do in this file.
+#
+#------------------------------------------------------------------------------
+# For full language support only:
+#
+# Full Language Support: [perl package]
+# Specifies the Perl package that has the parsing routines necessary for full
+# language support.
+#
+#-------------------------------------------------------------------------------
+
+# The following languages are defined in the main file, if you'd like to alter
+# them:
+#
+# Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
+# PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
+# ActionScript, ColdFusion, R, Fortran
+
+# If you add a language that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# languages [at] naturaldocs [dot] org.
+
+
+Language: TTCN3
+
+ Extensions: ttcn ttcnin ttcnpp
+ Line Comment: //
+ Block Comment: /* */
+ Function Prototype Enders: ; {
+ Variable Prototype Enders: ; =
+ Type Prototype Enders: ; \n
+ Constant Prototype Enders: ; }
+ Altstep Prototype Enders: ; {
+ Component Prototype Enders: ; {
+ Template Prototype Enders: := {
diff --git a/apidoc/Menu.txt b/apidoc/Menu.txt
new file mode 100644
index 0000000..49c3853
--- /dev/null
+++ b/apidoc/Menu.txt
@@ -0,0 +1,52 @@
+Format: 1.52
+
+
+Title: MBT_Applib
+SubTitle: API Documentation
+
+Footer: Copyright 2020 Test Competence Center
+Timestamp: Generated on yyyy-mm-dd
+# m - One or two digit month. January is "1"
+# mm - Always two digit month. January is "01"
+# mon - Short month word. January is "Jan"
+# month - Long month word. January is "January"
+# d - One or two digit day. 1 is "1"
+# dd - Always two digit day. 1 is "01"
+# day - Day with letter extension. 1 is "1st"
+# yy - Two digit year. 2006 is "06"
+# yyyy - Four digit year. 2006 is "2006"
+# year - Four digit year. 2006 is "2006"
+
+
+# --------------------------------------------------------------------------
+#
+# Cut and paste the lines below to change the order in which your files
+# appear on the menu. Don't worry about adding or removing files, Natural
+# Docs will take care of that.
+#
+# You can further organize the menu by grouping the entries. Add a
+# "Group: [name] {" line to start a group, and add a "}" to end it.
+#
+# You can add text and web links to the menu by adding "Text: [text]" and
+# "Link: [name] ([URL])" lines, respectively.
+#
+# The formatting and comments are auto-generated, so don't worry about
+# neatness when editing the file. Natural Docs will clean it up the next
+# time it is run. When working with groups, just deal with the braces and
+# forget about the indentation and comments.
+#
+# --------------------------------------------------------------------------
+
+
+File: EPTF_MBT_LGen_Definitions (EPTF_MBT_LGen_Definitions.ttcn)
+File: EPTF_MBT_LGen_Functions (EPTF_MBT_LGen_Functions.ttcn)
+
+Group: Index {
+
+ Index: Everything
+ Constant Index: Constants
+ File Index: Files
+ Function Index: Functions
+ Type Index: Types
+ } # Group: Index
+
diff --git a/apidoc/Topics.txt b/apidoc/Topics.txt
new file mode 100755
index 0000000..95e2676
--- /dev/null
+++ b/apidoc/Topics.txt
@@ -0,0 +1,164 @@
+Format: 1.52
+
+# This is the Natural Docs topics file for this project. If you change anything
+# here, it will apply to THIS PROJECT ONLY. If you'd like to change something
+# for all your projects, edit the Topics.txt in Natural Docs' Config directory
+# instead.
+
+
+Ignore Keywords:
+ note, notes
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Topic Type: [name]
+# Alter Topic Type: [name]
+# Creates a new topic type or alters one from the main file. Each type gets
+# its own index and behavior settings. Its name can have letters, numbers,
+# spaces, and these charaters: - / . '
+#
+# Plural: [name]
+# Sets the plural name of the topic type, if different.
+#
+# Keywords:
+# [keyword]
+# [keyword], [plural keyword]
+# ...
+# Defines or adds to the list of keywords for the topic type. They may only
+# contain letters, numbers, and spaces and are not case sensitive. Plural
+# keywords are used for list topics. You can redefine keywords found in the
+# main topics file.
+#
+# Index: [yes|no]
+# Whether the topics get their own index. Defaults to yes. Everything is
+# included in the general index regardless of this setting.
+#
+# Scope: [normal|start|end|always global]
+# How the topics affects scope. Defaults to normal.
+# normal - Topics stay within the current scope.
+# start - Topics start a new scope for all the topics beneath it,
+# like class topics.
+# end - Topics reset the scope back to global for all the topics
+# beneath it.
+# always global - Topics are defined as global, but do not change the scope
+# for any other topics.
+#
+# Class Hierarchy: [yes|no]
+# Whether the topics are part of the class hierarchy. Defaults to no.
+#
+# Page Title If First: [yes|no]
+# Whether the topic's title becomes the page title if it's the first one in
+# a file. Defaults to no.
+#
+# Break Lists: [yes|no]
+# Whether list topics should be broken into individual topics in the output.
+# Defaults to no.
+#
+# Can Group With: [type], [type], ...
+# Defines a list of topic types that this one can possibly be grouped with.
+# Defaults to none.
+#-------------------------------------------------------------------------------
+
+# The following topics are defined in the main file, if you'd like to alter
+# their behavior or add keywords:
+#
+# Generic, Class, Interface, Section, File, Group, Function, Variable,
+# Property, Type, Constant, Enumeration, Event, Delegate, Macro,
+# Database, Database Table, Database View, Database Index, Database
+# Cursor, Database Trigger, Cookie, Build Target
+
+# If you add something that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# topics [at] naturaldocs [dot] org.
+
+
+Alter Topic Type: Function
+
+ Index: Yes
+
+
+Alter Topic Type: Constant
+
+ Index: Yes
+
+
+Alter Topic Type: Type
+
+ Index: Yes
+
+
+Topic Type: Module Parameter
+
+ Plural: Module Parameters
+ Index: Yes
+
+ Keywords:
+ module parameter, module parameters
+
+
+Topic Type: Configuration Type
+
+ Plural: Configuration Types
+ Index: Yes
+ Can Group With: Types
+
+ Keywords:
+ configtype, configtypes
+
+
+Topic Type: Testcase
+
+ Plural: Testcases
+ Index: No
+
+ Keywords:
+ testcase, testcases
+
+
+Topic Type: Altstep
+
+ Plural: Altsteps
+ Index: No
+
+ Keywords:
+ altstep, altsteps
+
+
+Topic Type: Template
+
+ Plural: Templates
+ Index: No
+
+ Keywords:
+ template, templates
+
+
+Alter Topic Type: Group
+
+ Plural: Groups
+ Index: No
+
+ Add Keywords:
+ group
+
+
+Alter Topic Type: Generic
+
+
+
+Alter Topic Type: File
+
+ Index: Yes
+ Add Keywords:
+ module
+
+
+Topic Type: Component
+
+ Plural: Components
+ Index: No
+
+ Keywords:
+ component, components
diff --git a/apidoc/html/files/EPTF_MBT_LGen_Definitions-ttcn.html b/apidoc/html/files/EPTF_MBT_LGen_Definitions-ttcn.html
new file mode 100644
index 0000000..882a661
--- /dev/null
+++ b/apidoc/html/files/EPTF_MBT_LGen_Definitions-ttcn.html
@@ -0,0 +1,88 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>EPTF_MBT_LGen_Definitions - MBT_Applib</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="EPTF_MBT_LGen_Definitions"></a>EPTF_MBT_LGen_Definitions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>Type definitions for the MBT Applib</p><h4 class=CHeading>Detailed comments</h4><p>The MBT applib provides a simple FSM that can catch the reported events from the applibs and can execute all desired test steps registered by the applibs. The behavior of the FSM can be controlled via functions in the “User mapping” code, or via MBT Applib PDUs on the MBT Applib Interface: the <a href="#EPTF_MBT_Tester_CT" class=LType id=link31 onMouseOver="ShowTip(event, 'tt11', 'link31')" onMouseOut="HideTip('tt11')">EPTF_MBT_Tester_CT</a> component has a <a href="#EPTF_MBT_PortType" class=LType id=link32 onMouseOver="ShowTip(event, 'tt12', 'link32')" onMouseOut="HideTip('tt12')">EPTF_MBT_PortType</a> to control and observe the behavior of the <a href="#EPTF_MBT_LGen_CT" class=LType id=link33 onMouseOver="ShowTip(event, 'tt10', 'link33')" onMouseOut="HideTip('tt10')">EPTF_MBT_LGen_CT</a> component running the FSM <a href="EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_initLGenFsm" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt31', 'link34')" onMouseOut="HideTip('tt31')">f_EPTF_MBT_initLGenFsm</a> and the applibs. The MBT applib can be used to test other applibs from their FSM API point of view, or use applibs as test harnesses.</p><h4 class=CHeading>Module paramters</h4><ul><li>tsp_EPTF_MBT_LGen_debug - <b>boolean</b> - Enable/disable verbose debugging</li><li>tsp_EPTG_MBT_execute_lockTimeout - <b>float</b> - Maximum waiting time for the f_EPTF_MBT_execute function when locking is used.</li></ul><h4 class=CHeading>Module depends on</h4><ul><li><EPTF_CLL_Base_Definitions></li><li><EPTF_CLL_Common_Definitions></li><li><EPTF_CLL_Scheduler_Definitions></li><li><EPTF_CLL_RBTScheduler_Definitions></li><li><EPTF_CLL_LGenBase_Definitions></li><li><EPTF_CLL_FBQ_Definitions></li><li><EPTF_CLL_Logging_Definitions></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#EPTF_MBT_LGen_Definitions" >EPTF_MBT_LGen_Definitions</a></td><td class=SDescription>Type definitions for the MBT Applib</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_myBName" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">c_EPTF_MBT_myBName</a></td><td class=SDescription>constant for the behavior name</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_EPTF_MBT_inputIdx_incomingUserRequest" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">c_EPTF_MBT_inputIdx_incomingUserRequest</a></td><td class=SDescription>constant for the input index of incomming user request</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_inputIdx_incomingUserRequest" >c_EPTF_MBT_inputIdx_incomingUserRequest</a></td><td class=SDescription>constant for the input name of incomming request</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_EPTF_MBT_inputIdx_incomingTestStepRequest" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">c_EPTF_MBT_inputIdx_incomingTestStepRequest</a></td><td class=SDescription>constant for the input index of incomming TesStep request</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_inputName_incomingTestStepRequest" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">c_EPTF_MBT_inputName_incomingTestStepRequest</a></td><td class=SDescription>constant for the input name of TEstStep Request</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_EPTF_MBT_stepIdx_invokeTestStep" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">c_EPTF_MBT_stepIdx_invokeTestStep</a></td><td class=SDescription>constant for the step index of invoke TestStep</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_stepIdx_invokeTestStep" >c_EPTF_MBT_stepIdx_invokeTestStep</a></td><td class=SDescription>constant for the step name of invoke TestStep</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_EPTF_MBT_stepIdx_sendUserResponse" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">c_EPTF_MBT_stepIdx_sendUserResponse</a></td><td class=SDescription>constant for the step index of send user response</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_stepName_sendUserResponse" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">c_EPTF_MBT_stepName_sendUserResponse</a></td><td class=SDescription>constant for the step name of send user response</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_EPTF_MBT_stepIdx_invokeUserFunction" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">c_EPTF_MBT_stepIdx_invokeUserFunction</a></td><td class=SDescription>constant for the step index of invoke user function</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_EPTF_MBT_stepName_invokeUserFunction" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">c_EPTF_MBT_stepName_invokeUserFunction</a></td><td class=SDescription>constant for the step name of invoke user function</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_LGen_CT" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">EPTF_MBT_LGen_CT</a></td><td class=SDescription>MBT application library component type</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_Tester_CT" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">EPTF_MBT_Tester_CT</a></td><td class=SDescription>MBT tester component type</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_PortType" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">EPTF_MBT_PortType</a></td><td class=SDescription>Messages based port to connect the Tester comopnent to the loadGen component.</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_TestStepRequest" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">EPTF_MBT_TestStepRequest</a></td><td class=SDescription>Describes the TestStep request</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_UserRequest" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">EPTF_MBT_UserRequest</a></td><td class=SDescription>Describes the User Request request</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_UserResponse" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">EPTF_MBT_UserResponse</a></td><td class=SDescription>Describes the UserResponse</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_CreateFSMRequest" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">EPTF_MBT_CreateFSMRequest</a></td><td class=SDescription>Describes the Create FSM request</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_CreateFSMResponse" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">EPTF_MBT_CreateFSMResponse</a></td><td class=SDescription>Describes the Create FSM response</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_RemoveFSMRequest" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">EPTF_MBT_RemoveFSMRequest</a></td><td class=SDescription>Describes the Remove FSM request</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_CreateFSMResponse" >EPTF_MBT_CreateFSMResponse</a></td><td class=SDescription>Describes the Remove FSM response</td></tr><tr class="SType"><td class=SEntry><a href="#FsmAddr" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">FsmAddr</a></td><td class=SDescription>Describes the FSM address</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_TestStepResponse" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">EPTF_MBT_TestStepResponse</a></td><td class=SDescription>Describes the TestStep Response]</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_EventDispatchRequest" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">EPTF_MBT_EventDispatchRequest</a></td><td class=SDescription>Describes the Event Dispatch Request</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_ConfigRequest" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">EPTF_MBT_ConfigRequest</a></td><td class=SDescription>Describes the ConfigRequest</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_ConfigResponse" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">EPTF_MBT_ConfigResponse</a></td><td class=SDescription>Describes the ConfigResponse</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#EPTF_MBT_CommandRequest" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">EPTF_MBT_CommandRequest</a></td><td class=SDescription>Describes the Command Request</td></tr><tr class="SType"><td class=SEntry><a href="#EPTF_MBT_CommandResponse" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">EPTF_MBT_CommandResponse</a></td><td class=SDescription>Describes the Command Response</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#QuitCommand" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">QuitCommand</a></td><td class=SDescription>Describes the Command Response</td></tr><tr class="SType"><td class=SEntry><a href="#ReadyResponse" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">ReadyResponse</a></td><td class=SDescription>Describes the Ready Response</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#QuitAckResponse" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">QuitAckResponse</a></td><td class=SDescription>Describes the Ready Response</td></tr><tr class="SType"><td class=SEntry><a href="#fcb_EPTF_MBT_entityGroupCreated" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">fcb_EPTF_MBT_entityGroupCreated</a></td><td class=SDescription>Describes the function signature for entity Group created callback function</td></tr><tr class="SType SMarked"><td class=SEntry><a href="#fcb_EPTF_MBT_customUserFunction" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">fcb_EPTF_MBT_customUserFunction</a></td><td class=SDescription>Describes the function signature for custom user function</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_myBName"></a>c_EPTF_MBT_myBName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_myBName:="MBT_behavior"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the behavior name</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_inputIdx_incomingUserRequest"></a>c_EPTF_MBT_inputIdx_incomingUserRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingUserRequest := 0</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the input index of incomming user request</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_inputIdx_incomingUserRequest"></a>c_EPTF_MBT_inputIdx_incomingUserRequest</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>constant for the input name of incomming request</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_inputIdx_incomingTestStepRequest"></a>c_EPTF_MBT_inputIdx_incomingTestStepRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingTestStepRequest := 1</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the input index of incomming TesStep request</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_inputName_incomingTestStepRequest"></a>c_EPTF_MBT_inputName_incomingTestStepRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_inputName_incomingTestStepRequest := "EPTF_MBT_inputName_incomingTestStepRequest"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the input name of TEstStep Request</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepIdx_invokeTestStep"></a>c_EPTF_MBT_stepIdx_invokeTestStep</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeTestStep:=0</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the step index of invoke TestStep</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepIdx_invokeTestStep"></a>c_EPTF_MBT_stepIdx_invokeTestStep</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>constant for the step name of invoke TestStep</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepIdx_sendUserResponse"></a>c_EPTF_MBT_stepIdx_sendUserResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_sendUserResponse:=2</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the step index of send user response</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepName_sendUserResponse"></a>c_EPTF_MBT_stepName_sendUserResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_sendUserResponse :="EPTF_MBT_stepName_sendUserResponse"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the step name of send user response</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepIdx_invokeUserFunction"></a>c_EPTF_MBT_stepIdx_invokeUserFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeUserFunction:=1</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the step index of invoke user function</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_EPTF_MBT_stepName_invokeUserFunction"></a>c_EPTF_MBT_stepName_invokeUserFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_invokeUserFunction :="EPTF_MBT_stepName_invokeUserFunction"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>constant for the step name of invoke user function</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_LGen_CT"></a>EPTF_MBT_LGen_CT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_LGen_CT extends EPTF_LGenBase_CT, EPTF_Scheduler_CT, EPTF_Logging_CT, EPTF_Semaphore_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>MBT application library component type</p><h4 class=CHeading>Extensions</h4><p>EPTF_LGenBase_CT</p><p>EPTF_Scheduler_CT</p><p>EPTF_Logging_CT</p><h4 class=CHeading>Variables</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>v_EPTF_MBT_initialized</td><td class=CDLDescription><b>boolean</b> - component initialization state</td></tr><tr><td class=CDLEntry>v_EPTF_MBT_myName</td><td class=CDLDescription><b>charstring</b> - component’s self name</td></tr><tr><td class=CDLEntry>vf_EPTF_MBT_entityGroupCreated</td><td class=CDLDescription><a href="#fcb_EPTF_MBT_entityGroupCreated" class=LType id=link35 onMouseOver="ShowTip(event, 'tt29', 'link35')" onMouseOut="HideTip('tt29')">fcb_EPTF_MBT_entityGroupCreated</a> - Entity Group created callback function</td></tr><tr><td class=CDLEntry>vf_EPTF_MBT_createUserResponse</td><td class=CDLDescription><a href="#fcb_EPTF_MBT_customUserFunction" class=LType id=link36 onMouseOver="ShowTip(event, 'tt30', 'link36')" onMouseOut="HideTip('tt30')">fcb_EPTF_MBT_customUserFunction</a> - Custom User function</td></tr><tr><td class=CDLEntry>v_EPTF_MBT_myBIdx</td><td class=CDLDescription><b>integer</b> - self behavior index</td></tr><tr><td class=CDLEntry>v_EPTF_MBT_LoggingMaskId</td><td class=CDLDescription><b>integer</b> - logging mask id</td></tr></table><h4 class=CHeading>Timers</h4><p>-</p><h4 class=CHeading>Ports</h4><p>EPTF_MBT_PCO <a href="#EPTF_MBT_PortType" class=LType id=link37 onMouseOver="ShowTip(event, 'tt12', 'link37')" onMouseOut="HideTip('tt12')">EPTF_MBT_PortType</a></p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_Tester_CT"></a>EPTF_MBT_Tester_CT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_Tester_CT extends EPTF_Base_CT, EPTF_Semaphore_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>MBT tester component type</p><h4 class=CHeading>Extensions</h4><p>EPTF_LGenBase_CT</p><p>EPTF_Scheduler_CT</p><p>EPTF_Logging_CT</p><h4 class=CHeading>Variables</h4><p>-</p><h4 class=CHeading>Timers</h4><p>-</p><h4 class=CHeading>Ports</h4><p>EPTF_MBT_PCO <a href="#EPTF_MBT_PortType" class=LType id=link38 onMouseOver="ShowTip(event, 'tt12', 'link38')" onMouseOut="HideTip('tt12')">EPTF_MBT_PortType</a></p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_PortType"></a>EPTF_MBT_PortType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type port EPTF_MBT_PortType message</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Messages based port to connect the Tester comopnent to the loadGen component.</p><h4 class=CHeading>Handled messages</h4><p>inout EPTF_MBT_TestStepRequest, EPTF_MBT_TestStepResponse; inout EPTF_MBT_ConfigRequest, EPTF_MBT_ConfigResponse; inout EPTF_MBT_CommandRequest, EPTF_MBT_CommandResponse; inout EPTF_MBT_UserRequest, EPTF_MBT_UserResponse; inout EPTF_MBT_CreateFSMRequest, EPTF_MBT_CreateFSMResponse; inout EPTF_MBT_RemoveFSMRequest, EPTF_MBT_RemoveFSMResponse;</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_TestStepRequest"></a>EPTF_MBT_TestStepRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the TestStep request</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>stepname</td><td class=CDLDescription><b>charstring</b> - Name of the requested TestStep</td></tr><tr><td class=CDLEntry>stepArgs</td><td class=CDLDescription><EPTF_IntegerList> - Container for the TestStep arguments</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link39 onMouseOver="ShowTip(event, 'tt19', 'link39')" onMouseOut="HideTip('tt19')">FsmAddr</a> - Address of the FSM</td></tr><tr><td class=CDLEntry>lock</td><td class=CDLDescription>integer - After the test step was executed the semaphor with this id will be unlocked by the applib.</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_UserRequest"></a>EPTF_MBT_UserRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the User Request request</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>functionName</td><td class=CDLDescription><b>charstring</b> - Name of the requested function</td></tr><tr><td class=CDLEntry>functionArgs</td><td class=CDLDescription><EPTF_IntegerList> - Container for the function arguments</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link40 onMouseOver="ShowTip(event, 'tt19', 'link40')" onMouseOut="HideTip('tt19')">FsmAddr</a> - Address of the FSM</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_UserResponse"></a>EPTF_MBT_UserResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserResponse {}</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the UserResponse</p><h4 class=CHeading>Elements</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_CreateFSMRequest"></a>EPTF_MBT_CreateFSMRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Create FSM request</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>entityGroupName</td><td class=CDLDescription><b>charstring</b> - Name of the target entity group</td></tr><tr><td class=CDLEntry>eIdx</td><td class=CDLDescription><b>integer</b> - Index of the target entity</td></tr><tr><td class=CDLEntry>fsmName</td><td class=CDLDescription><b>charstring</b> - Name of the FSM to be activated</td></tr></table></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_CreateFSMResponse"></a>EPTF_MBT_CreateFSMResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMResponse</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Create FSM response</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>result</td><td class=CDLDescription><b>integer</b> - The result (-1 in case of error)</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link41 onMouseOver="ShowTip(event, 'tt19', 'link41')" onMouseOut="HideTip('tt19')">FsmAddr</a> - The address of the activated FSM</td></tr></table></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_RemoveFSMRequest"></a>EPTF_MBT_RemoveFSMRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_RemoveFSMRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Remove FSM request</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link42 onMouseOver="ShowTip(event, 'tt19', 'link42')" onMouseOut="HideTip('tt19')">FsmAddr</a> - The address of the FSM to be removed</td></tr></table></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_CreateFSMResponse"></a>EPTF_MBT_CreateFSMResponse</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Describes the Remove FSM response</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>result</td><td class=CDLDescription><b>integer</b> - The result (-1 in case of error)</td></tr></table></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="FsmAddr"></a>FsmAddr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record FsmAddr</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the FSM address</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>entityGroupName</td><td class=CDLDescription><b>charstring</b> - Name of the entity group</td></tr><tr><td class=CDLEntry>eIdx</td><td class=CDLDescription><b>integer</b> - entity index</td></tr><tr><td class=CDLEntry>fIdx</td><td class=CDLDescription><b>integer</b> - fsm index</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_TestStepResponse"></a>EPTF_MBT_TestStepResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepResponse</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the TestStep Response]</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bName</td><td class=CDLDescription><b>charstring</b> - Name of the behavior</td></tr><tr><td class=CDLEntry>iName</td><td class=CDLDescription><b>charstring</b> - Name of the Event</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link43 onMouseOver="ShowTip(event, 'tt19', 'link43')" onMouseOut="HideTip('tt19')">FsmAddr</a> - Address of the FSM, where the event was reported.</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_EventDispatchRequest"></a>EPTF_MBT_EventDispatchRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_EventDispatchRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Event Dispatch Request</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bName</td><td class=CDLDescription><b>charstring</b> - Name of the behavior</td></tr><tr><td class=CDLEntry>iName</td><td class=CDLDescription><b>integer</b> - Index of the Event</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription><a href="#FsmAddr" class=LType id=link44 onMouseOver="ShowTip(event, 'tt19', 'link44')" onMouseOut="HideTip('tt19')">FsmAddr</a> - Address of the FSM, where the event was reported.</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_ConfigRequest"></a>EPTF_MBT_ConfigRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the ConfigRequest</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>entityGroupName</td><td class=CDLDescription><b>charstring</b> - Name of the behavior</td></tr><tr><td class=CDLEntry>noEntities</td><td class=CDLDescription><b>integer</b> - Number of entities within the group</td></tr><tr><td class=CDLEntry>behaviors</td><td class=CDLDescription><EPTF_CharstringList> - List of behavior that should be allocate to the group</td></tr><tr><td class=CDLEntry>fsmName</td><td class=CDLDescription><b>charstring</b> - Name of the FSM to be assignedto teh entity group</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_ConfigResponse"></a>EPTF_MBT_ConfigResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigResponse {}</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the ConfigResponse</p><h4 class=CHeading>Elements</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_CommandRequest"></a>EPTF_MBT_CommandRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandRequest</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Command Request</p><h4 class=CHeading>Elements</h4><p>quit comamnd that terminates the execution</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="EPTF_MBT_CommandResponse"></a>EPTF_MBT_CommandResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandResponse</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Command Response</p><h4 class=CHeading>Elements</h4><ul><li>ready - <a href="#ReadyResponse" class=LType id=link45 onMouseOver="ShowTip(event, 'tt27', 'link45')" onMouseOut="HideTip('tt27')">ReadyResponse</a> - Ready indication</li><li>quitAck - <a href="#QuitAckResponse" class=LType id=link46 onMouseOver="ShowTip(event, 'tt28', 'link46')" onMouseOut="HideTip('tt28')">QuitAckResponse</a> - Ack for the quit command</li></ul><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="QuitCommand"></a>QuitCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitCommand {}</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Command Response</p><h4 class=CHeading>Elements</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="ReadyResponse"></a>ReadyResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record ReadyResponse {}</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Ready Response</p><h4 class=CHeading>Elements</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="QuitAckResponse"></a>QuitAckResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitAckResponse {}</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the Ready Response</p><h4 class=CHeading>Elements</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="fcb_EPTF_MBT_entityGroupCreated"></a>fcb_EPTF_MBT_entityGroupCreated</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_entityGroupCreated(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_MBT_ConfigRequest </td><td class="PParameter prettyprint " nowrap width=100%>p_req</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the function signature for entity Group created callback function</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_req</td><td class=CDLDescription><a href="#EPTF_MBT_ConfigRequest" class=LType id=link47 onMouseOver="ShowTip(event, 'tt22', 'link47')" onMouseOut="HideTip('tt22')">EPTF_MBT_ConfigRequest</a> - describes the requetsed configuration</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="fcb_EPTF_MBT_customUserFunction"></a>fcb_EPTF_MBT_customUserFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_customUserFunction (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self return boolean</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Describes the function signature for custom user function</p><h4 class=CHeading>Elements</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><EPTF_LGenBase_TestStepArgs> - describes the requetsed configuration</td></tr></table><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_myBName:="MBT_behavior"</td></tr></table></blockquote>constant for the behavior name</div></div><div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingUserRequest := 0</td></tr></table></blockquote>constant for the input index of incomming user request</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingTestStepRequest := 1</td></tr></table></blockquote>constant for the input index of incomming TesStep request</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_inputName_incomingTestStepRequest := "EPTF_MBT_inputName_incomingTestStepRequest"</td></tr></table></blockquote>constant for the input name of TEstStep Request</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeTestStep:=0</td></tr></table></blockquote>constant for the step index of invoke TestStep</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_sendUserResponse:=2</td></tr></table></blockquote>constant for the step index of send user response</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_sendUserResponse :="EPTF_MBT_stepName_sendUserResponse"</td></tr></table></blockquote>constant for the step name of send user response</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeUserFunction:=1</td></tr></table></blockquote>constant for the step index of invoke user function</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_invokeUserFunction :="EPTF_MBT_stepName_invokeUserFunction"</td></tr></table></blockquote>constant for the step name of invoke user function</div></div><div class=CToolTip id="tt10"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_LGen_CT extends EPTF_LGenBase_CT, EPTF_Scheduler_CT, EPTF_Logging_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT application library component type</div></div><div class=CToolTip id="tt11"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_Tester_CT extends EPTF_Base_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT tester component type</div></div><div class=CToolTip id="tt12"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type port EPTF_MBT_PortType message</td></tr></table></blockquote>Messages based port to connect the Tester comopnent to the loadGen component.</div></div><div class=CToolTip id="tt13"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepRequest</td></tr></table></blockquote>Describes the TestStep request</div></div><div class=CToolTip id="tt14"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserRequest</td></tr></table></blockquote>Describes the User Request request</div></div><div class=CToolTip id="tt15"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserResponse {}</td></tr></table></blockquote>Describes the UserResponse</div></div><div class=CToolTip id="tt16"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMRequest</td></tr></table></blockquote>Describes the Create FSM request</div></div><div class=CToolTip id="tt17"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMResponse</td></tr></table></blockquote>Describes the Create FSM response</div></div><div class=CToolTip id="tt18"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_RemoveFSMRequest</td></tr></table></blockquote>Describes the Remove FSM request</div></div><div class=CToolTip id="tt19"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record FsmAddr</td></tr></table></blockquote>Describes the FSM address</div></div><div class=CToolTip id="tt20"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepResponse</td></tr></table></blockquote>Describes the TestStep Response]</div></div><div class=CToolTip id="tt21"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_EventDispatchRequest</td></tr></table></blockquote>Describes the Event Dispatch Request</div></div><div class=CToolTip id="tt22"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigRequest</td></tr></table></blockquote>Describes the ConfigRequest</div></div><div class=CToolTip id="tt23"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigResponse {}</td></tr></table></blockquote>Describes the ConfigResponse</div></div><div class=CToolTip id="tt24"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandRequest</td></tr></table></blockquote>Describes the Command Request</div></div><div class=CToolTip id="tt25"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandResponse</td></tr></table></blockquote>Describes the Command Response</div></div><div class=CToolTip id="tt26"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitCommand {}</td></tr></table></blockquote>Describes the Command Response</div></div><div class=CToolTip id="tt27"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record ReadyResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><div class=CToolTip id="tt28"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitAckResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><div class=CToolTip id="tt29"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_entityGroupCreated(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_MBT_ConfigRequest </td><td class="PParameter prettyprint " nowrap width=100%>p_req</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self</td></tr></table></td></tr></table></blockquote>Describes the function signature for entity Group created callback function</div></div><div class=CToolTip id="tt30"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_customUserFunction (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self return boolean</td></tr></table></td></tr></table></blockquote>Describes the function signature for custom user function</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_initLGenFsm (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_customUserFunction </td><td class="PParameter prettyprint " nowrap width=100%>p_userFunc,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_entityGroupCreated </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupCreateFunc</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This function inits the MBT FSM</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/EPTF_MBT_LGen_Functions-ttcn.html b/apidoc/html/files/EPTF_MBT_LGen_Functions-ttcn.html
new file mode 100644
index 0000000..20911a2
--- /dev/null
+++ b/apidoc/html/files/EPTF_MBT_LGen_Functions-ttcn.html
@@ -0,0 +1,62 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>EPTF_MBT_LGen_Functions - MBT_Applib</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="EPTF_MBT_LGen_Functions"></a>EPTF_MBT_LGen_Functions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>Functions of the MBT Applib</p><h4 class=CHeading>Module depends on</h4><ul><li><a href="EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_Definitions" class=LFile id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">EPTF_MBT_LGen_Definitions</a></li><li><EPTF_CLL_Logging_Definitions></li><li><EPTF_CLL_Logging_Functions></li><li><EPTF_CLL_Common_Definitions></li><li><EPTF_CLL_Variable_Definitions></li><li><EPTF_CLL_Variable_Functions></li><li><EPTF_CLL_Scheduler_Definitions></li><li><EPTF_CLL_Base_Definitions></li><li><EPTF_CLL_Base_Functions></li><li><EPTF_CLL_LGenBase_ConfigDefinitions></li><li><EPTF_CLL_LGenBase_ConfigFunctions></li><li><EPTF_CLL_LGenBase_Functions></li><li><EPTF_CLL_LGenBase_Definitions></li><li><EPTF_CLL_LGenBase_EventHandlingFunctions></li><li><EPTF_CLL_LGenBase_StepFunctions></li><li><EPTF_CLL_RBTScheduler_Functions></li><li><EPTF_CLL_Semaphore_Functions></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#EPTF_MBT_LGen_Functions" >EPTF_MBT_LGen_Functions</a></td><td class=SDescription>Functions of the MBT Applib</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_init" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_EPTF_MBT_init</a></td><td class=SDescription>Function to initialize MBT behaviour</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_cleanup_CT" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_EPTF_MBT_cleanup_CT</a></td><td class=SDescription>Cleanup function of the MBT Applib</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_declareEvents" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_EPTF_MBT_declareEvents</a></td><td class=SDescription>Register the EVents used by the MBT AppLib</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_declareTestSteps" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_EPTF_MBT_declareTestSteps</a></td><td class=SDescription>Register the TestSteps used by the MBT AppLib</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_bindEntity" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_EPTF_MBT_bindEntity</a></td><td class=SDescription>Bind function of the MBT AppLib</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_unbindEntity" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_EPTF_MBT_unbindEntity</a></td><td class=SDescription>Unbind function of the MBT AppLib</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_resetEntity" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_EPTF_MBT_resetEntity</a></td><td class=SDescription>Reset function of the MBT AppLib</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_TestStep_invokeTestStep" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_EPTF_MBT_TestStep_invokeTestStep</a></td><td class=SDescription>General Purpose wrapper TestStep to select the Proper TestStep based on its actual parameters and invokes it. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_TestStep_sendUserResponse" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_EPTF_MBT_TestStep_sendUserResponse</a></td><td class=SDescription>TestStep function to generate the User response,. </td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_TestStep_invokeUserFunction" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_EPTF_MBT_TestStep_invokeUserFunction</a></td><td class=SDescription>TestStep function to invoke user specific function</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_Listener_catchEntityEvents" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_EPTF_MBT_Listener_catchEntityEvents</a></td><td class=SDescription>This is a listener to catch all entity level events. </td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_Listener_catchGenericEvents" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">f_EPTF_MBT_Listener_catchGenericEvents</a></td><td class=SDescription>This is a listener to catch all generic level events. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#as_EPTF_MBT_PCO_Handler" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">as_EPTF_MBT_PCO_Handler</a></td><td class=SDescription>EventHandler of the MBT AppLib</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_EPTF_MBT_initLGenFsm" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">f_EPTF_MBT_initLGenFsm</a></td><td class=SDescription>This function inits the MBT FSM</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_EPTF_MBT_Tester_init" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">f_EPTF_MBT_Tester_init</a></td><td class=SDescription>This function inits the EPTF_MBT_Tester_CT</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_MBT_execute" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">f_MBT_execute</a></td><td class=SDescription>This function executes a test step on specifid FSM (which must run the FSM_MBT) FSM. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_MBT_waitFor" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">f_MBT_waitFor</a></td><td class=SDescription>This function waits for specified EPTF event to arrive. </td></tr><tr class="SFunction"><td class=SEntry><a href="#f_MBT_dispatch" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">f_MBT_dispatch</a></td><td class=SDescription>This function sends an EPTF event to an FSM.</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_MBT_activateFsm" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">f_MBT_activateFsm</a></td><td class=SDescription>This function activates an FSM on an entity.</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_convert_FsmAddr2TestStepArgs" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">f_convert_FsmAddr2TestStepArgs</a></td><td class=SDescription>Utility function to convert an FsmAddr address to a TestStepArgs value.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_init"></a>f_EPTF_MBT_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_EPTF_MBT_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_selfName,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_selfId,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_entityNamePrefix,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in integer </td><td class="PType prettyprint " nowrap>pl_numEntities </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 0,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextBinder_FT </td><td class="PType prettyprint " nowrap>pl_bind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_bindEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_reset </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_resetEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_unbind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_unbindEntity)</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Function to initialize MBT behaviour</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_selfName</td><td class=CDLDescription><b>in</b> <b>charstring</b> - the components self name</td></tr><tr><td class=CDLEntry>pl_selfId</td><td class=CDLDescription><b>in</b> <b>integer</b> - component self id</td></tr><tr><td class=CDLEntry>pl_entityNamePrefix</td><td class=CDLDescription><b>in</b> <b>charstring</b> - entity name prefix</td></tr><tr><td class=CDLEntry>pl_numEntities</td><td class=CDLDescription><b>in</b> <b>integer</b> - number of entities</td></tr><tr><td class=CDLEntry>pl_bind</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_BehaviorContextBinder_FT> - behaviour context bind callback function</td></tr><tr><td class=CDLEntry>pl_reset</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_BehaviorContextHandler_FT> - behaviour context reset callback function</td></tr><tr><td class=CDLEntry>pl_unbind</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_BehaviorContextHandler_FT> - behaviour context unbind callback function</td></tr></table><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_cleanup_CT"></a>f_EPTF_MBT_cleanup_CT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_cleanup_CT() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Cleanup function of the MBT Applib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>Unmaps the TestPorts from teh System</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_declareEvents"></a>f_EPTF_MBT_declareEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareEvents() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Register the EVents used by the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_declareTestSteps"></a>f_EPTF_MBT_declareTestSteps</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareTestSteps() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Register the TestSteps used by the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_bindEntity"></a>f_EPTF_MBT_bindEntity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_bindEntity(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_eIdx</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT return EPTF_IntegerList</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Bind function of the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_unbindEntity"></a>f_EPTF_MBT_unbindEntity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_unbindEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Unbind function of the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_resetEntity"></a>f_EPTF_MBT_resetEntity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_resetEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Reset function of the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_TestStep_invokeTestStep"></a>f_EPTF_MBT_TestStep_invokeTestStep</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeTestStep(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>General Purpose wrapper TestStep to select the Proper TestStep based on its actual parameters and invokes it. Otherwise generates a log&console statement</p><h4 class=CHeading>Parameters</h4><p>in EPTF_LGenBase_TestStepArgs pl_ptr</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_TestStep_sendUserResponse"></a>f_EPTF_MBT_TestStep_sendUserResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_sendUserResponse(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>TestStep function to generate the User response,. It shall be invoked in case of the unhandled events (FSM description) based on the generated event it sends back a response towards the Tester component</p><h4 class=CHeading>Parameters</h4><p>in EPTF_LGenBase_TestStepArgs pl_ptr</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_TestStep_invokeUserFunction"></a>f_EPTF_MBT_TestStep_invokeUserFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeUserFunction(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>TestStep function to invoke user specific function</p><h4 class=CHeading>Parameters</h4><p>in EPTF_LGenBase_TestStepArgs pl_ptr</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>It seraches for the user declared function basedon its name (stored in a component variable) and invokes it.)</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_Listener_catchEntityEvents"></a>f_EPTF_MBT_Listener_catchEntityEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchEntityEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This is a listener to catch all entity level events. Because unhandled events in the FSM descriptor can catch only FSM level events.</p><h4 class=CHeading>Parameters</h4><p>in EPTF_LGenBase_ReportedEventDescriptor pl_event in EPTF_IntegerList pl_listenerArgs</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_Listener_catchGenericEvents"></a>f_EPTF_MBT_Listener_catchGenericEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchGenericEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This is a listener to catch all generic level events. Because unhandled events in the FSM descriptor can catch only FSM level events.</p><h4 class=CHeading>Parameters</h4><p>in EPTF_LGenBase_ReportedEventDescriptor pl_event in EPTF_IntegerList pl_listenerArgs</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="as_EPTF_MBT_PCO_Handler"></a>as_EPTF_MBT_PCO_Handler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_EPTF_MBT_PCO_Handler() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>EventHandler of the MBT AppLib</p><h4 class=CHeading>Parameters</h4><p>-</p><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>Handles the following cases In case of an incomming TestStep Request dispatches the c_EPTF_MBT_inputIdx_incomingTestStepRequest event incomming Config Request configure the LoadGens creates the entity goups activate the fsms...etc incomming Command Request executes the requested command - incomming User Request dispatches the c_EPTF_MBT_inputIdx_incomingUserRequest event</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_initLGenFsm"></a>f_EPTF_MBT_initLGenFsm</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_initLGenFsm (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_customUserFunction </td><td class="PParameter prettyprint " nowrap width=100%>p_userFunc,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_entityGroupCreated </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupCreateFunc</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function inits the MBT FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>in fcb_EPTF_MBT_customUserFunction p_userFunc</td><td class=CDLDescription>sets the callback that shall create the UserResponses</td></tr><tr><td class=CDLEntry>in fcb_EPTF_MBT_entityGroupCreated p_entityGroupCreateFunc</td><td class=CDLDescription>sets the callback to handle entity group created</td></tr></table><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_EPTF_MBT_Tester_init"></a>f_EPTF_MBT_Tester_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_Tester_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function inits the EPTF_MBT_Tester_CT</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>charstring</b> pl_selfName - local internal name for the MBT Tester component</li></ul><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_MBT_execute"></a>f_MBT_execute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_execute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_IntegerList </td><td class="PType prettyprint " nowrap>p_params </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> {},</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in boolean </td><td class="PType prettyprint " nowrap>p_lock </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> true</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function executes a test step on specifid FSM (which must run the FSM_MBT) FSM. It is possible to make the function blocking until the test stepis executed by setting the p_lock parameter to true, but it will only work in case the component extends the EPTF_MBT_Tester_CT and EPTF_MBT_LGen_CT as well!</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>charstring</b> p_name - name of the test step</li><li><b>in</b> <a href="EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" class=LType id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">FsmAddr</a> p_addr - address of the FSM</li><li><b>in</b> <EPTF_IntegerList> - p_params - parameters for the test step</li><li><b>in</b> <b>boolean</b> - p_lock - Enables/disables waiting for the test step to finish executing.</li></ul><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_MBT_waitFor"></a>f_MBT_waitFor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_waitFor(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_behavior,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in float </td><td class="PType prettyprint " nowrap>p_timeout </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 30.0</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT return boolean</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function waits for specified EPTF event to arrive. Please note, that until the waiting time runs out all the other incoming events are dropped.</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>charstring</b> p_behavior - behavior name of the expected event</li><li><b>in</b> <b>charstring</b> p_name - name of the expected event</li><li><b>in</b> <a href="EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" class=LType id=link23 onMouseOver="ShowTip(event, 'tt22', 'link23')" onMouseOut="HideTip('tt22')">FsmAddr</a> - p_addr - the event must arrive from this FSM.</li><li><b>in</b> <b>float</b> - p_timeout - Maximum waiting time for the expected event</li></ul><h4 class=CHeading>Return Value</h4><ul><li><b>boolean</b> - True if the expected emssage was caught.</li></ul><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_MBT_dispatch"></a>f_MBT_dispatch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_dispatch(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_bName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_iIndex,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function sends an EPTF event to an FSM.</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>charstring</b> p_bName - behavior name of the event</li><li><b>in</b> <b>integer</b> p_iIndex - index of the event</li><li><b>in</b> <a href="EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" class=LType id=link24 onMouseOver="ShowTip(event, 'tt22', 'link24')" onMouseOut="HideTip('tt22')">FsmAddr</a> - p_addr - the event will be sent to this FSM.</li></ul><h4 class=CHeading>Return Value</h4><p>-</p><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_MBT_activateFsm"></a>f_MBT_activateFsm</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_activateFsm(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_eIdx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmAddr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT return integer</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>This function activates an FSM on an entity.</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>charstring</b> p_entityGroupName - entity group name of the entity</li><li><b>in</b> <b>integer</b> p_eIdx - index of the entity</li><li><b>in</b> <b>charstring</b> - p_fsmName - the event will be sent to this FSM.</li><li><b>out</b> <b>FsmAddr</b> - p_fsmAddr - The address of the activated FSM if succesful</li></ul><h4 class=CHeading>Return Value</h4><ul><li><b>integer</b> - the result of the FSM activation (-1 if unsuccesful)</li></ul><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_convert_FsmAddr2TestStepArgs"></a>f_convert_FsmAddr2TestStepArgs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_convert_FsmAddr2TestStepArgs(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) return EPTF_LGenBase_TestStepArgs</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Utility function to convert an FsmAddr address to a TestStepArgs value.</p><h4 class=CHeading>Parameters</h4><ul><li><b>in</b> <b>FsmAddr</b> - p_fsmAddr - An FSM address</li></ul><h4 class=CHeading>Return Value</h4><ul><li><EPTF_LGenBase_TestStepArgs> - the corresponding TestStapArgs value</li></ul><h4 class=CHeading>Errors</h4><p>-</p><h4 class=CHeading>Detailed Comments</h4><p>-</p></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_EPTF_MBT_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_selfName,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_selfId,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_entityNamePrefix,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in integer </td><td class="PType prettyprint " nowrap>pl_numEntities </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 0,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextBinder_FT </td><td class="PType prettyprint " nowrap>pl_bind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_bindEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_reset </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_resetEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_unbind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_unbindEntity)</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Function to initialize MBT behaviour</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_cleanup_CT() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Cleanup function of the MBT Applib</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareEvents() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the EVents used by the MBT AppLib</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareTestSteps() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the TestSteps used by the MBT AppLib</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_bindEntity(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_eIdx</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT return EPTF_IntegerList</td></tr></table></td></tr></table></blockquote>Bind function of the MBT AppLib</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_unbindEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Unbind function of the MBT AppLib</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_resetEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Reset function of the MBT AppLib</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeTestStep(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>General Purpose wrapper TestStep to select the Proper TestStep based on its actual parameters and invokes it. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_sendUserResponse(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to generate the User response,. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeUserFunction(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to invoke user specific function</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchEntityEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all entity level events. </div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchGenericEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all generic level events. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_EPTF_MBT_PCO_Handler() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>EventHandler of the MBT AppLib</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_initLGenFsm (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_customUserFunction </td><td class="PParameter prettyprint " nowrap width=100%>p_userFunc,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_entityGroupCreated </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupCreateFunc</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This function inits the MBT FSM</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_Tester_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function inits the EPTF_MBT_Tester_CT</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_execute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_IntegerList </td><td class="PType prettyprint " nowrap>p_params </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> {},</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in boolean </td><td class="PType prettyprint " nowrap>p_lock </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> true</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function executes a test step on specifid FSM (which must run the FSM_MBT) FSM. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_waitFor(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_behavior,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in float </td><td class="PType prettyprint " nowrap>p_timeout </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 30.0</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT return boolean</td></tr></table></td></tr></table></blockquote>This function waits for specified EPTF event to arrive. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_dispatch(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_bName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_iIndex,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function sends an EPTF event to an FSM.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_activateFsm(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_eIdx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmAddr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT return integer</td></tr></table></td></tr></table></blockquote>This function activates an FSM on an entity.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_convert_FsmAddr2TestStepArgs(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) return EPTF_LGenBase_TestStepArgs</td></tr></table></td></tr></table></blockquote>Utility function to convert an FsmAddr address to a TestStepArgs value.</div></div><div class=CToolTip id="tt21"><div class=CFile>Type definitions for the MBT Applib</div></div><div class=CToolTip id="tt22"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record FsmAddr</td></tr></table></blockquote>Describes the FSM address</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index.html b/apidoc/html/index.html
new file mode 100644
index 0000000..5b2b40e
--- /dev/null
+++ b/apidoc/html/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib</title></head>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+<frameset cols="185,*"><frame name=Menu src="menu.html"><frame name=Content src="files/EPTF_MBT_LGen_Definitions-ttcn.html"></frameset><noframes>This documentation was designed for use with frames. However, you can still use it by <a href="menu.html">starting from the menu page</a>.<script language=JavaScript><!--
+location.href="menu.html";
+// --></script></noframes></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Constants.html b/apidoc/html/index/Constants.html
new file mode 100644
index 0000000..d5f5799
--- /dev/null
+++ b/apidoc/html/index/Constants.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib - Constant Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · B · <a href="#C">C</a> · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingTestStepRequest" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>c_EPTF_MBT_inputIdx_incomingTestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingUserRequest" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>c_EPTF_MBT_inputIdx_incomingUserRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputName_incomingTestStepRequest" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>c_EPTF_MBT_inputName_incomingTestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_myBName" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>c_EPTF_MBT_myBName</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeTestStep" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>c_EPTF_MBT_stepIdx_invokeTestStep</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeUserFunction" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>c_EPTF_MBT_stepIdx_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_sendUserResponse" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>c_EPTF_MBT_stepIdx_sendUserResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_invokeUserFunction" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>c_EPTF_MBT_stepName_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_sendUserResponse" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>c_EPTF_MBT_stepName_sendUserResponse</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingTestStepRequest := 1</td></tr></table></blockquote>constant for the input index of incomming TesStep request</div></div><div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingUserRequest := 0</td></tr></table></blockquote>constant for the input index of incomming user request</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_inputName_incomingTestStepRequest := "EPTF_MBT_inputName_incomingTestStepRequest"</td></tr></table></blockquote>constant for the input name of TEstStep Request</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_myBName:="MBT_behavior"</td></tr></table></blockquote>constant for the behavior name</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeTestStep:=0</td></tr></table></blockquote>constant for the step index of invoke TestStep</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeUserFunction:=1</td></tr></table></blockquote>constant for the step index of invoke user function</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_sendUserResponse:=2</td></tr></table></blockquote>constant for the step index of send user response</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_invokeUserFunction :="EPTF_MBT_stepName_invokeUserFunction"</td></tr></table></blockquote>constant for the step name of invoke user function</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_sendUserResponse :="EPTF_MBT_stepName_sendUserResponse"</td></tr></table></blockquote>constant for the step name of send user response</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Files.html b/apidoc/html/index/Files.html
new file mode 100644
index 0000000..b5b1a7a
--- /dev/null
+++ b/apidoc/html/index/Files.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib - File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · <a href="#E">E</a> · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_Definitions" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>EPTF_MBT_LGen_Definitions</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#EPTF_MBT_LGen_Functions" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>EPTF_MBT_LGen_Functions</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFile>Type definitions for the MBT Applib</div></div><div class=CToolTip id="tt2"><div class=CFile>Functions of the MBT Applib</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Functions.html b/apidoc/html/index/Functions.html
new file mode 100644
index 0000000..2f2715f
--- /dev/null
+++ b/apidoc/html/index/Functions.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib - Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · C · D · E · <a href="#F">F</a> · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#as_EPTF_MBT_PCO_Handler" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>as_EPTF_MBT_PCO_Handler</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_convert_FsmAddr2TestStepArgs" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>f_convert_FsmAddr2TestStepArgs</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_bindEntity" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>f_EPTF_MBT_bindEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_cleanup_CT" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>f_EPTF_MBT_cleanup_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareEvents" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>f_EPTF_MBT_declareEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareTestSteps" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>f_EPTF_MBT_declareTestSteps</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_init" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>f_EPTF_MBT_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_initLGenFsm" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>f_EPTF_MBT_initLGenFsm</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchEntityEvents" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>f_EPTF_MBT_Listener_catchEntityEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchGenericEvents" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>f_EPTF_MBT_Listener_catchGenericEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_resetEntity" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>f_EPTF_MBT_resetEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Tester_init" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>f_EPTF_MBT_Tester_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeTestStep" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>f_EPTF_MBT_TestStep_invokeTestStep</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeUserFunction" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>f_EPTF_MBT_TestStep_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_sendUserResponse" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>f_EPTF_MBT_TestStep_sendUserResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_unbindEntity" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>f_EPTF_MBT_unbindEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_activateFsm" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>f_MBT_activateFsm</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_dispatch" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>f_MBT_dispatch</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_execute" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>f_MBT_execute</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_waitFor" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>f_MBT_waitFor</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_EPTF_MBT_PCO_Handler() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>EventHandler of the MBT AppLib</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_convert_FsmAddr2TestStepArgs(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) return EPTF_LGenBase_TestStepArgs</td></tr></table></td></tr></table></blockquote>Utility function to convert an FsmAddr address to a TestStepArgs value.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_bindEntity(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_eIdx</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT return EPTF_IntegerList</td></tr></table></td></tr></table></blockquote>Bind function of the MBT AppLib</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_cleanup_CT() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Cleanup function of the MBT Applib</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareEvents() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the EVents used by the MBT AppLib</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareTestSteps() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the TestSteps used by the MBT AppLib</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_EPTF_MBT_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_selfName,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_selfId,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_entityNamePrefix,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in integer </td><td class="PType prettyprint " nowrap>pl_numEntities </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 0,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextBinder_FT </td><td class="PType prettyprint " nowrap>pl_bind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_bindEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_reset </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_resetEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_unbind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_unbindEntity)</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Function to initialize MBT behaviour</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_initLGenFsm (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_customUserFunction </td><td class="PParameter prettyprint " nowrap width=100%>p_userFunc,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_entityGroupCreated </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupCreateFunc</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This function inits the MBT FSM</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchEntityEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all entity level events. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchGenericEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all generic level events. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_resetEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Reset function of the MBT AppLib</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_Tester_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function inits the EPTF_MBT_Tester_CT</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeTestStep(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>General Purpose wrapper TestStep to select the Proper TestStep based on its actual parameters and invokes it. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeUserFunction(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to invoke user specific function</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_sendUserResponse(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to generate the User response,. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_unbindEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Unbind function of the MBT AppLib</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_activateFsm(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_eIdx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmAddr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT return integer</td></tr></table></td></tr></table></blockquote>This function activates an FSM on an entity.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_dispatch(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_bName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_iIndex,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function sends an EPTF event to an FSM.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_execute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_IntegerList </td><td class="PType prettyprint " nowrap>p_params </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> {},</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in boolean </td><td class="PType prettyprint " nowrap>p_lock </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> true</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function executes a test step on specifid FSM (which must run the FSM_MBT) FSM. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_waitFor(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_behavior,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in float </td><td class="PType prettyprint " nowrap>p_timeout </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 30.0</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT return boolean</td></tr></table></td></tr></table></blockquote>This function waits for specified EPTF event to arrive. </div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/General.html b/apidoc/html/index/General.html
new file mode 100644
index 0000000..cf7b1a7
--- /dev/null
+++ b/apidoc/html/index/General.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib - Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · <a href="#E">E</a> · <a href="#F">F</a> · G · H · I · J · K · L · M · N · O · P · <a href="#Q">Q</a> · <a href="#R">R</a> · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#as_EPTF_MBT_PCO_Handler" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>as_EPTF_MBT_PCO_Handler</a></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingTestStepRequest" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>c_EPTF_MBT_inputIdx_incomingTestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingUserRequest" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>c_EPTF_MBT_inputIdx_incomingUserRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputName_incomingTestStepRequest" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>c_EPTF_MBT_inputName_incomingTestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_myBName" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>c_EPTF_MBT_myBName</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeTestStep" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>c_EPTF_MBT_stepIdx_invokeTestStep</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeUserFunction" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>c_EPTF_MBT_stepIdx_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_sendUserResponse" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>c_EPTF_MBT_stepIdx_sendUserResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_invokeUserFunction" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>c_EPTF_MBT_stepName_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_sendUserResponse" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>c_EPTF_MBT_stepName_sendUserResponse</a></td></tr><tr><td class=IHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandRequest" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>EPTF_MBT_CommandRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandResponse" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>EPTF_MBT_CommandResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigRequest" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>EPTF_MBT_ConfigRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigResponse" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>EPTF_MBT_ConfigResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMRequest" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>EPTF_MBT_CreateFSMRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMResponse" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>EPTF_MBT_CreateFSMResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_EventDispatchRequest" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>EPTF_MBT_EventDispatchRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_CT" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>EPTF_MBT_LGen_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_Definitions" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>EPTF_MBT_LGen_Definitions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#EPTF_MBT_LGen_Functions" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>EPTF_MBT_LGen_Functions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_PortType" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>EPTF_MBT_PortType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_RemoveFSMRequest" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>EPTF_MBT_RemoveFSMRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_Tester_CT" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>EPTF_MBT_Tester_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepRequest" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>EPTF_MBT_TestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepResponse" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>EPTF_MBT_TestStepResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserRequest" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>EPTF_MBT_UserRequest</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserResponse" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>EPTF_MBT_UserResponse</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_convert_FsmAddr2TestStepArgs" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>f_convert_FsmAddr2TestStepArgs</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_bindEntity" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>f_EPTF_MBT_bindEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_cleanup_CT" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>f_EPTF_MBT_cleanup_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareEvents" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>f_EPTF_MBT_declareEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareTestSteps" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>f_EPTF_MBT_declareTestSteps</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_init" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>f_EPTF_MBT_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_initLGenFsm" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>f_EPTF_MBT_initLGenFsm</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchEntityEvents" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>f_EPTF_MBT_Listener_catchEntityEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchGenericEvents" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>f_EPTF_MBT_Listener_catchGenericEvents</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_resetEntity" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>f_EPTF_MBT_resetEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Tester_init" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>f_EPTF_MBT_Tester_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeTestStep" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>f_EPTF_MBT_TestStep_invokeTestStep</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeUserFunction" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>f_EPTF_MBT_TestStep_invokeUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_sendUserResponse" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>f_EPTF_MBT_TestStep_sendUserResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_unbindEntity" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>f_EPTF_MBT_unbindEntity</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_activateFsm" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=ISymbol>f_MBT_activateFsm</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_dispatch" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=ISymbol>f_MBT_dispatch</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_execute" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>f_MBT_execute</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_waitFor" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>f_MBT_waitFor</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_customUserFunction" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>fcb_EPTF_MBT_customUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_entityGroupCreated" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>fcb_EPTF_MBT_entityGroupCreated</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>FsmAddr</a></td></tr><tr><td class=IHeading><a name="Q"></a>Q</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitAckResponse" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>QuitAckResponse</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitCommand" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>QuitCommand</a></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#ReadyResponse" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>ReadyResponse</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_EPTF_MBT_PCO_Handler() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>EventHandler of the MBT AppLib</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingTestStepRequest := 1</td></tr></table></blockquote>constant for the input index of incomming TesStep request</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_inputIdx_incomingUserRequest := 0</td></tr></table></blockquote>constant for the input index of incomming user request</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_inputName_incomingTestStepRequest := "EPTF_MBT_inputName_incomingTestStepRequest"</td></tr></table></blockquote>constant for the input name of TEstStep Request</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_myBName:="MBT_behavior"</td></tr></table></blockquote>constant for the behavior name</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeTestStep:=0</td></tr></table></blockquote>constant for the step index of invoke TestStep</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_invokeUserFunction:=1</td></tr></table></blockquote>constant for the step index of invoke user function</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const integer c_EPTF_MBT_stepIdx_sendUserResponse:=2</td></tr></table></blockquote>constant for the step index of send user response</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_invokeUserFunction :="EPTF_MBT_stepName_invokeUserFunction"</td></tr></table></blockquote>constant for the step name of invoke user function</div></div><div class=CToolTip id="tt10"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_EPTF_MBT_stepName_sendUserResponse :="EPTF_MBT_stepName_sendUserResponse"</td></tr></table></blockquote>constant for the step name of send user response</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt11"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandRequest</td></tr></table></blockquote>Describes the Command Request</div></div><div class=CToolTip id="tt12"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandResponse</td></tr></table></blockquote>Describes the Command Response</div></div><div class=CToolTip id="tt13"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigRequest</td></tr></table></blockquote>Describes the ConfigRequest</div></div><div class=CToolTip id="tt14"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigResponse {}</td></tr></table></blockquote>Describes the ConfigResponse</div></div><div class=CToolTip id="tt15"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMRequest</td></tr></table></blockquote>Describes the Create FSM request</div></div><div class=CToolTip id="tt16"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMResponse</td></tr></table></blockquote>Describes the Create FSM response</div></div><div class=CToolTip id="tt17"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_EventDispatchRequest</td></tr></table></blockquote>Describes the Event Dispatch Request</div></div><div class=CToolTip id="tt18"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_LGen_CT extends EPTF_LGenBase_CT, EPTF_Scheduler_CT, EPTF_Logging_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT application library component type</div></div><div class=CToolTip id="tt19"><div class=CFile>Type definitions for the MBT Applib</div></div><div class=CToolTip id="tt20"><div class=CFile>Functions of the MBT Applib</div></div><div class=CToolTip id="tt21"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type port EPTF_MBT_PortType message</td></tr></table></blockquote>Messages based port to connect the Tester comopnent to the loadGen component.</div></div><div class=CToolTip id="tt22"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_RemoveFSMRequest</td></tr></table></blockquote>Describes the Remove FSM request</div></div><div class=CToolTip id="tt23"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_Tester_CT extends EPTF_Base_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT tester component type</div></div><div class=CToolTip id="tt24"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepRequest</td></tr></table></blockquote>Describes the TestStep request</div></div><div class=CToolTip id="tt25"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepResponse</td></tr></table></blockquote>Describes the TestStep Response]</div></div><div class=CToolTip id="tt26"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserRequest</td></tr></table></blockquote>Describes the User Request request</div></div><div class=CToolTip id="tt27"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserResponse {}</td></tr></table></blockquote>Describes the UserResponse</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_convert_FsmAddr2TestStepArgs(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) return EPTF_LGenBase_TestStepArgs</td></tr></table></td></tr></table></blockquote>Utility function to convert an FsmAddr address to a TestStepArgs value.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_bindEntity(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_eIdx</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT return EPTF_IntegerList</td></tr></table></td></tr></table></blockquote>Bind function of the MBT AppLib</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_cleanup_CT() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Cleanup function of the MBT Applib</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareEvents() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the EVents used by the MBT AppLib</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_EPTF_MBT_declareTestSteps() runs on EPTF_MBT_LGen_CT</td></tr></table></blockquote>Register the TestSteps used by the MBT AppLib</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_EPTF_MBT_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_selfName,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_selfId,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>pl_entityNamePrefix,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in integer </td><td class="PType prettyprint " nowrap>pl_numEntities </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 0,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextBinder_FT </td><td class="PType prettyprint " nowrap>pl_bind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_bindEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_reset </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_resetEntity),</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_LGenBase_BehaviorContextHandler_FT </td><td class="PType prettyprint " nowrap>pl_unbind </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> refers(f_EPTF_MBT_unbindEntity)</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Function to initialize MBT behaviour</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_initLGenFsm (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_customUserFunction </td><td class="PParameter prettyprint " nowrap width=100%>p_userFunc,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>fcb_EPTF_MBT_entityGroupCreated </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupCreateFunc</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This function inits the MBT FSM</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchEntityEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all entity level events. </div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=3>function f_EPTF_MBT_Listener_catchGenericEvents(</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_ReportedEventDescriptor </td><td class="PParameter prettyprint " nowrap width=100%>pl_event,</td></tr><tr><td> </td><td class="PType prettyprint " nowrap>EPTF_IntegerList </td><td class="PParameter prettyprint " nowrap width=100%>pl_listenerArgs</td></tr><tr><td class="PAfterParameters prettyprint "colspan=3>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>This is a listener to catch all generic level events. </div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_resetEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Reset function of the MBT AppLib</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_Tester_init (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function inits the EPTF_MBT_Tester_CT</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeTestStep(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>General Purpose wrapper TestStep to select the Proper TestStep based on its actual parameters and invokes it. </div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_invokeUserFunction(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to invoke user specific function</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_EPTF_MBT_TestStep_sendUserResponse(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>TestStep function to generate the User response,. </div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_EPTF_MBT_unbindEntity(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap>pl_eIdx</td><td class="PAfterParameters prettyprint "nowrap>) runs on EPTF_MBT_LGen_CT</td></tr></table></td></tr></table></blockquote>Unbind function of the MBT AppLib</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_activateFsm(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_entityGroupName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_eIdx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_fsmAddr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT return integer</td></tr></table></td></tr></table></blockquote>This function activates an FSM on an entity.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_MBT_dispatch(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>p_bName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_iIndex,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap width=100%>p_addr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function sends an EPTF event to an FSM.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_execute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in EPTF_IntegerList </td><td class="PType prettyprint " nowrap>p_params </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> {},</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in boolean </td><td class="PType prettyprint " nowrap>p_lock </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> true</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT</td></tr></table></td></tr></table></blockquote>This function executes a test step on specifid FSM (which must run the FSM_MBT) FSM. </div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=6>function f_MBT_waitFor(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_behavior,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_name,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in template EPTF_MBT_LGen_Definitions.</td><td class="PType prettyprint " nowrap>FsmAddr </td><td class="PParameter prettyprint " nowrap>p_addr,</td><td class="PDefaultValuePrefix prettyprint "> </td><td class="PDefaultValue prettyprint " width=100%></td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in float </td><td class="PType prettyprint " nowrap>p_timeout </td><td class="PParameter prettyprint " nowrap>:</td><td class="PDefaultValuePrefix prettyprint "> = </td><td class="PDefaultValue prettyprint " width=100%> 30.0</td></tr><tr><td class="PAfterParameters prettyprint "colspan=6>) runs on EPTF_MBT_Tester_CT return boolean</td></tr></table></td></tr></table></blockquote>This function waits for specified EPTF event to arrive. </div></div><div class=CToolTip id="tt47"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_customUserFunction (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self return boolean</td></tr></table></td></tr></table></blockquote>Describes the function signature for custom user function</div></div><div class=CToolTip id="tt48"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_entityGroupCreated(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_MBT_ConfigRequest </td><td class="PParameter prettyprint " nowrap width=100%>p_req</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self</td></tr></table></td></tr></table></blockquote>Describes the function signature for entity Group created callback function</div></div><div class=CToolTip id="tt49"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record FsmAddr</td></tr></table></blockquote>Describes the FSM address</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt50"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitAckResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><div class=CToolTip id="tt51"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitCommand {}</td></tr></table></blockquote>Describes the Command Response</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt52"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record ReadyResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Types.html b/apidoc/html/index/Types.html
new file mode 100644
index 0000000..6dd1bf2
--- /dev/null
+++ b/apidoc/html/index/Types.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MBT_Applib - Type Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Type Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · <a href="#E">E</a> · <a href="#F">F</a> · G · H · I · J · K · L · M · N · O · P · <a href="#Q">Q</a> · <a href="#R">R</a> · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandRequest" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>EPTF_MBT_CommandRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandResponse" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>EPTF_MBT_CommandResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigRequest" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>EPTF_MBT_ConfigRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigResponse" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>EPTF_MBT_ConfigResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMRequest" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>EPTF_MBT_CreateFSMRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMResponse" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>EPTF_MBT_CreateFSMResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_EventDispatchRequest" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>EPTF_MBT_EventDispatchRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_CT" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>EPTF_MBT_LGen_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_PortType" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>EPTF_MBT_PortType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_RemoveFSMRequest" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>EPTF_MBT_RemoveFSMRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_Tester_CT" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>EPTF_MBT_Tester_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepRequest" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>EPTF_MBT_TestStepRequest</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepResponse" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>EPTF_MBT_TestStepResponse</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserRequest" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>EPTF_MBT_UserRequest</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserResponse" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>EPTF_MBT_UserResponse</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_customUserFunction" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>fcb_EPTF_MBT_customUserFunction</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_entityGroupCreated" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>fcb_EPTF_MBT_entityGroupCreated</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>FsmAddr</a></td></tr><tr><td class=IHeading><a name="Q"></a>Q</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitAckResponse" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>QuitAckResponse</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitCommand" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>QuitCommand</a></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#ReadyResponse" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>ReadyResponse</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandRequest</td></tr></table></blockquote>Describes the Command Request</div></div><div class=CToolTip id="tt2"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type union EPTF_MBT_CommandResponse</td></tr></table></blockquote>Describes the Command Response</div></div><div class=CToolTip id="tt3"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigRequest</td></tr></table></blockquote>Describes the ConfigRequest</div></div><div class=CToolTip id="tt4"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_ConfigResponse {}</td></tr></table></blockquote>Describes the ConfigResponse</div></div><div class=CToolTip id="tt5"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMRequest</td></tr></table></blockquote>Describes the Create FSM request</div></div><div class=CToolTip id="tt6"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_CreateFSMResponse</td></tr></table></blockquote>Describes the Create FSM response</div></div><div class=CToolTip id="tt7"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_EventDispatchRequest</td></tr></table></blockquote>Describes the Event Dispatch Request</div></div><div class=CToolTip id="tt8"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_LGen_CT extends EPTF_LGenBase_CT, EPTF_Scheduler_CT, EPTF_Logging_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT application library component type</div></div><div class=CToolTip id="tt9"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type port EPTF_MBT_PortType message</td></tr></table></blockquote>Messages based port to connect the Tester comopnent to the loadGen component.</div></div><div class=CToolTip id="tt10"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_RemoveFSMRequest</td></tr></table></blockquote>Describes the Remove FSM request</div></div><div class=CToolTip id="tt11"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component EPTF_MBT_Tester_CT extends EPTF_Base_CT, EPTF_Semaphore_CT</td></tr></table></blockquote>MBT tester component type</div></div><div class=CToolTip id="tt12"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepRequest</td></tr></table></blockquote>Describes the TestStep request</div></div><div class=CToolTip id="tt13"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_TestStepResponse</td></tr></table></blockquote>Describes the TestStep Response]</div></div><div class=CToolTip id="tt14"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserRequest</td></tr></table></blockquote>Describes the User Request request</div></div><div class=CToolTip id="tt15"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record EPTF_MBT_UserResponse {}</td></tr></table></blockquote>Describes the UserResponse</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt16"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_customUserFunction (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self return boolean</td></tr></table></td></tr></table></blockquote>Describes the function signature for custom user function</div></div><div class=CToolTip id="tt17"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>type function fcb_EPTF_MBT_entityGroupCreated(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_MBT_ConfigRequest </td><td class="PParameter prettyprint " nowrap width=100%>p_req</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on self</td></tr></table></td></tr></table></blockquote>Describes the function signature for entity Group created callback function</div></div><div class=CToolTip id="tt18"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record FsmAddr</td></tr></table></blockquote>Describes the FSM address</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt19"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitAckResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><div class=CToolTip id="tt20"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record QuitCommand {}</td></tr></table></blockquote>Describes the Command Response</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt21"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type record ReadyResponse {}</td></tr></table></blockquote>Describes the Ready Response</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/javascript/main.js b/apidoc/html/javascript/main.js
new file mode 100644
index 0000000..3f42acd
--- /dev/null
+++ b/apidoc/html/javascript/main.js
@@ -0,0 +1,841 @@
+// This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
+// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
+// Refer to License.txt for the complete details
+
+// This file may be distributed with documentation files generated by Natural Docs.
+// Such documentation is not covered by Natural Docs' copyright and licensing,
+// and may have its own copyright and distribution terms as decided by its author.
+
+
+//
+// Browser Styles
+// ____________________________________________________________________________
+
+var agt=navigator.userAgent.toLowerCase();
+var browserType;
+var browserVer;
+
+if (agt.indexOf("opera") != -1)
+ {
+ browserType = "Opera";
+
+ if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
+ { browserVer = "Opera7"; }
+ else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
+ { browserVer = "Opera8"; }
+ else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
+ { browserVer = "Opera9"; }
+ }
+
+else if (agt.indexOf("applewebkit") != -1)
+ {
+ browserType = "Safari";
+
+ if (agt.indexOf("version/3") != -1)
+ { browserVer = "Safari3"; }
+ else if (agt.indexOf("safari/4") != -1)
+ { browserVer = "Safari2"; }
+ }
+
+else if (agt.indexOf("khtml") != -1)
+ {
+ browserType = "Konqueror";
+ }
+
+else if (agt.indexOf("msie") != -1)
+ {
+ browserType = "IE";
+
+ if (agt.indexOf("msie 6") != -1)
+ { browserVer = "IE6"; }
+ else if (agt.indexOf("msie 7") != -1)
+ { browserVer = "IE7"; }
+ }
+
+else if (agt.indexOf("gecko") != -1)
+ {
+ browserType = "Firefox";
+
+ if (agt.indexOf("rv:1.7") != -1)
+ { browserVer = "Firefox1"; }
+ else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
+ { browserVer = "Firefox15"; }
+ else if (agt.indexOf("rv:1.8.1") != -1)
+ { browserVer = "Firefox2"; }
+ }
+
+
+//
+// Support Functions
+// ____________________________________________________________________________
+
+
+function GetXPosition(item)
+ {
+ var position = 0;
+
+ if (item.offsetWidth != null)
+ {
+ while (item != document.body && item != null)
+ {
+ position += item.offsetLeft;
+ item = item.offsetParent;
+ };
+ };
+
+ return position;
+ };
+
+
+function GetYPosition(item)
+ {
+ var position = 0;
+
+ if (item.offsetWidth != null)
+ {
+ while (item != document.body && item != null)
+ {
+ position += item.offsetTop;
+ item = item.offsetParent;
+ };
+ };
+
+ return position;
+ };
+
+
+function MoveToPosition(item, x, y)
+ {
+ // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
+
+ if (item.style.left != null)
+ {
+ item.style.left = x + "px";
+ item.style.top = y + "px";
+ }
+ else if (item.style.pixelLeft != null)
+ {
+ item.style.pixelLeft = x;
+ item.style.pixelTop = y;
+ };
+ };
+
+
+//
+// Menu
+// ____________________________________________________________________________
+
+
+function ToggleMenu(id)
+ {
+ if (!window.document.getElementById)
+ { return; };
+
+ var display = window.document.getElementById(id).style.display;
+
+ if (display == "none")
+ { display = "block"; }
+ else
+ { display = "none"; }
+
+ window.document.getElementById(id).style.display = display;
+ }
+
+function HideAllBut(ids, max)
+ {
+ if (document.getElementById)
+ {
+ ids.sort( function(a,b) { return a - b; } );
+ var number = 1;
+
+ while (number < max)
+ {
+ if (ids.length > 0 && number == ids[0])
+ { ids.shift(); }
+ else
+ {
+ document.getElementById("MGroupContent" + number).style.display = "none";
+ };
+
+ number++;
+ };
+ };
+ }
+
+
+//
+// Tooltips
+// ____________________________________________________________________________
+
+
+var tooltipTimer = 0;
+
+function ShowTip(event, tooltipID, linkID)
+ {
+ if (tooltipTimer)
+ { clearTimeout(tooltipTimer); };
+
+ var docX = event.clientX + window.pageXOffset;
+ var docY = event.clientY + window.pageYOffset;
+
+ var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
+
+ tooltipTimer = setTimeout(showCommand, 1000);
+ }
+
+function ReallyShowTip(tooltipID, linkID, docX, docY)
+ {
+ tooltipTimer = 0;
+
+ var tooltip;
+ var link;
+
+ if (document.getElementById)
+ {
+ tooltip = document.getElementById(tooltipID);
+ link = document.getElementById(linkID);
+ }
+/* else if (document.all)
+ {
+ tooltip = eval("document.all['" + tooltipID + "']");
+ link = eval("document.all['" + linkID + "']");
+ }
+*/
+ if (tooltip)
+ {
+ var left = GetXPosition(link);
+ var top = GetYPosition(link);
+ top += link.offsetHeight;
+
+
+ // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number
+ // in case some browser snuck through the above if statement but didn't support everything.
+
+ if (!isFinite(top) || top == 0)
+ {
+ left = docX;
+ top = docY;
+ }
+
+ // Some spacing to get it out from under the cursor.
+
+ top += 10;
+
+ // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
+ // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
+
+ if (tooltip.offsetWidth != null)
+ {
+ var width = tooltip.offsetWidth;
+ var docWidth = document.body.clientWidth;
+
+ if (left + width > docWidth)
+ { left = docWidth - width - 1; }
+
+ // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
+ if (left < 0)
+ { left = 0; };
+ }
+
+ MoveToPosition(tooltip, left, top);
+ tooltip.style.visibility = "visible";
+ }
+ }
+
+function HideTip(tooltipID)
+ {
+ if (tooltipTimer)
+ {
+ clearTimeout(tooltipTimer);
+ tooltipTimer = 0;
+ }
+
+ var tooltip;
+
+ if (document.getElementById)
+ { tooltip = document.getElementById(tooltipID); }
+ else if (document.all)
+ { tooltip = eval("document.all['" + tooltipID + "']"); }
+
+ if (tooltip)
+ { tooltip.style.visibility = "hidden"; }
+ }
+
+
+//
+// Blockquote fix for IE
+// ____________________________________________________________________________
+
+
+function NDOnLoad()
+ {
+ if (browserVer == "IE6")
+ {
+ var scrollboxes = document.getElementsByTagName('blockquote');
+
+ if (scrollboxes.item(0))
+ {
+ NDDoResize();
+ window.onresize=NDOnResize;
+ };
+ };
+ };
+
+
+var resizeTimer = 0;
+
+function NDOnResize()
+ {
+ if (resizeTimer != 0)
+ { clearTimeout(resizeTimer); };
+
+ resizeTimer = setTimeout(NDDoResize, 250);
+ };
+
+
+function NDDoResize()
+ {
+ var scrollboxes = document.getElementsByTagName('blockquote');
+
+ var i;
+ var item;
+
+ i = 0;
+ while (item = scrollboxes.item(i))
+ {
+ item.style.width = 100;
+ i++;
+ };
+
+ i = 0;
+ while (item = scrollboxes.item(i))
+ {
+ item.style.width = item.parentNode.offsetWidth;
+ i++;
+ };
+
+ clearTimeout(resizeTimer);
+ resizeTimer = 0;
+ }
+
+
+
+/* ________________________________________________________________________________________________________
+
+ Class: SearchPanel
+ ________________________________________________________________________________________________________
+
+ A class handling everything associated with the search panel.
+
+ Parameters:
+
+ name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts.
+ mode - The mode the search is going to work in. Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
+ value will be something like "HTML" or "FramedHTML".
+
+ ________________________________________________________________________________________________________
+*/
+
+
+function SearchPanel(name, mode, resultsPath)
+ {
+ if (!name || !mode || !resultsPath)
+ { alert("Incorrect parameters to SearchPanel."); };
+
+
+ // Group: Variables
+ // ________________________________________________________________________
+
+ /*
+ var: name
+ The name of the global variable that will be storing this instance of the class.
+ */
+ this.name = name;
+
+ /*
+ var: mode
+ The mode the search is going to work in, such as "HTML" or "FramedHTML".
+ */
+ this.mode = mode;
+
+ /*
+ var: resultsPath
+ The relative path from the current HTML page to the results page directory.
+ */
+ this.resultsPath = resultsPath;
+
+ /*
+ var: keyTimeout
+ The timeout used between a keystroke and when a search is performed.
+ */
+ this.keyTimeout = 0;
+
+ /*
+ var: keyTimeoutLength
+ The length of <keyTimeout> in thousandths of a second.
+ */
+ this.keyTimeoutLength = 500;
+
+ /*
+ var: lastSearchValue
+ The last search string executed, or an empty string if none.
+ */
+ this.lastSearchValue = "";
+
+ /*
+ var: lastResultsPage
+ The last results page. The value is only relevant if <lastSearchValue> is set.
+ */
+ this.lastResultsPage = "";
+
+ /*
+ var: deactivateTimeout
+
+ The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary
+ because a control may be deactivated in favor of another control in the same panel, in which case it should stay
+ active.
+ */
+ this.deactivateTimout = 0;
+
+ /*
+ var: deactivateTimeoutLength
+ The length of <deactivateTimeout> in thousandths of a second.
+ */
+ this.deactivateTimeoutLength = 200;
+
+
+
+
+ // Group: DOM Elements
+ // ________________________________________________________________________
+
+
+ // Function: DOMSearchField
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); };
+
+ // Function: DOMSearchType
+ this.DOMSearchType = function()
+ { return document.getElementById("MSearchType"); };
+
+ // Function: DOMPopupSearchResults
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); };
+
+ // Function: DOMPopupSearchResultsWindow
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); };
+
+ // Function: DOMSearchPanel
+ this.DOMSearchPanel = function()
+ { return document.getElementById("MSearchPanel"); };
+
+
+
+
+ // Group: Event Handlers
+ // ________________________________________________________________________
+
+
+ /*
+ Function: OnSearchFieldFocus
+ Called when focus is added or removed from the search field.
+ */
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ };
+
+
+ /*
+ Function: OnSearchFieldChange
+ Called when the content of the search field is changed.
+ */
+ this.OnSearchFieldChange = function()
+ {
+ if (this.keyTimeout)
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ };
+
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue)
+ {
+ if (searchValue != "")
+ {
+ this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
+ }
+ else
+ {
+ if (this.mode == "HTML")
+ { this.DOMPopupSearchResultsWindow().style.display = "none"; };
+ this.lastSearchValue = "";
+ };
+ };
+ };
+
+
+ /*
+ Function: OnSearchTypeFocus
+ Called when focus is added or removed from the search type.
+ */
+ this.OnSearchTypeFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ };
+
+
+ /*
+ Function: OnSearchTypeChange
+ Called when the search type is changed.
+ */
+ this.OnSearchTypeChange = function()
+ {
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != "")
+ {
+ this.Search();
+ };
+ };
+
+
+
+ // Group: Action Functions
+ // ________________________________________________________________________
+
+
+ /*
+ Function: CloseResultsWindow
+ Closes the results window.
+ */
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = "none";
+ this.Activate(false, true);
+ };
+
+
+ /*
+ Function: Search
+ Performs a search.
+ */
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+ var searchTopic = this.DOMSearchType().value;
+
+ var pageExtension = searchValue.substr(0,1);
+
+ if (pageExtension.match(/^[a-z]/i))
+ { pageExtension = pageExtension.toUpperCase(); }
+ else if (pageExtension.match(/^[0-9]/))
+ { pageExtension = 'Numbers'; }
+ else
+ { pageExtension = "Symbols"; };
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ // indexSectionsWithContent is defined in searchdata.js
+ if (indexSectionsWithContent[searchTopic][pageExtension] == true)
+ {
+ resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else
+ {
+ resultsPage = this.resultsPath + '/NoResults.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ };
+
+ var resultsFrame;
+ if (this.mode == "HTML")
+ { resultsFrame = window.frames.MSearchResults; }
+ else if (this.mode == "FramedHTML")
+ { resultsFrame = window.top.frames['Content']; };
+
+
+ if (resultsPage != this.lastResultsPage ||
+
+ // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
+ // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it
+ // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the
+ // page anyway to get around the bug.
+ (browserType == "IE" && hasResultsPage &&
+ (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
+
+ {
+ resultsFrame.location.href = resultsPageWithSearch;
+ }
+
+ // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there
+ // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
+ // if it did.
+ else if (hasResultsPage)
+ {
+ // We need to check if this exists in case the frame is present but didn't finish loading.
+ if (resultsFrame.searchResults)
+ { resultsFrame.searchResults.Search(searchValue); }
+
+ // Otherwise just reload instead of waiting.
+ else
+ { resultsFrame.location.href = resultsPageWithSearch; };
+ };
+
+
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
+ {
+ var domSearchType = this.DOMSearchType();
+
+ var left = GetXPosition(domSearchType);
+ var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
+
+ MoveToPosition(domPopupSearchResultsWindow, left, top);
+ domPopupSearchResultsWindow.style.display = 'block';
+ };
+
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ };
+
+
+
+ // Group: Activation Functions
+ // Functions that handle whether the entire panel is active or not.
+ // ________________________________________________________________________
+
+
+ /*
+ Function: Activate
+
+ Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every
+ control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
+
+ Parameters:
+
+ isActive - Whether you're activating or deactivating the panel.
+ ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
+ */
+ this.Activate = function(isActive, ignoreDeactivateDelay)
+ {
+ // We want to ignore isActive being false while the results window is open.
+ if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
+ {
+ if (this.inactivateTimeout)
+ {
+ clearTimeout(this.inactivateTimeout);
+ this.inactivateTimeout = 0;
+ };
+
+ this.DOMSearchPanel().className = 'MSearchPanelActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == 'Search')
+ { searchField.value = ""; }
+ }
+ else if (!ignoreDeactivateDelay)
+ {
+ this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
+ }
+ else
+ {
+ this.InactivateAfterTimeout();
+ };
+ };
+
+
+ /*
+ Function: InactivateAfterTimeout
+
+ Called by <inactivateTimeout>, which is set by <Activate()>. Inactivation occurs on a timeout because a control may
+ receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to
+ actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
+ So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
+ */
+ this.InactivateAfterTimeout = function()
+ {
+ this.inactivateTimeout = 0;
+
+ this.DOMSearchPanel().className = 'MSearchPanelInactive';
+ this.DOMSearchField().value = "Search";
+
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ };
+ };
+
+
+
+
+/* ________________________________________________________________________________________________________
+
+ Class: SearchResults
+ _________________________________________________________________________________________________________
+
+ The class that handles everything on the search results page.
+ _________________________________________________________________________________________________________
+*/
+
+
+function SearchResults(name, mode)
+ {
+ /*
+ var: mode
+ The mode the search is going to work in, such as "HTML" or "FramedHTML".
+ */
+ this.mode = mode;
+
+ /*
+ var: lastMatchCount
+ The number of matches from the last run of <Search()>.
+ */
+ this.lastMatchCount = 0;
+
+
+ /*
+ Function: Toggle
+ Toggles the visibility of the passed element ID.
+ */
+ this.Toggle = function(id)
+ {
+ if (this.mode == "FramedHTML")
+ { return; };
+
+ var parentElement = document.getElementById(id);
+
+ var element = parentElement.firstChild;
+
+ while (element && element != parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
+ {
+ if (element.style.display == 'block')
+ { element.style.display = "none"; }
+ else
+ { element.style.display = 'block'; }
+ };
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ { element = element.firstChild; }
+ else if (element.nextSibling)
+ { element = element.nextSibling; }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element != parentElement && !element.nextSibling);
+
+ if (element && element != parentElement)
+ { element = element.nextSibling; };
+ };
+ };
+ };
+
+
+ /*
+ Function: Search
+
+ Searches for the passed string. If there is no parameter, it takes it from the URL query.
+
+ Always returns true, since other documents may try to call it and that may or may not be possible.
+ */
+ this.Search = function(search)
+ {
+ if (!search)
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading ?
+ search = unescape(search);
+ };
+
+ search = search.replace(/^ +/, "");
+ search = search.replace(/ +$/, "");
+ search = search.toLowerCase();
+
+ if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
+ {
+ search = search.replace(/\_/g, "_und");
+ search = search.replace(/\ +/gi, "_spc");
+ search = search.replace(/\~/g, "_til");
+ search = search.replace(/\!/g, "_exc");
+ search = search.replace(/\@/g, "_att");
+ search = search.replace(/\#/g, "_num");
+ search = search.replace(/\$/g, "_dol");
+ search = search.replace(/\%/g, "_pct");
+ search = search.replace(/\^/g, "_car");
+ search = search.replace(/\&/g, "_amp");
+ search = search.replace(/\*/g, "_ast");
+ search = search.replace(/\(/g, "_lpa");
+ search = search.replace(/\)/g, "_rpa");
+ search = search.replace(/\-/g, "_min");
+ search = search.replace(/\+/g, "_plu");
+ search = search.replace(/\=/g, "_equ");
+ search = search.replace(/\{/g, "_lbc");
+ search = search.replace(/\}/g, "_rbc");
+ search = search.replace(/\[/g, "_lbk");
+ search = search.replace(/\]/g, "_rbk");
+ search = search.replace(/\:/g, "_col");
+ search = search.replace(/\;/g, "_sco");
+ search = search.replace(/\"/g, "_quo");
+ search = search.replace(/\'/g, "_apo");
+ search = search.replace(/\</g, "_lan");
+ search = search.replace(/\>/g, "_ran");
+ search = search.replace(/\,/g, "_com");
+ search = search.replace(/\./g, "_per");
+ search = search.replace(/\?/g, "_que");
+ search = search.replace(/\//g, "_sla");
+ search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
+ };
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
+
+ if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
+ {
+ row.style.display = "block";
+ matches++;
+ }
+ else
+ { row.style.display = "none"; };
+ };
+
+ i++;
+ };
+
+ document.getElementById("Searching").style.display="none";
+
+ if (matches == 0)
+ { document.getElementById("NoMatches").style.display="block"; }
+ else
+ { document.getElementById("NoMatches").style.display="none"; }
+
+ this.lastMatchCount = matches;
+
+ return true;
+ };
+ };
+
diff --git a/apidoc/html/javascript/prettify.js b/apidoc/html/javascript/prettify.js
new file mode 100644
index 0000000..fda4bf1
--- /dev/null
+++ b/apidoc/html/javascript/prettify.js
@@ -0,0 +1,1526 @@
+
+// This code comes from the December 2009 release of Google Prettify, which is Copyright © 2006 Google Inc.
+// Minor modifications are marked with "ND Change" comments.
+// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.)
+// However, it may also be obtained separately under version 2.0 of the Apache License.
+// Refer to License.txt for the complete details
+
+
+// Main code
+// ____________________________________________________________________________
+
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ * <p>
+ *
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source. At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ * {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules. See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ * {@code class=prettyprint.}
+ * You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ * printer needs to do more substantial DOM manipulations to support that, so
+ * some css styles may not be preserved.
+ * </ol>
+ * That's it. I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}. Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ * Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ * @overrides window
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/** the number of characters between tab columns */
+window['PR_TAB_WIDTH'] = 8;
+
+/** Walks the DOM returning a properly escaped version of innerHTML.
+ * @param {Node} node
+ * @param {Array.<string>} out output buffer that receives chunks of HTML.
+ */
+window['PR_normalizedHtml']
+
+/** Contains functions for creating and registering new language handlers.
+ * @type {Object}
+ */
+ = window['PR']
+
+/** Pretty print a chunk of code.
+ *
+ * @param {string} sourceCodeHtml code as html
+ * @return {string} code as html, but prettier
+ */
+ = window['prettyPrintOne']
+/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+ * {@code class=prettyprint} and prettify them.
+ * @param {Function?} opt_whenDone if specified, called when the last entry
+ * has been finished.
+ */
+ = window['prettyPrint'] = void 0;
+
+/** browser detection. @extern @returns false if not IE, otherwise the major version. */
+window['_pr_isIE6'] = function () {
+ var ieVersion = navigator && navigator.userAgent &&
+ navigator.userAgent.match(/\bMSIE ([678])\./);
+ ieVersion = ieVersion ? +ieVersion[1] : false;
+ window['_pr_isIE6'] = function () { return ieVersion; };
+ return ieVersion;
+};
+
+
+(function () {
+ // Keyword lists for various languages.
+ var FLOW_CONTROL_KEYWORDS =
+ "break continue do else for if return while ";
+ var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
+ "double enum extern float goto int long register short signed sizeof " +
+ "static struct switch typedef union unsigned void volatile ";
+ var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
+ "new operator private protected public this throw true try typeof ";
+ var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
+ "concept concept_map const_cast constexpr decltype " +
+ "dynamic_cast explicit export friend inline late_check " +
+ "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
+ "template typeid typename using virtual wchar_t where ";
+ var JAVA_KEYWORDS = COMMON_KEYWORDS +
+ "abstract boolean byte extends final finally implements import " +
+ "instanceof null native package strictfp super synchronized throws " +
+ "transient ";
+ var CSHARP_KEYWORDS = JAVA_KEYWORDS +
+ "as base by checked decimal delegate descending event " +
+ "fixed foreach from group implicit in interface internal into is lock " +
+ "object out override orderby params partial readonly ref sbyte sealed " +
+ "stackalloc string select uint ulong unchecked unsafe ushort var ";
+ var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
+ "debugger eval export function get null set undefined var with " +
+ "Infinity NaN ";
+ var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
+ "goto if import last local my next no our print package redo require " +
+ "sub undef unless until use wantarray while BEGIN END ";
+ var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
+ "elif except exec finally from global import in is lambda " +
+ "nonlocal not or pass print raise try with yield " +
+ "False True None ";
+ var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
+ " defined elsif end ensure false in module next nil not or redo rescue " +
+ "retry self super then true undef unless until when yield BEGIN END ";
+ var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
+ "function in local set then until ";
+ var ALL_KEYWORDS = (
+ CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
+ PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
+
+ // token style names. correspond to css classes
+ /** token style for a string literal */
+ var PR_STRING = 'str';
+ /** token style for a keyword */
+ var PR_KEYWORD = 'kwd';
+ /** token style for a comment */
+ var PR_COMMENT = 'com';
+ /** token style for a type */
+ var PR_TYPE = 'typ';
+ /** token style for a literal value. e.g. 1, null, true. */
+ var PR_LITERAL = 'lit';
+ /** token style for a punctuation string. */
+ var PR_PUNCTUATION = 'pun';
+ /** token style for a punctuation string. */
+ var PR_PLAIN = 'pln';
+
+ /** token style for an sgml tag. */
+ var PR_TAG = 'tag';
+ /** token style for a markup declaration such as a DOCTYPE. */
+ var PR_DECLARATION = 'dec';
+ /** token style for embedded source. */
+ var PR_SOURCE = 'src';
+ /** token style for an sgml attribute name. */
+ var PR_ATTRIB_NAME = 'atn';
+ /** token style for an sgml attribute value. */
+ var PR_ATTRIB_VALUE = 'atv';
+
+ /**
+ * A class that indicates a section of markup that is not code, e.g. to allow
+ * embedding of line numbers within code listings.
+ */
+ var PR_NOCODE = 'nocode';
+
+ /** A set of tokens that can precede a regular expression literal in
+ * javascript.
+ * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
+ * list, but I've removed ones that might be problematic when seen in
+ * languages that don't support regular expression literals.
+ *
+ * <p>Specifically, I've removed any keywords that can't precede a regexp
+ * literal in a syntactically legal javascript program, and I've removed the
+ * "in" keyword since it's not a keyword in many languages, and might be used
+ * as a count of inches.
+ *
+ * <p>The link a above does not accurately describe EcmaScript rules since
+ * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+ * very well in practice.
+ *
+ * @private
+ */
+ var REGEXP_PRECEDER_PATTERN = function () {
+ var preceders = [
+ "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
+ "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
+ "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
+ "<", "<<", "<<=", "<=", "=", "==", "===", ">",
+ ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
+ "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
+ "||=", "~" /* handles =~ and !~ */,
+ "break", "case", "continue", "delete",
+ "do", "else", "finally", "instanceof",
+ "return", "throw", "try", "typeof"
+ ];
+ var pattern = '(?:^^|[+-]';
+ for (var i = 0; i < preceders.length; ++i) {
+ pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
+ }
+ pattern += ')\\s*'; // matches at end, and matches empty string
+ return pattern;
+ // CAVEAT: this does not properly handle the case where a regular
+ // expression immediately follows another since a regular expression may
+ // have flags for case-sensitivity and the like. Having regexp tokens
+ // adjacent is not valid in any language I'm aware of, so I'm punting.
+ // TODO: maybe style special characters inside a regexp as punctuation.
+ }();
+
+ // Define regexps here so that the interpreter doesn't have to create an
+ // object each time the function containing them is called.
+ // The language spec requires a new object created even if you don't access
+ // the $1 members.
+ var pr_amp = /&/g;
+ var pr_lt = /</g;
+ var pr_gt = />/g;
+ var pr_quot = /\"/g;
+ /** like textToHtml but escapes double quotes to be attribute safe. */
+ function attribToHtml(str) {
+ return str.replace(pr_amp, '&')
+ .replace(pr_lt, '<')
+ .replace(pr_gt, '>')
+ .replace(pr_quot, '"');
+ }
+
+ /** escapest html special characters to html. */
+ function textToHtml(str) {
+ return str.replace(pr_amp, '&')
+ .replace(pr_lt, '<')
+ .replace(pr_gt, '>');
+ }
+
+
+ var pr_ltEnt = /</g;
+ var pr_gtEnt = />/g;
+ var pr_aposEnt = /'/g;
+ var pr_quotEnt = /"/g;
+ var pr_ampEnt = /&/g;
+ var pr_nbspEnt = / /g;
+ /** unescapes html to plain text. */
+ function htmlToText(html) {
+ var pos = html.indexOf('&');
+ if (pos < 0) { return html; }
+ // Handle numeric entities specially. We can't use functional substitution
+ // since that doesn't work in older versions of Safari.
+ // These should be rare since most browsers convert them to normal chars.
+ for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
+ var end = html.indexOf(';', pos);
+ if (end >= 0) {
+ var num = html.substring(pos + 3, end);
+ var radix = 10;
+ if (num && num.charAt(0) === 'x') {
+ num = num.substring(1);
+ radix = 16;
+ }
+ var codePoint = parseInt(num, radix);
+ if (!isNaN(codePoint)) {
+ html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
+ html.substring(end + 1));
+ }
+ }
+ }
+
+ return html.replace(pr_ltEnt, '<')
+ .replace(pr_gtEnt, '>')
+ .replace(pr_aposEnt, "'")
+ .replace(pr_quotEnt, '"')
+ .replace(pr_nbspEnt, ' ')
+ .replace(pr_ampEnt, '&');
+ }
+
+ /** is the given node's innerHTML normally unescaped? */
+ function isRawContent(node) {
+ return 'XMP' === node.tagName;
+ }
+
+ var newlineRe = /[\r\n]/g;
+ /**
+ * Are newlines and adjacent spaces significant in the given node's innerHTML?
+ */
+ function isPreformatted(node, content) {
+ // PRE means preformatted, and is a very common case, so don't create
+ // unnecessary computed style objects.
+ if ('PRE' === node.tagName) { return true; }
+ if (!newlineRe.test(content)) { return true; } // Don't care
+ var whitespace = '';
+ // For disconnected nodes, IE has no currentStyle.
+ if (node.currentStyle) {
+ whitespace = node.currentStyle.whiteSpace;
+ } else if (window.getComputedStyle) {
+ // Firefox makes a best guess if node is disconnected whereas Safari
+ // returns the empty string.
+ whitespace = window.getComputedStyle(node, null).whiteSpace;
+ }
+ return !whitespace || whitespace === 'pre';
+ }
+
+ function normalizedHtml(node, out) {
+ switch (node.nodeType) {
+ case 1: // an element
+ var name = node.tagName.toLowerCase();
+ out.push('<', name);
+ for (var i = 0; i < node.attributes.length; ++i) {
+ var attr = node.attributes[i];
+ if (!attr.specified) { continue; }
+ out.push(' ');
+ normalizedHtml(attr, out);
+ }
+ out.push('>');
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ normalizedHtml(child, out);
+ }
+ if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
+ out.push('<\/', name, '>');
+ }
+ break;
+ case 2: // an attribute
+ out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
+ break;
+ case 3: case 4: // text
+ out.push(textToHtml(node.nodeValue));
+ break;
+ }
+ }
+
+ /**
+ * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+ * matches the union o the sets o strings matched d by the input RegExp.
+ * Since it matches globally, if the input strings have a start-of-input
+ * anchor (/^.../), it is ignored for the purposes of unioning.
+ * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+ * @return {RegExp} a global regex.
+ */
+ function combinePrefixPatterns(regexs) {
+ var capturedGroupIndex = 0;
+
+ var needToFoldCase = false;
+ var ignoreCase = false;
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.ignoreCase) {
+ ignoreCase = true;
+ } else if (/[a-z]/i.test(regex.source.replace(
+ /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+ needToFoldCase = true;
+ ignoreCase = false;
+ break;
+ }
+ }
+
+ function decodeEscape(charsetPart) {
+ if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
+ switch (charsetPart.charAt(1)) {
+ case 'b': return 8;
+ case 't': return 9;
+ case 'n': return 0xa;
+ case 'v': return 0xb;
+ case 'f': return 0xc;
+ case 'r': return 0xd;
+ case 'u': case 'x':
+ return parseInt(charsetPart.substring(2), 16)
+ || charsetPart.charCodeAt(1);
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7':
+ return parseInt(charsetPart.substring(1), 8);
+ default: return charsetPart.charCodeAt(1);
+ }
+ }
+
+ function encodeEscape(charCode) {
+ if (charCode < 0x20) {
+ return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+ }
+ var ch = String.fromCharCode(charCode);
+ if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+ ch = '\\' + ch;
+ }
+ return ch;
+ }
+
+ function caseFoldCharset(charSet) {
+ var charsetParts = charSet.substring(1, charSet.length - 1).match(
+ new RegExp(
+ '\\\\u[0-9A-Fa-f]{4}'
+ + '|\\\\x[0-9A-Fa-f]{2}'
+ + '|\\\\[0-3][0-7]{0,2}'
+ + '|\\\\[0-7]{1,2}'
+ + '|\\\\[\\s\\S]'
+ + '|-'
+ + '|[^-\\\\]',
+ 'g'));
+ var groups = [];
+ var ranges = [];
+ var inverse = charsetParts[0] === '^';
+ for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+ var p = charsetParts[i];
+ switch (p) {
+ case '\\B': case '\\b':
+ case '\\D': case '\\d':
+ case '\\S': case '\\s':
+ case '\\W': case '\\w':
+ groups.push(p);
+ continue;
+ }
+ var start = decodeEscape(p);
+ var end;
+ if (i + 2 < n && '-' === charsetParts[i + 1]) {
+ end = decodeEscape(charsetParts[i + 2]);
+ i += 2;
+ } else {
+ end = start;
+ }
+ ranges.push([start, end]);
+ // If the range might intersect letters, then expand it.
+ if (!(end < 65 || start > 122)) {
+ if (!(end < 65 || start > 90)) {
+ ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+ }
+ if (!(end < 97 || start > 122)) {
+ ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+ }
+ }
+ }
+
+ // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+ // -> [[1, 12], [14, 14], [16, 17]]
+ ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
+ var consolidatedRanges = [];
+ var lastRange = [NaN, NaN];
+ for (var i = 0; i < ranges.length; ++i) {
+ var range = ranges[i];
+ if (range[0] <= lastRange[1] + 1) {
+ lastRange[1] = Math.max(lastRange[1], range[1]);
+ } else {
+ consolidatedRanges.push(lastRange = range);
+ }
+ }
+
+ var out = ['['];
+ if (inverse) { out.push('^'); }
+ out.push.apply(out, groups);
+ for (var i = 0; i < consolidatedRanges.length; ++i) {
+ var range = consolidatedRanges[i];
+ out.push(encodeEscape(range[0]));
+ if (range[1] > range[0]) {
+ if (range[1] + 1 > range[0]) { out.push('-'); }
+ out.push(encodeEscape(range[1]));
+ }
+ }
+ out.push(']');
+ return out.join('');
+ }
+
+ function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+ // Split into character sets, escape sequences, punctuation strings
+ // like ('(', '(?:', ')', '^'), and runs of characters that do not
+ // include any of the above.
+ var parts = regex.source.match(
+ new RegExp(
+ '(?:'
+ + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
+ + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
+ + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
+ + '|\\\\[0-9]+' // a back-reference or octal escape
+ + '|\\\\[^ux0-9]' // other escape sequence
+ + '|\\(\\?[:!=]' // start of a non-capturing group
+ + '|[\\(\\)\\^]' // start/emd of a group, or line start
+ + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
+ + ')',
+ 'g'));
+ var n = parts.length;
+
+ // Maps captured group numbers to the number they will occupy in
+ // the output or to -1 if that has not been determined, or to
+ // undefined if they need not be capturing in the output.
+ var capturedGroups = [];
+
+ // Walk over and identify back references to build the capturedGroups
+ // mapping.
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ // groups are 1-indexed, so max group index is count of '('
+ ++groupIndex;
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue && decimalValue <= groupIndex) {
+ capturedGroups[decimalValue] = -1;
+ }
+ }
+ }
+
+ // Renumber groups and reduce capturing groups to non-capturing groups
+ // where possible.
+ for (var i = 1; i < capturedGroups.length; ++i) {
+ if (-1 === capturedGroups[i]) {
+ capturedGroups[i] = ++capturedGroupIndex;
+ }
+ }
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ ++groupIndex;
+ if (capturedGroups[groupIndex] === undefined) {
+ parts[i] = '(?:';
+ }
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue && decimalValue <= groupIndex) {
+ parts[i] = '\\' + capturedGroups[groupIndex];
+ }
+ }
+ }
+
+ // Remove any prefix anchors so that the output will match anywhere.
+ // ^^ really does mean an anchored match though.
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+ }
+
+ // Expand letters to groupts to handle mixing of case-sensitive and
+ // case-insensitive patterns if necessary.
+ if (regex.ignoreCase && needToFoldCase) {
+ for (var i = 0; i < n; ++i) {
+ var p = parts[i];
+ var ch0 = p.charAt(0);
+ if (p.length >= 2 && ch0 === '[') {
+ parts[i] = caseFoldCharset(p);
+ } else if (ch0 !== '\\') {
+ // TODO: handle letters in numeric escapes.
+ parts[i] = p.replace(
+ /[a-zA-Z]/g,
+ function (ch) {
+ var cc = ch.charCodeAt(0);
+ return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+ });
+ }
+ }
+ }
+
+ return parts.join('');
+ }
+
+ var rewritten = [];
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.global || regex.multiline) { throw new Error('' + regex); }
+ rewritten.push(
+ '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+ }
+
+ return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+ }
+
+ var PR_innerHtmlWorks = null;
+ function getInnerHtml(node) {
+ // inner html is hopelessly broken in Safari 2.0.4 when the content is
+ // an html description of well formed XML and the containing tag is a PRE
+ // tag, so we detect that case and emulate innerHTML.
+ if (null === PR_innerHtmlWorks) {
+ var testNode = document.createElement('PRE');
+ testNode.appendChild(
+ document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
+ PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
+ }
+
+ if (PR_innerHtmlWorks) {
+ var content = node.innerHTML;
+ // XMP tags contain unescaped entities so require special handling.
+ if (isRawContent(node)) {
+ content = textToHtml(content);
+ } else if (!isPreformatted(node, content)) {
+ content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
+ .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
+ }
+ return content;
+ }
+
+ var out = [];
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ normalizedHtml(child, out);
+ }
+ return out.join('');
+ }
+
+ /** returns a function that expand tabs to spaces. This function can be fed
+ * successive chunks of text, and will maintain its own internal state to
+ * keep track of how tabs are expanded.
+ * @return {function (string) : string} a function that takes
+ * plain text and return the text with tabs expanded.
+ * @private
+ */
+ function makeTabExpander(tabWidth) {
+ var SPACES = ' ';
+ var charInLine = 0;
+
+ return function (plainText) {
+ // walk over each character looking for tabs and newlines.
+ // On tabs, expand them. On newlines, reset charInLine.
+ // Otherwise increment charInLine
+ var out = null;
+ var pos = 0;
+ for (var i = 0, n = plainText.length; i < n; ++i) {
+ var ch = plainText.charAt(i);
+
+ switch (ch) {
+ case '\t':
+ if (!out) { out = []; }
+ out.push(plainText.substring(pos, i));
+ // calculate how much space we need in front of this part
+ // nSpaces is the amount of padding -- the number of spaces needed
+ // to move us to the next column, where columns occur at factors of
+ // tabWidth.
+ var nSpaces = tabWidth - (charInLine % tabWidth);
+ charInLine += nSpaces;
+ for (; nSpaces >= 0; nSpaces -= SPACES.length) {
+ out.push(SPACES.substring(0, nSpaces));
+ }
+ pos = i + 1;
+ break;
+ case '\n':
+ charInLine = 0;
+ break;
+ default:
+ ++charInLine;
+ }
+ }
+ if (!out) { return plainText; }
+ out.push(plainText.substring(pos));
+ return out.join('');
+ };
+ }
+
+ var pr_chunkPattern = new RegExp(
+ '[^<]+' // A run of characters other than '<'
+ + '|<\!--[\\s\\S]*?--\>' // an HTML comment
+ + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>' // a CDATA section
+ // a probable tag that should not be highlighted
+ + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
+ + '|<', // A '<' that does not begin a larger chunk
+ 'g');
+ var pr_commentPrefix = /^<\!--/;
+ var pr_cdataPrefix = /^<!\[CDATA\[/;
+ var pr_brPrefix = /^<br\b/i;
+ var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
+
+ /** split markup into chunks of html tags (style null) and
+ * plain text (style {@link #PR_PLAIN}), converting tags which are
+ * significant for tokenization (<br>) into their textual equivalent.
+ *
+ * @param {string} s html where whitespace is considered significant.
+ * @return {Object} source code and extracted tags.
+ * @private
+ */
+ function extractTags(s) {
+ // since the pattern has the 'g' modifier and defines no capturing groups,
+ // this will return a list of all chunks which we then classify and wrap as
+ // PR_Tokens
+ var matches = s.match(pr_chunkPattern);
+ var sourceBuf = [];
+ var sourceBufLen = 0;
+ var extractedTags = [];
+ if (matches) {
+ for (var i = 0, n = matches.length; i < n; ++i) {
+ var match = matches[i];
+ if (match.length > 1 && match.charAt(0) === '<') {
+ if (pr_commentPrefix.test(match)) { continue; }
+ if (pr_cdataPrefix.test(match)) {
+ // strip CDATA prefix and suffix. Don't unescape since it's CDATA
+ sourceBuf.push(match.substring(9, match.length - 3));
+ sourceBufLen += match.length - 12;
+ } else if (pr_brPrefix.test(match)) {
+ // <br> tags are lexically significant so convert them to text.
+ // This is undone later.
+ sourceBuf.push('\n');
+ ++sourceBufLen;
+ } else {
+ if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
+ // A <span class="nocode"> will start a section that should be
+ // ignored. Continue walking the list until we see a matching end
+ // tag.
+ var name = match.match(pr_tagNameRe)[2];
+ var depth = 1;
+ var j;
+ end_tag_loop:
+ for (j = i + 1; j < n; ++j) {
+ var name2 = matches[j].match(pr_tagNameRe);
+ if (name2 && name2[2] === name) {
+ if (name2[1] === '/') {
+ if (--depth === 0) { break end_tag_loop; }
+ } else {
+ ++depth;
+ }
+ }
+ }
+ if (j < n) {
+ extractedTags.push(
+ sourceBufLen, matches.slice(i, j + 1).join(''));
+ i = j;
+ } else { // Ignore unclosed sections.
+ extractedTags.push(sourceBufLen, match);
+ }
+ } else {
+ extractedTags.push(sourceBufLen, match);
+ }
+ }
+ } else {
+ var literalText = htmlToText(match);
+ sourceBuf.push(literalText);
+ sourceBufLen += literalText.length;
+ }
+ }
+ }
+ return { source: sourceBuf.join(''), tags: extractedTags };
+ }
+
+ /** True if the given tag contains a class attribute with the nocode class. */
+ function isNoCodeTag(tag) {
+ return !!tag
+ // First canonicalize the representation of attributes
+ .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
+ ' $1="$2$3$4"')
+ // Then look for the attribute we want.
+ .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
+ }
+
+ /**
+ * Apply the given language handler to sourceCode and add the resulting
+ * decorations to out.
+ * @param {number} basePos the index of sourceCode within the chunk of source
+ * whose decorations are already present on out.
+ */
+ function appendDecorations(basePos, sourceCode, langHandler, out) {
+ if (!sourceCode) { return; }
+ var job = {
+ source: sourceCode,
+ basePos: basePos
+ };
+ langHandler(job);
+ out.push.apply(out, job.decorations);
+ }
+
+ /** Given triples of [style, pattern, context] returns a lexing function,
+ * The lexing function interprets the patterns to find token boundaries and
+ * returns a decoration list of the form
+ * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+ * where index_n is an index into the sourceCode, and style_n is a style
+ * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
+ * all characters in sourceCode[index_n-1:index_n].
+ *
+ * The stylePatterns is a list whose elements have the form
+ * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+ *
+ * Style is a style constant like PR_PLAIN, or can be a string of the
+ * form 'lang-FOO', where FOO is a language extension describing the
+ * language of the portion of the token in $1 after pattern executes.
+ * E.g., if style is 'lang-lisp', and group 1 contains the text
+ * '(hello (world))', then that portion of the token will be passed to the
+ * registered lisp handler for formatting.
+ * The text before and after group 1 will be restyled using this decorator
+ * so decorators should take care that this doesn't result in infinite
+ * recursion. For example, the HTML lexer rule for SCRIPT elements looks
+ * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
+ * '<script>foo()<\/script>', which would cause the current decorator to
+ * be called with '<script>' which would not match the same rule since
+ * group 1 must not be empty, so it would be instead styled as PR_TAG by
+ * the generic tag rule. The handler registered for the 'js' extension would
+ * then be called with 'foo()', and finally, the current decorator would
+ * be called with '<\/script>' which would not match the original rule and
+ * so the generic tag rule would identify it as a tag.
+ *
+ * Pattern must only match prefixes, and if it matches a prefix, then that
+ * match is considered a token with the same style.
+ *
+ * Context is applied to the last non-whitespace, non-comment token
+ * recognized.
+ *
+ * Shortcut is an optional string of characters, any of which, if the first
+ * character, gurantee that this pattern and only this pattern matches.
+ *
+ * @param {Array} shortcutStylePatterns patterns that always start with
+ * a known character. Must have a shortcut string.
+ * @param {Array} fallthroughStylePatterns patterns that will be tried in
+ * order if the shortcut ones fail. May have shortcuts.
+ *
+ * @return {function (Object)} a
+ * function that takes source code and returns a list of decorations.
+ */
+ function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+ var shortcuts = {};
+ var tokenizer;
+ (function () {
+ var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+ var allRegexs = [];
+ var regexKeys = {};
+ for (var i = 0, n = allPatterns.length; i < n; ++i) {
+ var patternParts = allPatterns[i];
+ var shortcutChars = patternParts[3];
+ if (shortcutChars) {
+ for (var c = shortcutChars.length; --c >= 0;) {
+ shortcuts[shortcutChars.charAt(c)] = patternParts;
+ }
+ }
+ var regex = patternParts[1];
+ var k = '' + regex;
+ if (!regexKeys.hasOwnProperty(k)) {
+ allRegexs.push(regex);
+ regexKeys[k] = null;
+ }
+ }
+ allRegexs.push(/[\0-\uffff]/);
+ tokenizer = combinePrefixPatterns(allRegexs);
+ })();
+
+ var nPatterns = fallthroughStylePatterns.length;
+ var notWs = /\S/;
+
+ /**
+ * Lexes job.source and produces an output array job.decorations of style
+ * classes preceded by the position at which they start in job.source in
+ * order.
+ *
+ * @param {Object} job an object like {@code
+ * source: {string} sourceText plain text,
+ * basePos: {int} position of job.source in the larger chunk of
+ * sourceCode.
+ * }
+ */
+ var decorate = function (job) {
+ var sourceCode = job.source, basePos = job.basePos;
+ /** Even entries are positions in source in ascending order. Odd enties
+ * are style markers (e.g., PR_COMMENT) that run from that position until
+ * the end.
+ * @type {Array.<number|string>}
+ */
+ var decorations = [basePos, PR_PLAIN];
+ var pos = 0; // index into sourceCode
+ var tokens = sourceCode.match(tokenizer) || [];
+ var styleCache = {};
+
+ for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+ var token = tokens[ti];
+ var style = styleCache[token];
+ var match = void 0;
+
+ var isEmbedded;
+ if (typeof style === 'string') {
+ isEmbedded = false;
+ } else {
+ var patternParts = shortcuts[token.charAt(0)];
+ if (patternParts) {
+ match = token.match(patternParts[1]);
+ style = patternParts[0];
+ } else {
+ for (var i = 0; i < nPatterns; ++i) {
+ patternParts = fallthroughStylePatterns[i];
+ match = token.match(patternParts[1]);
+ if (match) {
+ style = patternParts[0];
+ break;
+ }
+ }
+
+ if (!match) { // make sure that we make progress
+ style = PR_PLAIN;
+ }
+ }
+
+ isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+ if (isEmbedded && !(match && typeof match[1] === 'string')) {
+ isEmbedded = false;
+ style = PR_SOURCE;
+ }
+
+ if (!isEmbedded) { styleCache[token] = style; }
+ }
+
+ var tokenStart = pos;
+ pos += token.length;
+
+ if (!isEmbedded) {
+ decorations.push(basePos + tokenStart, style);
+ } else { // Treat group 1 as an embedded block of source code.
+ var embeddedSource = match[1];
+ var embeddedSourceStart = token.indexOf(embeddedSource);
+ var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+ if (match[2]) {
+ // If embeddedSource can be blank, then it would match at the
+ // beginning which would cause us to infinitely recurse on the
+ // entire token, so we catch the right context in match[2].
+ embeddedSourceEnd = token.length - match[2].length;
+ embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+ }
+ var lang = style.substring(5);
+ // Decorate the left of the embedded source
+ appendDecorations(
+ basePos + tokenStart,
+ token.substring(0, embeddedSourceStart),
+ decorate, decorations);
+ // Decorate the embedded source
+ appendDecorations(
+ basePos + tokenStart + embeddedSourceStart,
+ embeddedSource,
+ langHandlerForExtension(lang, embeddedSource),
+ decorations);
+ // Decorate the right of the embedded section
+ appendDecorations(
+ basePos + tokenStart + embeddedSourceEnd,
+ token.substring(embeddedSourceEnd),
+ decorate, decorations);
+ }
+ }
+ job.decorations = decorations;
+ };
+ return decorate;
+ }
+
+ /** returns a function that produces a list of decorations from source text.
+ *
+ * This code treats ", ', and ` as string delimiters, and \ as a string
+ * escape. It does not recognize perl's qq() style strings.
+ * It has no special handling for double delimiter escapes as in basic, or
+ * the tripled delimiters used in python, but should work on those regardless
+ * although in those cases a single string literal may be broken up into
+ * multiple adjacent string literals.
+ *
+ * It recognizes C, C++, and shell style comments.
+ *
+ * @param {Object} options a set of optional parameters.
+ * @return {function (Object)} a function that examines the source code
+ * in the input job and builds the decoration list.
+ */
+ function sourceDecorator(options) {
+ var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+ if (options['tripleQuotedStrings']) {
+ // '''multi-line-string''', 'single-line-string', and double-quoted
+ shortcutStylePatterns.push(
+ [PR_STRING, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+ null, '\'"']);
+ } else if (options['multiLineStrings']) {
+ // 'multi-line-string', "multi-line-string"
+ shortcutStylePatterns.push(
+ [PR_STRING, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+ null, '\'"`']);
+ } else {
+ // 'single-line-string', "single-line-string"
+ shortcutStylePatterns.push(
+ [PR_STRING,
+ /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+ null, '"\'']);
+ }
+ if (options['verbatimStrings']) {
+ // verbatim-string-literal production from the C# grammar. See issue 93.
+ fallthroughStylePatterns.push(
+ [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+ }
+ if (options['hashComments']) {
+ if (options['cStyleComments']) {
+ // Stop C preprocessor declarations at an unclosed open comment
+ shortcutStylePatterns.push(
+ [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+ null, '#']);
+ fallthroughStylePatterns.push(
+ [PR_STRING,
+ /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+ null]);
+ } else {
+ shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+ }
+ }
+ if (options['cStyleComments']) {
+ fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+ fallthroughStylePatterns.push(
+ [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+ }
+ if (options['regexLiterals']) {
+ var REGEX_LITERAL = (
+ // A regular expression literal starts with a slash that is
+ // not followed by * or / so that it is not confused with
+ // comments.
+ '/(?=[^/*])'
+ // and then contains any number of raw characters,
+ + '(?:[^/\\x5B\\x5C]'
+ // escape sequences (\x5C),
+ + '|\\x5C[\\s\\S]'
+ // or non-nesting character sets (\x5B\x5D);
+ + '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+ // finally closed by a /.
+ + '/');
+ fallthroughStylePatterns.push(
+ ['lang-regex',
+ new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+ ]);
+ }
+
+ var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
+ if (keywords.length) {
+ fallthroughStylePatterns.push(
+ [PR_KEYWORD,
+ new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
+ }
+
+ shortcutStylePatterns.push([PR_PLAIN, /^\s+/, null, ' \r\n\t\xA0']);
+ fallthroughStylePatterns.push(
+ // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+ [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null],
+ [PR_TYPE, /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
+ [PR_PLAIN, /^[a-z_$][a-z_$@0-9]*/i, null],
+ [PR_LITERAL,
+ new RegExp(
+ '^(?:'
+ // A hex number
+ + '0x[a-f0-9]+'
+ // or an octal or decimal number,
+ + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+ // possibly in scientific notation
+ + '(?:e[+\\-]?\\d+)?'
+ + ')'
+ // with an optional modifier like UL for unsigned long
+ + '[a-z]*', 'i'),
+ null, '0123456789'],
+ [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
+
+ return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+ }
+
+ var decorateSource = sourceDecorator({
+ 'keywords': ALL_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ });
+
+ /** Breaks {@code job.source} around style boundaries in
+ * {@code job.decorations} while re-interleaving {@code job.extractedTags},
+ * and leaves the result in {@code job.prettyPrintedHtml}.
+ * @param {Object} job like {
+ * source: {string} source as plain text,
+ * extractedTags: {Array.<number|string>} extractedTags chunks of raw
+ * html preceded by their position in {@code job.source}
+ * in order
+ * decorations: {Array.<number|string} an array of style classes preceded
+ * by the position at which they start in job.source in order
+ * }
+ * @private
+ */
+ function recombineTagsAndDecorations(job) {
+ var sourceText = job.source;
+ var extractedTags = job.extractedTags;
+ var decorations = job.decorations;
+
+ var html = [];
+ // index past the last char in sourceText written to html
+ var outputIdx = 0;
+
+ var openDecoration = null;
+ var currentDecoration = null;
+ var tagPos = 0; // index into extractedTags
+ var decPos = 0; // index into decorations
+ var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
+
+ var adjacentSpaceRe = /([\r\n ]) /g;
+ var startOrSpaceRe = /(^| ) /gm;
+ var newlineRe = /\r\n?|\n/g;
+ var trailingSpaceRe = /[ \r\n]$/;
+ var lastWasSpace = true; // the last text chunk emitted ended with a space.
+
+ // A helper function that is responsible for opening sections of decoration
+ // and outputing properly escaped chunks of source
+ function emitTextUpTo(sourceIdx) {
+ if (sourceIdx > outputIdx) {
+ if (openDecoration && openDecoration !== currentDecoration) {
+ // Close the current decoration
+ html.push('</span>');
+ openDecoration = null;
+ }
+ if (!openDecoration && currentDecoration) {
+ openDecoration = currentDecoration;
+ html.push('<span class="', openDecoration, '">');
+ }
+ // This interacts badly with some wikis which introduces paragraph tags
+ // into pre blocks for some strange reason.
+ // It's necessary for IE though which seems to lose the preformattedness
+ // of <pre> tags when their innerHTML is assigned.
+ // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
+ // and it serves to undo the conversion of <br>s to newlines done in
+ // chunkify.
+ var htmlChunk = textToHtml(
+ tabExpander(sourceText.substring(outputIdx, sourceIdx)))
+ .replace(lastWasSpace
+ ? startOrSpaceRe
+ : adjacentSpaceRe, '$1 ');
+ // Keep track of whether we need to escape space at the beginning of the
+ // next chunk.
+ lastWasSpace = trailingSpaceRe.test(htmlChunk);
+ // IE collapses multiple adjacient <br>s into 1 line break.
+ // Prefix every <br> with ' ' can prevent such IE's behavior.
+ var lineBreakHtml = window['_pr_isIE6']() ? ' <br />' : '<br />';
+ html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
+ outputIdx = sourceIdx;
+ }
+ }
+
+ while (true) {
+ // Determine if we're going to consume a tag this time around. Otherwise
+ // we consume a decoration or exit.
+ var outputTag;
+ if (tagPos < extractedTags.length) {
+ if (decPos < decorations.length) {
+ // Pick one giving preference to extractedTags since we shouldn't open
+ // a new style that we're going to have to immediately close in order
+ // to output a tag.
+ outputTag = extractedTags[tagPos] <= decorations[decPos];
+ } else {
+ outputTag = true;
+ }
+ } else {
+ outputTag = false;
+ }
+ // Consume either a decoration or a tag or exit.
+ if (outputTag) {
+ emitTextUpTo(extractedTags[tagPos]);
+ if (openDecoration) {
+ // Close the current decoration
+ html.push('</span>');
+ openDecoration = null;
+ }
+ html.push(extractedTags[tagPos + 1]);
+ tagPos += 2;
+ } else if (decPos < decorations.length) {
+ emitTextUpTo(decorations[decPos]);
+ currentDecoration = decorations[decPos + 1];
+ decPos += 2;
+ } else {
+ break;
+ }
+ }
+ emitTextUpTo(sourceText.length);
+ if (openDecoration) {
+ html.push('</span>');
+ }
+ job.prettyPrintedHtml = html.join('');
+ }
+
+ /** Maps language-specific file extensions to handlers. */
+ var langHandlerRegistry = {};
+ /** Register a language handler for the given file extensions.
+ * @param {function (Object)} handler a function from source code to a list
+ * of decorations. Takes a single argument job which describes the
+ * state of the computation. The single parameter has the form
+ * {@code {
+ * source: {string} as plain text.
+ * decorations: {Array.<number|string>} an array of style classes
+ * preceded by the position at which they start in
+ * job.source in order.
+ * The language handler should assigned this field.
+ * basePos: {int} the position of source in the larger source chunk.
+ * All positions in the output decorations array are relative
+ * to the larger source chunk.
+ * } }
+ * @param {Array.<string>} fileExtensions
+ */
+ function registerLangHandler(handler, fileExtensions) {
+ for (var i = fileExtensions.length; --i >= 0;) {
+ var ext = fileExtensions[i];
+ if (!langHandlerRegistry.hasOwnProperty(ext)) {
+ langHandlerRegistry[ext] = handler;
+ } else if ('console' in window) {
+ console.warn('cannot override language handler %s', ext);
+ }
+ }
+ }
+ function langHandlerForExtension(extension, source) {
+ if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+ // Treat it as markup if the first non whitespace character is a < and
+ // the last non-whitespace character is a >.
+ extension = /^\s*</.test(source)
+ ? 'default-markup'
+ : 'default-code';
+ }
+ return langHandlerRegistry[extension];
+ }
+ registerLangHandler(decorateSource, ['default-code']);
+ registerLangHandler(
+ createSimpleLexer(
+ [],
+ [
+ [PR_PLAIN, /^[^<?]+/],
+ [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+ [PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/],
+ // Unescaped content in an unknown language
+ ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/],
+ ['lang-', /^<%([\s\S]+?)(?:%>|$)/],
+ [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+ ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+ // Unescaped content in javascript. (Or possibly vbscript).
+ ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+ // Contains unescaped stylesheet content
+ ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+ ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]
+ ]),
+ ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+ registerLangHandler(
+ createSimpleLexer(
+ [
+ [PR_PLAIN, /^[\s]+/, null, ' \t\r\n'],
+ [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+ ],
+ [
+ [PR_TAG, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+ [PR_ATTRIB_NAME, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+ ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+ [PR_PUNCTUATION, /^[=<>\/]+/],
+ ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i],
+ ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i],
+ ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+ ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i],
+ ['lang-css', /^style\s*=\s*\'([^\']+)\'/i],
+ ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i]
+ ]),
+ ['in.tag']);
+ registerLangHandler(
+ createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': CPP_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true
+ }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': 'null true false'
+ }), ['json']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': CSHARP_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true,
+ 'verbatimStrings': true
+ }), ['cs']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': JAVA_KEYWORDS,
+ 'cStyleComments': true
+ }), ['java']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': SH_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true
+ }), ['bsh', 'csh', 'sh']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': PYTHON_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'tripleQuotedStrings': true
+ }), ['cv', 'py']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': PERL_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ }), ['perl', 'pl', 'pm']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': RUBY_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ }), ['rb']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': JSCRIPT_KEYWORDS,
+ 'cStyleComments': true,
+ 'regexLiterals': true
+ }), ['js']);
+ registerLangHandler(
+ createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+ function applyDecorator(job) {
+ var sourceCodeHtml = job.sourceCodeHtml;
+ var opt_langExtension = job.langExtension;
+
+ // Prepopulate output in case processing fails with an exception.
+ job.prettyPrintedHtml = sourceCodeHtml;
+
+ try {
+ // Extract tags, and convert the source code to plain text.
+ var sourceAndExtractedTags = extractTags(sourceCodeHtml);
+ /** Plain text. @type {string} */
+ var source = sourceAndExtractedTags.source;
+ job.source = source;
+ job.basePos = 0;
+
+ /** Even entries are positions in source in ascending order. Odd entries
+ * are tags that were extracted at that position.
+ * @type {Array.<number|string>}
+ */
+ job.extractedTags = sourceAndExtractedTags.tags;
+
+ // Apply the appropriate language handler
+ langHandlerForExtension(opt_langExtension, source)(job);
+ // Integrate the decorations and tags back into the source code to produce
+ // a decorated html string which is left in job.prettyPrintedHtml.
+ recombineTagsAndDecorations(job);
+ } catch (e) {
+ if ('console' in window) {
+ console.log(e);
+ console.trace();
+ }
+ }
+ }
+
+ function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
+ var job = {
+ sourceCodeHtml: sourceCodeHtml,
+ langExtension: opt_langExtension
+ };
+ applyDecorator(job);
+ return job.prettyPrintedHtml;
+ }
+
+ function prettyPrint(opt_whenDone) {
+ var isIE678 = window['_pr_isIE6']();
+ var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
+ // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
+
+ // fetch a list of nodes to rewrite
+ var codeSegments = [
+ document.getElementsByTagName('pre'),
+ document.getElementsByTagName('code'),
+ document.getElementsByTagName('td'), /* ND Change: Add tables to support prototypes. */
+ document.getElementsByTagName('xmp') ];
+ var elements = [];
+ for (var i = 0; i < codeSegments.length; ++i) {
+ for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+ elements.push(codeSegments[i][j]);
+ }
+ }
+ codeSegments = null;
+
+ var clock = Date;
+ if (!clock['now']) {
+ clock = { 'now': function () { return (new Date).getTime(); } };
+ }
+
+ // The loop is broken into a series of continuations to make sure that we
+ // don't make the browser unresponsive when rewriting a large page.
+ var k = 0;
+ var prettyPrintingJob;
+
+ function doWork() {
+ var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+ clock.now() + 250 /* ms */ :
+ Infinity);
+ for (; k < elements.length && clock.now() < endTime; k++) {
+ var cs = elements[k];
+ if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
+ // If the classes includes a language extensions, use it.
+ // Language extensions can be specified like
+ // <pre class="prettyprint lang-cpp">
+ // the language extension "cpp" is used to find a language handler as
+ // passed to PR_registerLangHandler.
+ var langExtension = cs.className.match(/\blang-(\w+)\b/);
+ if (langExtension) { langExtension = langExtension[1]; }
+
+ // make sure this is not nested in an already prettified element
+ var nested = false;
+ for (var p = cs.parentNode; p; p = p.parentNode) {
+ if ((p.tagName === 'pre' || p.tagName === 'code' ||
+ p.tagName === 'xmp' || p.tagName === 'td') && /* ND Change: Add tables to support prototypes */
+ p.className && p.className.indexOf('prettyprint') >= 0) {
+ nested = true;
+ break;
+ }
+ }
+ if (!nested) {
+ // fetch the content as a snippet of properly escaped HTML.
+ // Firefox adds newlines at the end.
+ var content = getInnerHtml(cs);
+ content = content.replace(/(?:\r\n?|\n)$/, '');
+
+ /* ND Change: we need to preserve s so change them to a special character instead of a space. */
+ content = content.replace(/ /g, '\x11');
+
+ // do the pretty printing
+ prettyPrintingJob = {
+ sourceCodeHtml: content,
+ langExtension: langExtension,
+ sourceNode: cs
+ };
+ applyDecorator(prettyPrintingJob);
+ replaceWithPrettyPrintedHtml();
+ }
+ }
+ }
+ if (k < elements.length) {
+ // finish up in a continuation
+ setTimeout(doWork, 250);
+ } else if (opt_whenDone) {
+ opt_whenDone();
+ }
+ }
+
+ function replaceWithPrettyPrintedHtml() {
+ var newContent = prettyPrintingJob.prettyPrintedHtml;
+ if (!newContent) { return; }
+
+ /* ND Change: Restore the preserved s. */
+ newContent = newContent.replace(/\x11/g, ' ');
+
+ var cs = prettyPrintingJob.sourceNode;
+
+ // push the prettified html back into the tag.
+ if (!isRawContent(cs)) {
+ // just replace the old html with the new
+ cs.innerHTML = newContent;
+ } else {
+ // we need to change the tag to a <pre> since <xmp>s do not allow
+ // embedded tags such as the span tags used to attach styles to
+ // sections of source code.
+ var pre = document.createElement('PRE');
+ for (var i = 0; i < cs.attributes.length; ++i) {
+ var a = cs.attributes[i];
+ if (a.specified) {
+ var aname = a.name.toLowerCase();
+ if (aname === 'class') {
+ pre.className = a.value; // For IE 6
+ } else {
+ pre.setAttribute(a.name, a.value);
+ }
+ }
+ }
+ pre.innerHTML = newContent;
+
+ // remove the old
+ cs.parentNode.replaceChild(pre, cs);
+ cs = pre;
+ }
+
+ // Replace <br>s with line-feeds so that copying and pasting works
+ // on IE 6.
+ // Doing this on other browsers breaks lots of stuff since \r\n is
+ // treated as two newlines on Firefox, and doing this also slows
+ // down rendering.
+ if (isIE678 && cs.tagName === 'PRE') {
+ var lineBreaks = cs.getElementsByTagName('br');
+ for (var j = lineBreaks.length; --j >= 0;) {
+ var lineBreak = lineBreaks[j];
+ lineBreak.parentNode.replaceChild(
+ document.createTextNode(ieNewline), lineBreak);
+ }
+ }
+ }
+
+ doWork();
+ }
+
+ window['PR_normalizedHtml'] = normalizedHtml;
+ window['prettyPrintOne'] = prettyPrintOne;
+ window['prettyPrint'] = prettyPrint;
+ window['PR'] = {
+ 'combinePrefixPatterns': combinePrefixPatterns,
+ 'createSimpleLexer': createSimpleLexer,
+ 'registerLangHandler': registerLangHandler,
+ 'sourceDecorator': sourceDecorator,
+ 'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+ 'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+ 'PR_COMMENT': PR_COMMENT,
+ 'PR_DECLARATION': PR_DECLARATION,
+ 'PR_KEYWORD': PR_KEYWORD,
+ 'PR_LITERAL': PR_LITERAL,
+ 'PR_NOCODE': PR_NOCODE,
+ 'PR_PLAIN': PR_PLAIN,
+ 'PR_PUNCTUATION': PR_PUNCTUATION,
+ 'PR_SOURCE': PR_SOURCE,
+ 'PR_STRING': PR_STRING,
+ 'PR_TAG': PR_TAG,
+ 'PR_TYPE': PR_TYPE
+ };
+})();
+
+
+// ____________________________________________________________________________
+
+
+
+// Lua extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),['lua'])
+
+
+// Haskell extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,' \n\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),['hs'])
+
+
+// ML extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),['fs','ml'])
+
+
+// SQL extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),['sql'])
+
+
+// VB extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,' \n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),['vb','vbs'])
diff --git a/apidoc/html/javascript/searchdata.js b/apidoc/html/javascript/searchdata.js
new file mode 100644
index 0000000..ec910ce
--- /dev/null
+++ b/apidoc/html/javascript/searchdata.js
@@ -0,0 +1,152 @@
+var indexSectionsWithContent = {
+ "Constants": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": true,
+ "D": false,
+ "E": false,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Files": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": true,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "General": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": true,
+ "B": false,
+ "C": true,
+ "D": false,
+ "E": true,
+ "F": true,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": true,
+ "R": true,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Functions": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": true,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": false,
+ "F": true,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Types": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": true,
+ "F": true,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": true,
+ "R": true,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ }
+ }
\ No newline at end of file
diff --git a/apidoc/html/menu.html b/apidoc/html/menu.html
new file mode 100644
index 0000000..6f95daa
--- /dev/null
+++ b/apidoc/html/menu.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Menu - MBT_Applib</title><base target="Content"><link rel="stylesheet" type="text/css" href="styles/main.css"><script language=JavaScript src="javascript/main.js"></script><script language=JavaScript src="javascript/searchdata.js"></script></head><body class="FramedMenuPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Menu><div class=MTitle>MBT_Applib<div class=MSubTitle>API Documentation</div></div><div class=MEntry><div class=MFile><a href="files/EPTF_MBT_LGen_Definitions-ttcn.html">EPTF_MBT_LGen_Definitions</a></div></div><div class=MEntry><div class=MFile><a href="files/EPTF_MBT_LGen_Functions-ttcn.html">EPTF_MBT_LGen_Functions</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')" target="_self">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="index/Types.html">Types</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "FramedHTML", "search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Types">Types</option></select></div></div><!--Menu-->
+
+
+<div id=Footer><p>Copyright 2020 Test Competence Center</p><p>Generated on 2020-02-05</p><p><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></p></div><!--Footer-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/ConstantsC.html b/apidoc/html/search/ConstantsC.html
new file mode 100644
index 0000000..06ec864
--- /dev/null
+++ b/apidoc/html/search/ConstantsC.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_c_undEPTF_undMBT_undinputIdx_undincomingTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingTestStepRequest" class=ISymbol>c_EPTF_MBT_inputIdx_incomingTestStepRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undinputIdx_undincomingUserRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingUserRequest" class=ISymbol>c_EPTF_MBT_inputIdx_incomingUserRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undinputName_undincomingTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputName_incomingTestStepRequest" class=ISymbol>c_EPTF_MBT_inputName_incomingTestStepRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undmyBName><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_myBName" class=ISymbol>c_EPTF_MBT_myBName</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undinvokeTestStep><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeTestStep" class=ISymbol>c_EPTF_MBT_stepIdx_invokeTestStep</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeUserFunction" class=ISymbol>c_EPTF_MBT_stepIdx_invokeUserFunction</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_sendUserResponse" class=ISymbol>c_EPTF_MBT_stepIdx_sendUserResponse</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepName_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_invokeUserFunction" class=ISymbol>c_EPTF_MBT_stepName_invokeUserFunction</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepName_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_sendUserResponse" class=ISymbol>c_EPTF_MBT_stepName_sendUserResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FilesE.html b/apidoc/html/search/FilesE.html
new file mode 100644
index 0000000..93fed8a
--- /dev/null
+++ b/apidoc/html/search/FilesE.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EPTF_undMBT_undLGen_undDefinitions><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_Definitions" class=ISymbol>EPTF_MBT_LGen_Definitions</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undLGen_undFunctions><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#EPTF_MBT_LGen_Functions" class=ISymbol>EPTF_MBT_LGen_Functions</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FunctionsA.html b/apidoc/html/search/FunctionsA.html
new file mode 100644
index 0000000..6daa22a
--- /dev/null
+++ b/apidoc/html/search/FunctionsA.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_as_undEPTF_undMBT_undPCO_undHandler><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#as_EPTF_MBT_PCO_Handler" class=ISymbol>as_EPTF_MBT_PCO_Handler</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FunctionsF.html b/apidoc/html/search/FunctionsF.html
new file mode 100644
index 0000000..197d89e
--- /dev/null
+++ b/apidoc/html/search/FunctionsF.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_f_undconvert_undFsmAddr2TestStepArgs><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_convert_FsmAddr2TestStepArgs" class=ISymbol>f_convert_FsmAddr2TestStepArgs</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undbindEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_bindEntity" class=ISymbol>f_EPTF_MBT_bindEntity</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undcleanup_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_cleanup_CT" class=ISymbol>f_EPTF_MBT_cleanup_CT</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_unddeclareEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareEvents" class=ISymbol>f_EPTF_MBT_declareEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_unddeclareTestSteps><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareTestSteps" class=ISymbol>f_EPTF_MBT_declareTestSteps</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undinit><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_init" class=ISymbol>f_EPTF_MBT_init</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undinitLGenFsm><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_initLGenFsm" class=ISymbol>f_EPTF_MBT_initLGenFsm</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undListener_undcatchEntityEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchEntityEvents" class=ISymbol>f_EPTF_MBT_Listener_catchEntityEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undListener_undcatchGenericEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchGenericEvents" class=ISymbol>f_EPTF_MBT_Listener_catchGenericEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undresetEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_resetEntity" class=ISymbol>f_EPTF_MBT_resetEntity</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTester_undinit><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Tester_init" class=ISymbol>f_EPTF_MBT_Tester_init</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undinvokeTestStep><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeTestStep" class=ISymbol>f_EPTF_MBT_TestStep_invokeTestStep</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeUserFunction" class=ISymbol>f_EPTF_MBT_TestStep_invokeUserFunction</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_sendUserResponse" class=ISymbol>f_EPTF_MBT_TestStep_sendUserResponse</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undunbindEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_unbindEntity" class=ISymbol>f_EPTF_MBT_unbindEntity</a></div></div><div class=SRResult id=SR_f_undMBT_undactivateFsm><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_activateFsm" class=ISymbol>f_MBT_activateFsm</a></div></div><div class=SRResult id=SR_f_undMBT_unddispatch><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_dispatch" class=ISymbol>f_MBT_dispatch</a></div></div><div class=SRResult id=SR_f_undMBT_undexecute><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_execute" class=ISymbol>f_MBT_execute</a></div></div><div class=SRResult id=SR_f_undMBT_undwaitFor><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_waitFor" class=ISymbol>f_MBT_waitFor</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralA.html b/apidoc/html/search/GeneralA.html
new file mode 100644
index 0000000..6daa22a
--- /dev/null
+++ b/apidoc/html/search/GeneralA.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_as_undEPTF_undMBT_undPCO_undHandler><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#as_EPTF_MBT_PCO_Handler" class=ISymbol>as_EPTF_MBT_PCO_Handler</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralC.html b/apidoc/html/search/GeneralC.html
new file mode 100644
index 0000000..06ec864
--- /dev/null
+++ b/apidoc/html/search/GeneralC.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_c_undEPTF_undMBT_undinputIdx_undincomingTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingTestStepRequest" class=ISymbol>c_EPTF_MBT_inputIdx_incomingTestStepRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undinputIdx_undincomingUserRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputIdx_incomingUserRequest" class=ISymbol>c_EPTF_MBT_inputIdx_incomingUserRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undinputName_undincomingTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_inputName_incomingTestStepRequest" class=ISymbol>c_EPTF_MBT_inputName_incomingTestStepRequest</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undmyBName><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_myBName" class=ISymbol>c_EPTF_MBT_myBName</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undinvokeTestStep><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeTestStep" class=ISymbol>c_EPTF_MBT_stepIdx_invokeTestStep</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_invokeUserFunction" class=ISymbol>c_EPTF_MBT_stepIdx_invokeUserFunction</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepIdx_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepIdx_sendUserResponse" class=ISymbol>c_EPTF_MBT_stepIdx_sendUserResponse</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepName_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_invokeUserFunction" class=ISymbol>c_EPTF_MBT_stepName_invokeUserFunction</a></div></div><div class=SRResult id=SR_c_undEPTF_undMBT_undstepName_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#c_EPTF_MBT_stepName_sendUserResponse" class=ISymbol>c_EPTF_MBT_stepName_sendUserResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralE.html b/apidoc/html/search/GeneralE.html
new file mode 100644
index 0000000..5d1ed57
--- /dev/null
+++ b/apidoc/html/search/GeneralE.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EPTF_undMBT_undCommandRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandRequest" class=ISymbol>EPTF_MBT_CommandRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCommandResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandResponse" class=ISymbol>EPTF_MBT_CommandResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undConfigRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigRequest" class=ISymbol>EPTF_MBT_ConfigRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undConfigResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigResponse" class=ISymbol>EPTF_MBT_ConfigResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCreateFSMRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMRequest" class=ISymbol>EPTF_MBT_CreateFSMRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCreateFSMResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMResponse" class=ISymbol>EPTF_MBT_CreateFSMResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undEventDispatchRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_EventDispatchRequest" class=ISymbol>EPTF_MBT_EventDispatchRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undLGen_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_CT" class=ISymbol>EPTF_MBT_LGen_CT</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undLGen_undDefinitions><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_Definitions" class=ISymbol>EPTF_MBT_LGen_Definitions</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undLGen_undFunctions><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#EPTF_MBT_LGen_Functions" class=ISymbol>EPTF_MBT_LGen_Functions</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undPortType><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_PortType" class=ISymbol>EPTF_MBT_PortType</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undRemoveFSMRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_RemoveFSMRequest" class=ISymbol>EPTF_MBT_RemoveFSMRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTester_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_Tester_CT" class=ISymbol>EPTF_MBT_Tester_CT</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepRequest" class=ISymbol>EPTF_MBT_TestStepRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTestStepResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepResponse" class=ISymbol>EPTF_MBT_TestStepResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undUserRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserRequest" class=ISymbol>EPTF_MBT_UserRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserResponse" class=ISymbol>EPTF_MBT_UserResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralF.html b/apidoc/html/search/GeneralF.html
new file mode 100644
index 0000000..b94e744
--- /dev/null
+++ b/apidoc/html/search/GeneralF.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_f_undconvert_undFsmAddr2TestStepArgs><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_convert_FsmAddr2TestStepArgs" class=ISymbol>f_convert_FsmAddr2TestStepArgs</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undbindEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_bindEntity" class=ISymbol>f_EPTF_MBT_bindEntity</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undcleanup_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_cleanup_CT" class=ISymbol>f_EPTF_MBT_cleanup_CT</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_unddeclareEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareEvents" class=ISymbol>f_EPTF_MBT_declareEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_unddeclareTestSteps><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_declareTestSteps" class=ISymbol>f_EPTF_MBT_declareTestSteps</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undinit><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_init" class=ISymbol>f_EPTF_MBT_init</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undinitLGenFsm><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_initLGenFsm" class=ISymbol>f_EPTF_MBT_initLGenFsm</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undListener_undcatchEntityEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchEntityEvents" class=ISymbol>f_EPTF_MBT_Listener_catchEntityEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undListener_undcatchGenericEvents><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Listener_catchGenericEvents" class=ISymbol>f_EPTF_MBT_Listener_catchGenericEvents</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undresetEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_resetEntity" class=ISymbol>f_EPTF_MBT_resetEntity</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTester_undinit><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_Tester_init" class=ISymbol>f_EPTF_MBT_Tester_init</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undinvokeTestStep><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeTestStep" class=ISymbol>f_EPTF_MBT_TestStep_invokeTestStep</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undinvokeUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_invokeUserFunction" class=ISymbol>f_EPTF_MBT_TestStep_invokeUserFunction</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undTestStep_undsendUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_TestStep_sendUserResponse" class=ISymbol>f_EPTF_MBT_TestStep_sendUserResponse</a></div></div><div class=SRResult id=SR_f_undEPTF_undMBT_undunbindEntity><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_EPTF_MBT_unbindEntity" class=ISymbol>f_EPTF_MBT_unbindEntity</a></div></div><div class=SRResult id=SR_f_undMBT_undactivateFsm><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_activateFsm" class=ISymbol>f_MBT_activateFsm</a></div></div><div class=SRResult id=SR_f_undMBT_unddispatch><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_dispatch" class=ISymbol>f_MBT_dispatch</a></div></div><div class=SRResult id=SR_f_undMBT_undexecute><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_execute" class=ISymbol>f_MBT_execute</a></div></div><div class=SRResult id=SR_f_undMBT_undwaitFor><div class=IEntry><a href="../files/EPTF_MBT_LGen_Functions-ttcn.html#f_MBT_waitFor" class=ISymbol>f_MBT_waitFor</a></div></div><div class=SRResult id=SR_fcb_undEPTF_undMBT_undcustomUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_customUserFunction" class=ISymbol>fcb_EPTF_MBT_customUserFunction</a></div></div><div class=SRResult id=SR_fcb_undEPTF_undMBT_undentityGroupCreated><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_entityGroupCreated" class=ISymbol>fcb_EPTF_MBT_entityGroupCreated</a></div></div><div class=SRResult id=SR_FsmAddr><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" class=ISymbol>FsmAddr</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralQ.html b/apidoc/html/search/GeneralQ.html
new file mode 100644
index 0000000..ebe97ad
--- /dev/null
+++ b/apidoc/html/search/GeneralQ.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_QuitAckResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitAckResponse" class=ISymbol>QuitAckResponse</a></div></div><div class=SRResult id=SR_QuitCommand><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitCommand" class=ISymbol>QuitCommand</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralR.html b/apidoc/html/search/GeneralR.html
new file mode 100644
index 0000000..e39cdd6
--- /dev/null
+++ b/apidoc/html/search/GeneralR.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ReadyResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#ReadyResponse" class=ISymbol>ReadyResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/NoResults.html b/apidoc/html/search/NoResults.html
new file mode 100644
index 0000000..e15a60d
--- /dev/null
+++ b/apidoc/html/search/NoResults.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=NoMatches>No Matches</div></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/TypesE.html b/apidoc/html/search/TypesE.html
new file mode 100644
index 0000000..ff80fda
--- /dev/null
+++ b/apidoc/html/search/TypesE.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EPTF_undMBT_undCommandRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandRequest" class=ISymbol>EPTF_MBT_CommandRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCommandResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CommandResponse" class=ISymbol>EPTF_MBT_CommandResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undConfigRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigRequest" class=ISymbol>EPTF_MBT_ConfigRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undConfigResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_ConfigResponse" class=ISymbol>EPTF_MBT_ConfigResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCreateFSMRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMRequest" class=ISymbol>EPTF_MBT_CreateFSMRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undCreateFSMResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_CreateFSMResponse" class=ISymbol>EPTF_MBT_CreateFSMResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undEventDispatchRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_EventDispatchRequest" class=ISymbol>EPTF_MBT_EventDispatchRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undLGen_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_LGen_CT" class=ISymbol>EPTF_MBT_LGen_CT</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undPortType><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_PortType" class=ISymbol>EPTF_MBT_PortType</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undRemoveFSMRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_RemoveFSMRequest" class=ISymbol>EPTF_MBT_RemoveFSMRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTester_undCT><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_Tester_CT" class=ISymbol>EPTF_MBT_Tester_CT</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTestStepRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepRequest" class=ISymbol>EPTF_MBT_TestStepRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undTestStepResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_TestStepResponse" class=ISymbol>EPTF_MBT_TestStepResponse</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undUserRequest><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserRequest" class=ISymbol>EPTF_MBT_UserRequest</a></div></div><div class=SRResult id=SR_EPTF_undMBT_undUserResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#EPTF_MBT_UserResponse" class=ISymbol>EPTF_MBT_UserResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/TypesF.html b/apidoc/html/search/TypesF.html
new file mode 100644
index 0000000..fb04849
--- /dev/null
+++ b/apidoc/html/search/TypesF.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fcb_undEPTF_undMBT_undcustomUserFunction><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_customUserFunction" class=ISymbol>fcb_EPTF_MBT_customUserFunction</a></div></div><div class=SRResult id=SR_fcb_undEPTF_undMBT_undentityGroupCreated><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#fcb_EPTF_MBT_entityGroupCreated" class=ISymbol>fcb_EPTF_MBT_entityGroupCreated</a></div></div><div class=SRResult id=SR_FsmAddr><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#FsmAddr" class=ISymbol>FsmAddr</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/TypesQ.html b/apidoc/html/search/TypesQ.html
new file mode 100644
index 0000000..ebe97ad
--- /dev/null
+++ b/apidoc/html/search/TypesQ.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_QuitAckResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitAckResponse" class=ISymbol>QuitAckResponse</a></div></div><div class=SRResult id=SR_QuitCommand><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#QuitCommand" class=ISymbol>QuitCommand</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/TypesR.html b/apidoc/html/search/TypesR.html
new file mode 100644
index 0000000..e39cdd6
--- /dev/null
+++ b/apidoc/html/search/TypesR.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ReadyResponse><div class=IEntry><a href="../files/EPTF_MBT_LGen_Definitions-ttcn.html#ReadyResponse" class=ISymbol>ReadyResponse</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/styles/1.css b/apidoc/html/styles/1.css
new file mode 100644
index 0000000..511703f
--- /dev/null
+++ b/apidoc/html/styles/1.css
@@ -0,0 +1,828 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
+ Natural Docs is licensed under version 3 of the GNU Affero General Public
+ License (AGPL). Refer to License.txt for the complete details.
+
+ This file may be distributed with documentation files generated by Natural Docs.
+ Such documentation is not covered by Natural Docs' copyright and licensing,
+ and may have its own copyright and distribution terms as decided by its author.
+*/
+
+body {
+ font: 10pt Verdana, Arial, sans-serif;
+ color: #000000;
+ margin: 0; padding: 0;
+ }
+
+.ContentPage,
+.IndexPage,
+.FramedMenuPage {
+ background-color: #E8E8E8;
+ }
+.FramedContentPage,
+.FramedIndexPage,
+.FramedSearchResultsPage,
+.PopupSearchResultsPage {
+ background-color: #FFFFFF;
+ }
+
+
+a:link,
+a:visited { color: #900000; text-decoration: none }
+a:hover { color: #900000; text-decoration: underline }
+a:active { color: #FF0000; text-decoration: underline }
+
+td {
+ vertical-align: top }
+
+img { border: 0; }
+
+
+/*
+ Comment out this line to use web-style paragraphs (blank line between
+ paragraphs, no indent) instead of print-style paragraphs (no blank line,
+ indented.)
+*/
+p {
+ text-indent: 5ex; margin: 0 }
+
+
+/* Opera doesn't break with just wbr, but will if you add this. */
+.Opera wbr:after {
+ content: "\00200B";
+ }
+
+
+/* Blockquotes are used as containers for things that may need to scroll. */
+blockquote {
+ padding: 0;
+ margin: 0;
+ overflow: auto;
+ }
+
+
+.Firefox1 blockquote {
+ padding-bottom: .5em;
+ }
+
+/* Turn off scrolling when printing. */
+@media print {
+ blockquote {
+ overflow: visible;
+ }
+ .IE blockquote {
+ width: auto;
+ }
+ }
+
+
+
+#Menu {
+ font-size: 9pt;
+ padding: 10px 0 0 0;
+ }
+.ContentPage #Menu,
+.IndexPage #Menu {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 31ex;
+ overflow: hidden;
+ }
+.ContentPage .Firefox #Menu,
+.IndexPage .Firefox #Menu {
+ width: 27ex;
+ }
+
+
+ .MTitle {
+ font-size: 16pt; font-weight: bold; font-variant: small-caps;
+ text-align: center;
+ padding: 5px 10px 15px 10px;
+ border-bottom: 1px dotted #000000;
+ margin-bottom: 15px }
+
+ .MSubTitle {
+ font-size: 9pt; font-weight: normal; font-variant: normal;
+ margin-top: 1ex; margin-bottom: 5px }
+
+
+ .MEntry a:link,
+ .MEntry a:hover,
+ .MEntry a:visited { color: #606060; margin-right: 0 }
+ .MEntry a:active { color: #A00000; margin-right: 0 }
+
+
+ .MGroup {
+ font-variant: small-caps; font-weight: bold;
+ margin: 1em 0 1em 10px;
+ }
+
+ .MGroupContent {
+ font-variant: normal; font-weight: normal }
+
+ .MGroup a:link,
+ .MGroup a:hover,
+ .MGroup a:visited { color: #545454; margin-right: 10px }
+ .MGroup a:active { color: #A00000; margin-right: 10px }
+
+
+ .MFile,
+ .MText,
+ .MLink,
+ .MIndex {
+ padding: 1px 17px 2px 10px;
+ margin: .25em 0 .25em 0;
+ }
+
+ .MText {
+ font-size: 8pt; font-style: italic }
+
+ .MLink {
+ font-style: italic }
+
+ #MSelected {
+ color: #000000; background-color: #FFFFFF;
+ /* Replace padding with border. */
+ padding: 0 10px 0 10px;
+ border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
+ margin-right: 5px;
+ }
+
+ /* Close off the left side when its in a group. */
+ .MGroup #MSelected {
+ padding-left: 9px; border-left-width: 1px }
+
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
+ .Firefox #MSelected {
+ -moz-border-radius-topright: 10px;
+ -moz-border-radius-bottomright: 10px }
+ .Firefox .MGroup #MSelected {
+ -moz-border-radius-topleft: 10px;
+ -moz-border-radius-bottomleft: 10px }
+
+
+ #MSearchPanel {
+ padding: 0px 6px;
+ margin: .25em 0;
+ }
+
+
+ #MSearchField {
+ font: italic 9pt Verdana, sans-serif;
+ color: #606060;
+ background-color: #E8E8E8;
+ border: none;
+ padding: 2px 4px;
+ width: 100%;
+ }
+ /* Only Opera gets it right. */
+ .Firefox #MSearchField,
+ .IE #MSearchField,
+ .Safari #MSearchField {
+ width: 94%;
+ }
+ .Opera9 #MSearchField,
+ .Konqueror #MSearchField {
+ width: 97%;
+ }
+ .FramedMenuPage .Firefox #MSearchField,
+ .FramedMenuPage .Safari #MSearchField,
+ .FramedMenuPage .Konqueror #MSearchField {
+ width: 98%;
+ }
+
+ /* Firefox doesn't do this right in frames without #MSearchPanel added on.
+ It's presence doesn't hurt anything other browsers. */
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
+ background-color: #FFFFFF;
+ border: 1px solid #C0C0C0;
+ padding: 1px 3px;
+ }
+ .MSearchPanelActive #MSearchField {
+ background-color: #FFFFFF;
+ border: 1px solid #C0C0C0;
+ font-style: normal;
+ padding: 1px 3px;
+ }
+
+ #MSearchType {
+ visibility: hidden;
+ font: 8pt Verdana, sans-serif;
+ width: 98%;
+ padding: 0;
+ border: 1px solid #C0C0C0;
+ }
+ .MSearchPanelActive #MSearchType,
+ /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
+ #MSearchType:focus {
+ visibility: visible;
+ color: #606060;
+ }
+ #MSearchType option#MSearchEverything {
+ font-weight: bold;
+ }
+
+ .Opera8 .MSearchPanelInactive:hover,
+ .Opera8 .MSearchPanelActive {
+ margin-left: -1px;
+ }
+
+
+ iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+ }
+ #MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000000;
+ background-color: #E8E8E8;
+ }
+ #MSearchResultsWindowClose {
+ font-weight: bold;
+ font-size: 8pt;
+ display: block;
+ padding: 2px 5px;
+ }
+ #MSearchResultsWindowClose:link,
+ #MSearchResultsWindowClose:visited {
+ color: #000000;
+ text-decoration: none;
+ }
+ #MSearchResultsWindowClose:active,
+ #MSearchResultsWindowClose:hover {
+ color: #800000;
+ text-decoration: none;
+ background-color: #F4F4F4;
+ }
+
+
+
+
+#Content {
+ padding-bottom: 15px;
+ }
+
+.ContentPage #Content {
+ border-width: 0 0 1px 1px;
+ border-style: solid;
+ border-color: #000000;
+ background-color: #FFFFFF;
+ font-size: 9pt; /* To make 31ex match the menu's 31ex. */
+ margin-left: 31ex;
+ }
+.ContentPage .Firefox #Content {
+ margin-left: 27ex;
+ }
+
+
+
+ .CTopic {
+ font-size: 10pt;
+ margin-bottom: 3em;
+ }
+
+
+ .CTitle {
+ font-size: 12pt; font-weight: bold;
+ border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
+ margin: 0 15px .5em 15px }
+
+ .CGroup .CTitle {
+ font-size: 16pt; font-variant: small-caps;
+ padding-left: 15px; padding-right: 15px;
+ border-width: 0 0 2px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ .CClass .CTitle,
+ .CInterface .CTitle,
+ .CDatabase .CTitle,
+ .CDatabaseTable .CTitle,
+ .CSection .CTitle {
+ font-size: 18pt;
+ color: #FFFFFF; background-color: #A0A0A0;
+ padding: 10px 15px 10px 15px;
+ border-width: 2px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ #MainTopic .CTitle {
+ font-size: 20pt;
+ color: #FFFFFF; background-color: #7070C0;
+ padding: 10px 15px 10px 15px;
+ border-width: 0 0 3px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ .CBody {
+ margin-left: 15px; margin-right: 15px }
+
+
+ .CToolTip {
+ position: absolute; visibility: hidden;
+ left: 0; top: 0;
+ background-color: #FFFFE0;
+ padding: 5px;
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
+ font-size: 8pt;
+ }
+
+ .Opera .CToolTip {
+ max-width: 98%;
+ }
+
+ /* Scrollbars would be useless. */
+ .CToolTip blockquote {
+ overflow: hidden;
+ }
+ .IE6 .CToolTip blockquote {
+ overflow: visible;
+ }
+
+ .CHeading {
+ font-weight: bold; font-size: 10pt;
+ margin: 1.5em 0 .5em 0;
+ }
+
+ .CBody pre {
+ font: 10pt "Courier New", Courier, monospace;
+ background-color: #FCFCFC;
+ margin: 1em 35px;
+ padding: 10px 15px 10px 10px;
+ border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
+ border-width: 1px 1px 1px 6px;
+ border-style: dashed dashed dashed solid;
+ }
+
+ .CBody ul {
+ /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
+ Reapply it here as padding. */
+ padding-left: 15px; padding-right: 15px;
+ margin: .5em 5ex .5em 5ex;
+ }
+
+ .CDescriptionList {
+ margin: .5em 5ex 0 5ex }
+
+ .CDLEntry {
+ font: 10pt "Courier New", Courier, monospace; color: #808080;
+ padding-bottom: .25em;
+ white-space: nowrap }
+
+ .CDLDescription {
+ font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */
+ padding-bottom: .5em; padding-left: 5ex }
+
+
+ .CTopic img {
+ text-align: center;
+ display: block;
+ margin: 1em auto;
+ }
+ .CImageCaption {
+ font-variant: small-caps;
+ font-size: 8pt;
+ color: #808080;
+ text-align: center;
+ position: relative;
+ top: 1em;
+ }
+
+ .CImageLink {
+ color: #808080;
+ font-style: italic;
+ }
+ a.CImageLink:link,
+ a.CImageLink:visited,
+ a.CImageLink:hover { color: #808080 }
+
+
+
+
+
+.Prototype {
+ font: 10pt "Courier New", Courier, monospace;
+ padding: 5px 3ex;
+ border-width: 1px; border-style: solid;
+ margin: 0 5ex 1.5em 5ex;
+ }
+
+ .Prototype td {
+ font-size: 10pt;
+ }
+
+ .PDefaultValue,
+ .PDefaultValuePrefix,
+ .PTypePrefix {
+ color: #8F8F8F;
+ }
+ .PTypePrefix {
+ text-align: right;
+ }
+ .PAfterParameters {
+ vertical-align: bottom;
+ }
+
+ .IE .Prototype table {
+ padding: 0;
+ }
+
+ .CFunction .Prototype {
+ background-color: #F4F4F4; border-color: #D0D0D0 }
+ .CProperty .Prototype {
+ background-color: #F4F4FF; border-color: #C0C0E8 }
+ .CVariable .Prototype {
+ background-color: #FFFFF0; border-color: #E0E0A0 }
+
+ .CClass .Prototype {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+ background-color: #F4F4F4;
+ }
+ .CInterface .Prototype {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+ background-color: #F4F4FF;
+ }
+
+ .CDatabaseIndex .Prototype,
+ .CConstant .Prototype {
+ background-color: #D0D0D0; border-color: #000000 }
+ .CType .Prototype,
+ .CEnumeration .Prototype {
+ background-color: #FAF0F0; border-color: #E0B0B0;
+ }
+ .CDatabaseTrigger .Prototype,
+ .CEvent .Prototype,
+ .CDelegate .Prototype {
+ background-color: #F0FCF0; border-color: #B8E4B8 }
+
+ .CToolTip .Prototype {
+ margin: 0 0 .5em 0;
+ white-space: nowrap;
+ }
+
+
+
+
+
+.Summary {
+ margin: 1.5em 5ex 0 5ex }
+
+ .STitle {
+ font-size: 12pt; font-weight: bold;
+ margin-bottom: .5em }
+
+
+ .SBorder {
+ background-color: #FFFFF0;
+ padding: 15px;
+ border: 1px solid #C0C060 }
+
+ /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width
+ or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same
+ problem with frames, haven't tested it without. */
+ .FramedContentPage .IE .SBorder {
+ width: 100% }
+
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
+ .Firefox .SBorder {
+ -moz-border-radius: 20px }
+
+
+ .STable {
+ font-size: 9pt; width: 100% }
+
+ .SEntry {
+ width: 30% }
+ .SDescription {
+ width: 70% }
+
+
+ .SMarked {
+ background-color: #F8F8D8 }
+
+ .SDescription { padding-left: 2ex }
+ .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex }
+ .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex }
+ .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex }
+ .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex }
+ .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex }
+
+ .SDescription a { color: #800000}
+ .SDescription a:active { color: #A00000 }
+
+ .SGroup td {
+ padding-top: .5em; padding-bottom: .25em }
+
+ .SGroup .SEntry {
+ font-weight: bold; font-variant: small-caps }
+
+ .SGroup .SEntry a { color: #800000 }
+ .SGroup .SEntry a:active { color: #F00000 }
+
+
+ .SMain td,
+ .SClass td,
+ .SDatabase td,
+ .SDatabaseTable td,
+ .SSection td {
+ font-size: 10pt;
+ padding-bottom: .25em }
+
+ .SClass td,
+ .SDatabase td,
+ .SDatabaseTable td,
+ .SSection td {
+ padding-top: 1em }
+
+ .SMain .SEntry,
+ .SClass .SEntry,
+ .SDatabase .SEntry,
+ .SDatabaseTable .SEntry,
+ .SSection .SEntry {
+ font-weight: bold;
+ }
+
+ .SMain .SEntry a,
+ .SClass .SEntry a,
+ .SDatabase .SEntry a,
+ .SDatabaseTable .SEntry a,
+ .SSection .SEntry a { color: #000000 }
+
+ .SMain .SEntry a:active,
+ .SClass .SEntry a:active,
+ .SDatabase .SEntry a:active,
+ .SDatabaseTable .SEntry a:active,
+ .SSection .SEntry a:active { color: #A00000 }
+
+
+
+
+
+.ClassHierarchy {
+ margin: 0 15px 1em 15px }
+
+ .CHEntry {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+ margin-bottom: 3px;
+ padding: 2px 2ex;
+ font-size: 10pt;
+ background-color: #F4F4F4; color: #606060;
+ }
+
+ .Firefox .CHEntry {
+ -moz-border-radius: 4px;
+ }
+
+ .CHCurrent .CHEntry {
+ font-weight: bold;
+ border-color: #000000;
+ color: #000000;
+ }
+
+ .CHChildNote .CHEntry {
+ font-style: italic;
+ font-size: 8pt;
+ }
+
+ .CHIndent {
+ margin-left: 3ex;
+ }
+
+ .CHEntry a:link,
+ .CHEntry a:visited,
+ .CHEntry a:hover {
+ color: #606060;
+ }
+ .CHEntry a:active {
+ color: #800000;
+ }
+
+
+
+
+
+#Index {
+ background-color: #FFFFFF;
+ }
+
+/* As opposed to .PopupSearchResultsPage #Index */
+.IndexPage #Index,
+.FramedIndexPage #Index,
+.FramedSearchResultsPage #Index {
+ padding: 15px;
+ }
+
+.IndexPage #Index {
+ border-width: 0 0 1px 1px;
+ border-style: solid;
+ border-color: #000000;
+ font-size: 9pt; /* To make 27ex match the menu's 27ex. */
+ margin-left: 27ex;
+ }
+
+
+ .IPageTitle {
+ font-size: 20pt; font-weight: bold;
+ color: #FFFFFF; background-color: #7070C0;
+ padding: 10px 15px 10px 15px;
+ border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
+ margin: -15px -15px 0 -15px }
+
+ .FramedSearchResultsPage .IPageTitle {
+ margin-bottom: 15px;
+ }
+
+ .INavigationBar {
+ font-size: 10pt;
+ text-align: center;
+ background-color: #FFFFF0;
+ padding: 5px;
+ border-bottom: solid 1px black;
+ margin: 0 -15px 15px -15px;
+ }
+
+ .INavigationBar a {
+ font-weight: bold }
+
+ .IHeading {
+ font-size: 16pt; font-weight: bold;
+ padding: 2.5em 0 .5em 0;
+ text-align: center;
+ width: 3.5ex;
+ }
+ #IFirstHeading {
+ padding-top: 0;
+ }
+
+ .IEntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+ }
+ .PopupSearchResultsPage .IEntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+ }
+ .PopupSearchResultsPage .Opera9 .IEntry,
+ .FramedSearchResultsPage .Opera9 .IEntry {
+ text-align: left;
+ }
+ .FramedSearchResultsPage .IEntry {
+ padding: 0;
+ }
+
+ .ISubIndex {
+ padding-left: 3ex; padding-bottom: .5em }
+ .PopupSearchResultsPage .ISubIndex {
+ display: none;
+ }
+
+ /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the
+ index if everything's the same color. */
+ .ISymbol {
+ font-weight: bold; color: #900000 }
+
+ .IndexPage .ISymbolPrefix,
+ .FramedIndexPage .ISymbolPrefix {
+ font-size: 10pt;
+ text-align: right;
+ color: #C47C7C;
+ background-color: #F8F8F8;
+ border-right: 3px solid #E0E0E0;
+ border-left: 1px solid #E0E0E0;
+ padding: 0 1px 0 2px;
+ }
+ .PopupSearchResultsPage .ISymbolPrefix,
+ .FramedSearchResultsPage .ISymbolPrefix {
+ color: #900000;
+ }
+ .PopupSearchResultsPage .ISymbolPrefix {
+ font-size: 8pt;
+ }
+
+ .IndexPage #IFirstSymbolPrefix,
+ .FramedIndexPage #IFirstSymbolPrefix {
+ border-top: 1px solid #E0E0E0;
+ }
+ .IndexPage #ILastSymbolPrefix,
+ .FramedIndexPage #ILastSymbolPrefix {
+ border-bottom: 1px solid #E0E0E0;
+ }
+ .IndexPage #IOnlySymbolPrefix,
+ .FramedIndexPage #IOnlySymbolPrefix {
+ border-top: 1px solid #E0E0E0;
+ border-bottom: 1px solid #E0E0E0;
+ }
+
+ a.IParent,
+ a.IFile {
+ display: block;
+ }
+
+ .PopupSearchResultsPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+ }
+ .FramedSearchResultsPage .SRStatus {
+ font-size: 10pt;
+ font-style: italic;
+ }
+
+ .SRResult {
+ display: none;
+ }
+
+
+
+#Footer {
+ font-size: 8pt;
+ color: #989898;
+ text-align: right;
+ }
+
+#Footer p {
+ text-indent: 0;
+ margin-bottom: .5em;
+ }
+
+.ContentPage #Footer,
+.IndexPage #Footer {
+ text-align: right;
+ margin: 2px;
+ }
+
+.FramedMenuPage #Footer {
+ text-align: center;
+ margin: 5em 10px 10px 10px;
+ padding-top: 1em;
+ border-top: 1px solid #C8C8C8;
+ }
+
+ #Footer a:link,
+ #Footer a:hover,
+ #Footer a:visited { color: #989898 }
+ #Footer a:active { color: #A00000 }
+
+
+
+.prettyprint .kwd { color: #800000; } /* keywords */
+
+ .prettyprint.PDefaultValue .kwd,
+ .prettyprint.PDefaultValuePrefix .kwd,
+ .prettyprint.PTypePrefix .kwd {
+ color: #C88F8F;
+ }
+
+.prettyprint .com { color: #008000; } /* comments */
+
+ .prettyprint.PDefaultValue .com,
+ .prettyprint.PDefaultValuePrefix .com,
+ .prettyprint.PTypePrefix .com {
+ color: #8FC88F;
+ }
+
+.prettyprint .str { color: #0000B0; } /* strings */
+.prettyprint .lit { color: #0000B0; } /* literals */
+
+ .prettyprint.PDefaultValue .str,
+ .prettyprint.PDefaultValuePrefix .str,
+ .prettyprint.PTypePrefix .str,
+ .prettyprint.PDefaultValue .lit,
+ .prettyprint.PDefaultValuePrefix .lit,
+ .prettyprint.PTypePrefix .lit {
+ color: #8F8FC0;
+ }
+
+.prettyprint .typ { color: #000000; } /* types */
+.prettyprint .pun { color: #000000; } /* punctuation */
+.prettyprint .pln { color: #000000; } /* punctuation */
+
+ .prettyprint.PDefaultValue .typ,
+ .prettyprint.PDefaultValuePrefix .typ,
+ .prettyprint.PTypePrefix .typ,
+ .prettyprint.PDefaultValue .pun,
+ .prettyprint.PDefaultValuePrefix .pun,
+ .prettyprint.PTypePrefix .pun,
+ .prettyprint.PDefaultValue .pln,
+ .prettyprint.PDefaultValuePrefix .pln,
+ .prettyprint.PTypePrefix .pln {
+ color: #8F8F8F;
+ }
+
+.prettyprint .tag { color: #008; }
+.prettyprint .atn { color: #606; }
+.prettyprint .atv { color: #080; }
+.prettyprint .dec { color: #606; }
+
diff --git a/apidoc/html/styles/2.css b/apidoc/html/styles/2.css
new file mode 100644
index 0000000..bd55024
--- /dev/null
+++ b/apidoc/html/styles/2.css
@@ -0,0 +1,45 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure
+ Natural Docs is licensed under the GPL
+*/
+
+/* NO longer necessary!!
+ .Prototype td {
+ font-size: 8pt;
+ }
+*/
+
+.CRequirementTestcase .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementProcedure .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementType .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+
+.MGroupContent {
+ font-variant: normal;
+ font-weight: normal;
+ display: none;
+}
+
+/* NO longer necessary!!
+@media print {
+
+ blockquote {
+ overflow: visible;
+ }
+
+ .IE blockquote {
+ width: auto;
+ }
+}
+*/
diff --git a/apidoc/html/styles/main.css b/apidoc/html/styles/main.css
new file mode 100644
index 0000000..a672a94
--- /dev/null
+++ b/apidoc/html/styles/main.css
@@ -0,0 +1,2 @@
+@import URL("1.css");
+@import URL("2.css");
diff --git a/apidoc/load.css b/apidoc/load.css
new file mode 100644
index 0000000..bd55024
--- /dev/null
+++ b/apidoc/load.css
@@ -0,0 +1,45 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure
+ Natural Docs is licensed under the GPL
+*/
+
+/* NO longer necessary!!
+ .Prototype td {
+ font-size: 8pt;
+ }
+*/
+
+.CRequirementTestcase .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementProcedure .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementType .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+
+.MGroupContent {
+ font-variant: normal;
+ font-weight: normal;
+ display: none;
+}
+
+/* NO longer necessary!!
+@media print {
+
+ blockquote {
+ overflow: visible;
+ }
+
+ .IE blockquote {
+ width: auto;
+ }
+}
+*/