MOOSE/Documentation/Base.html
FlightControl 94960b4cb3 Updated documentation
DATABASE
BASE
SPAWN
ESCORT
2016-04-30 09:22:36 +02:00

968 lines
20 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li>Base</li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="MISSION.html">MISSION</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Base</code></h1>
<p>BASE classes.</p>
<h1><a href="##(BASE)">#BASE</a> class</h1>
<p>The <a href="##(BASE)">#BASE</a> class is the super class for most of the classes defined within MOOSE.</p>
<p>It handles:</p>
<ul>
<li>The construction and inheritance of child classes.</li>
<li>The tracing of objects during mission execution within the DCS.log file (under saved games folder).</li>
</ul>
<p>Note: Normally you would not use the BASE class unless you are extending the MOOSE framework with new classes.</p>
<h1>BASE Trace functionality</h1>
<p>The BASE class contains trace methods to trace progress within a mission execution of a certain object.
Note that these trace methods are inherited by each MOOSE class interiting BASE.
As such, each object created from derived class from BASE can use the tracing functions to trace its execution.</p>
<h2>Trace a function call</h2>
<p>There are basically 3 types of tracing methods available within BASE:</p>
<ul>
<li><a href="##(BASE).F">BASE.F</a>: Trace the beginning of a function and its given parameters.</li>
<li><a href="##(BASE).T">BASE.T</a>: Trace further logic within a function giving optional variables or parameters.</li>
<li><a href="##(BASE).E">BASE.E</a>: Trace an execption within a function giving optional variables or parameters. An exception will always be traced.</li>
</ul>
<h2>Tracing levels</h2>
<p>There are 3 tracing levels within MOOSE. <br/>
These tracing levels were defined to avoid bulks of tracing to be generated by lots of objects.</p>
<p>As such, the F and T methods have additional variants to trace level 2 and 3 respectively:</p>
<ul>
<li><a href="##(BASE).F2">BASE.F2</a>: Trace the beginning of a function and its given parameters with tracing level 2.</li>
<li><a href="##(BASE).F3">BASE.F3</a>: Trace the beginning of a function and its given parameters with tracing level 3.</li>
<li><a href="##(BASE).T2">BASE.T2</a>: Trace further logic within a function giving optional variables or parameters with tracing level 2.</li>
<li><a href="##(BASE).T3">BASE.T3</a>: Trace further logic within a function giving optional variables or parameters with tracing level 3.</li>
</ul>
<h1>BASE Inheritance support</h1>
<p>The following methods are available to support inheritance:</p>
<ul>
<li><a href="##(BASE).Inherit">BASE.Inherit</a>: Inherits from a class.</li>
<li><a href="##(BASE).Inherited">BASE.Inherited</a>: Returns the parent class from the class.</li>
</ul>
<h1>Future</h1>
<p>Further methods may be added to BASE whenever there is a need to make "overall" functions available within MOOSE.</p>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#BASE">BASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#FORMATION">FORMATION</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(BASE)">Type <code>BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).AddEvent">BASE:AddEvent(Event, EventFunction)</a></td>
<td class="summary">
<p>Set a new listener for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClassID">BASE.ClassID</a></td>
<td class="summary">
<p>The ID number of the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClassName">BASE.ClassName</a></td>
<td class="summary">
<p>The name of the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).CreateEventBirth">BASE:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)</a></td>
<td class="summary">
<p>Creation of a Birth Event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).CreateEventCrash">BASE:CreateEventCrash(EventTime, Initiator)</a></td>
<td class="summary">
<p>Creation of a Crash Event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).DisableEvents">BASE:DisableEvents()</a></td>
<td class="summary">
<p>Disable the event listeners for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).E">BASE:E(Arguments)</a></td>
<td class="summary">
<p>Log an exception which will be traced always.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EnableEvents">BASE:EnableEvents()</a></td>
<td class="summary">
<p>Enable the event listeners for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Event">BASE:Event()</a></td>
<td class="summary">
<p>Returns the event dispatcher</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Events">BASE.Events</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F">BASE:F(Arguments)</a></td>
<td class="summary">
<p>Trace a function call.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F2">BASE:F2(Arguments)</a></td>
<td class="summary">
<p>Trace a function call level 2.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F3">BASE:F3(Arguments)</a></td>
<td class="summary">
<p>Trace a function call level 3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassID">BASE:GetClassID()</a></td>
<td class="summary">
<p>Get the ClassID of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassName">BASE:GetClassName()</a></td>
<td class="summary">
<p>Get the ClassName of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassNameAndID">BASE:GetClassNameAndID()</a></td>
<td class="summary">
<p>Get the ClassName + ClassID of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Inherit">BASE:Inherit(Child, Parent)</a></td>
<td class="summary">
<p>This is the worker method to inherit from a parent class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Inherited">BASE:Inherited(Child)</a></td>
<td class="summary">
<p>This is the worker method to retrieve the Parent class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).New">BASE:New()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T">BASE:T(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T2">BASE:T2(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 2.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T3">BASE:T3(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClass">BASE:TraceClass(Class)</a></td>
<td class="summary">
<p>Set tracing for a class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClassMethod">BASE:TraceClassMethod(Class, Method)</a></td>
<td class="summary">
<p>Set tracing for a specific method of class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceLevel">BASE:TraceLevel(Level)</a></td>
<td class="summary">
<p>Set trace level</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).onEvent">BASE:onEvent(event)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(FORMATION)">Type <code>FORMATION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(FORMATION).Cone">FORMATION.Cone</a></td>
<td class="summary">
<p>A cone formation.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(BASE)">#BASE</a></em>
<a id="BASE" >
<strong>BASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(FORMATION)">#FORMATION</a></em>
<a id="FORMATION" >
<strong>FORMATION</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Base)" >Type <code>Base</code></a></h2>
<h2><a id="#(BASE)" >Type <code>BASE</code></a></h2>
<p>The BASE Class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(BASE).AddEvent" >
<strong>BASE:AddEvent(Event, EventFunction)</strong>
</a>
</dt>
<dd>
<p>Set a new listener for the class.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Event)">DCSTypes#Event</a> Event </em></code>: </p>
</li>
<li>
<p><code><em>#function EventFunction </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClassID" >
<strong>BASE.ClassID</strong>
</a>
</dt>
<dd>
<p>The ID number of the class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClassName" >
<strong>BASE.ClassName</strong>
</a>
</dt>
<dd>
<p>The name of the class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).CreateEventBirth" >
<strong>BASE:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)</strong>
</a>
</dt>
<dd>
<p>Creation of a Birth Event.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Time)">DCSTypes#Time</a> EventTime </em></code>:
The time stamp of the event.</p>
</li>
<li>
<p><code><em><a href="DCSObject.html##(Object)">DCSObject#Object</a> Initiator </em></code>:
The initiating object of the event.</p>
</li>
<li>
<p><code><em>#string IniUnitName </em></code>:
The initiating unit name.</p>
</li>
<li>
<p><code><em> place </em></code>: </p>
</li>
<li>
<p><code><em> subplace </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).CreateEventCrash" >
<strong>BASE:CreateEventCrash(EventTime, Initiator)</strong>
</a>
</dt>
<dd>
<p>Creation of a Crash Event.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Time)">DCSTypes#Time</a> EventTime </em></code>:
The time stamp of the event.</p>
</li>
<li>
<p><code><em><a href="DCSObject.html##(Object)">DCSObject#Object</a> Initiator </em></code>:
The initiating object of the event.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).DisableEvents" >
<strong>BASE:DisableEvents()</strong>
</a>
</dt>
<dd>
<p>Disable the event listeners for the class.</p>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).E" >
<strong>BASE:E(Arguments)</strong>
</a>
</dt>
<dd>
<p>Log an exception which will be traced always.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EnableEvents" >
<strong>BASE:EnableEvents()</strong>
</a>
</dt>
<dd>
<p>Enable the event listeners for the class.</p>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).Event" >
<strong>BASE:Event()</strong>
</a>
</dt>
<dd>
<p>Returns the event dispatcher</p>
<h3>Return value</h3>
<p><em><a href="Event.html##(EVENT)">Event#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(BASE).Events" >
<strong>BASE.Events</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F" >
<strong>BASE:F(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F2" >
<strong>BASE:F2(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call level 2.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F3" >
<strong>BASE:F3(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call level 3.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassID" >
<strong>BASE:GetClassID()</strong>
</a>
</dt>
<dd>
<p>Get the ClassID of the class instance.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassID of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassName" >
<strong>BASE:GetClassName()</strong>
</a>
</dt>
<dd>
<p>Get the ClassName of the class instance.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassName of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassNameAndID" >
<strong>BASE:GetClassNameAndID()</strong>
</a>
</dt>
<dd>
<p>Get the ClassName + ClassID of the class instance.</p>
<p>The ClassName + ClassID is formatted as '%s#%09d'. </p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassName + ClassID of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).Inherit" >
<strong>BASE:Inherit(Child, Parent)</strong>
</a>
</dt>
<dd>
<p>This is the worker method to inherit from a parent class.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Child </em></code>:
is the Child class that inherits.</p>
</li>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Parent </em></code>:
is the Parent class that the Child inherits from.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em>
Child</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).Inherited" >
<strong>BASE:Inherited(Child)</strong>
</a>
</dt>
<dd>
<p>This is the worker method to retrieve the Parent class.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Child </em></code>:
is the Child class from which the Parent class needs to be retrieved.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).New" >
<strong>BASE:New()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T" >
<strong>BASE:T(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T2" >
<strong>BASE:T2(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic level 2.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T3" >
<strong>BASE:T3(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic level 3.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceClass" >
<strong>BASE:TraceClass(Class)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a class</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceClassMethod" >
<strong>BASE:TraceClassMethod(Class, Method)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a specific method of class</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
<li>
<p><code><em>#string Method </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceLevel" >
<strong>BASE:TraceLevel(Level)</strong>
</a>
</dt>
<dd>
<p>Set trace level</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Level </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).onEvent" >
<strong>BASE:onEvent(event)</strong>
</a>
</dt>
<dd>
<p> TODO: Complete DCSTypes#Event structure. <br/>
- The main event handling function... This function captures all events generated for the class.
@param #BASE self
@param DCSTypes#Event event</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<h2><a id="#(FORMATION)" >Type <code>FORMATION</code></a></h2>
<p>The Formation Class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(FORMATION).Cone" >
<strong>FORMATION.Cone</strong>
</a>
</dt>
<dd>
<p>A cone formation.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>