#///////////////////////////////////////////////////////////////////////////////
#// Copyright (c) 2000-2019 Ericsson Telecom AB                               //
#//                                                                           //
#// All rights reserved. This program and the accompanying materials          //
#// are made available under the terms of the Eclipse Public License v2.0     //
#// which accompanies this distribution, and is available at                  //
#// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
#///////////////////////////////////////////////////////////////////////////////
Format: 1.4


Title: EPTF Core Load Library R26A
SubTitle: CNL 113 512 Rev.R26A08

Footer: Copyright (c) 2000-2019 Ericsson Telecom AB

# You can add a timestamp to your documentation like one of these:
# Timestamp: Generated on month day, year
# Timestamp: Updated mm/dd/yyyy
# Timestamp: Last updated mon day
#
#   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.
# 
# --------------------------------------------------------------------------


Group: Base  {

   File: EPTF_CLL_Base_Definitions  (Base/EPTF_CLL_Base_Definitions.ttcn)
   File: EPTF_CLL_Base_ExternalFunctions.cc  (Base/EPTF_CLL_Base_ExternalFunctions.cc)
   File: EPTF_CLL_Base_Functions  (Base/EPTF_CLL_Base_Functions.ttcn)
   }  # Group: Base

Group: Buffer  {

   File: EPTF_CLL_Buffer_Definitions  (Buffer/EPTF_CLL_Buffer_Definitions.ttcn)
   File: EPTF_CLL_Buffer_Functions  (Buffer/EPTF_CLL_Buffer_Functions.ttcn)
   }  # Group: Buffer

Group: Central scheduling  {

   File: EPTF_CLL_CS_Definitions  (CentralScheduling/EPTF_CLL_CS_Definitions.ttcn)
   File: EPTF_CLL_CS_DSFunctions  (CentralScheduling/EPTF_CLL_CS_DSFunctions.ttcn)
   File: EPTF_CLL_CSAdmin_Functions  (CentralScheduling/EPTF_CLL_CSAdmin_Functions.ttcn)
   File: EPTF_CLL_CSLB_Functions  (CentralScheduling/EPTF_CLL_CSLB_Functions.ttcn)
   File: EPTF_CLL_CSUIHandler_Definitions  (CentralScheduling/EPTF_CLL_CSUIHandler_Definitions.ttcn)
   File: EPTF_CLL_CSUIHandler_Functions  (CentralScheduling/EPTF_CLL_CSUIHandler_Functions.ttcn)
   }  # Group: Central scheduling

Group: CommandLineInterface  {

   File: EPTF_CLL_CLI_Definitions  (CommandLineInterface/EPTF_CLL_CLI_Definitions.ttcn)
   File: EPTF_CLL_CLI_Functions  (CommandLineInterface/EPTF_CLL_CLI_Functions.ttcn)
   }  # Group: CommandLineInterface

Group: Common  {

   File: EPTF_CLL_Common_Functions  (Common/EPTF_CLL_Common_Functions.ttcn)
   File: EPTF_CLL_Common_Definitions  (Common/EPTF_CLL_Common_Definitions.ttcn)
   File: EPTF_CLL_Common_IndexArrayDefinitions  (Common/EPTF_CLL_Common_IndexArrayDefinitions.ttcn)
   File: EPTF_CLL_Common_IndexArrayFunctions  (Common/EPTF_CLL_Common_IndexArrayFunctions.ttcn)
   File: EPTF_CLL_Common_PrivateDebugDefinitions  (Common/EPTF_CLL_Common_PrivateDebugDefinitions.ttcnpp)
   File: EPTF_CLL_Common_RndDefinitions  (Common/EPTF_CLL_Common_RndDefinitions.ttcn)
   File: EPTF_CLL_Common_RndFunctions  (Common/EPTF_CLL_Common_RndFunctions.ttcn)
   }  # Group: Common

Group: DataSource  {

   File: EPTF_CLL_DataSource_Definitions  (DataSource/EPTF_CLL_DataSource_Definitions.ttcn)
   File: EPTF_CLL_DataSource_Functions  (DataSource/EPTF_CLL_DataSource_Functions.ttcn)
   File: EPTF_CLL_DataSourceClient_Functions  (DataSource/EPTF_CLL_DataSourceClient_Functions.ttcn)
   File: EPTF_CLL_DataSource_Apidoc  (DataSource/EPTF_CLL_DataSource_Apidoc.ttcn)
   }  # Group: DataSource

Group: DsRestAPI  {

   File: EPTF_CLL_DsRestAPI_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_DSServer_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_DSServer_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_DSServer_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_DSServer_Functions.ttcn)
   File: EPTF_CLL_DsRestAPI_Filter_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_Filter_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_Filter_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_Filter_Functions.ttcn)
   File: EPTF_CLL_DsRestAPI_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_Functions.ttcn)
   File: EPTF_CLL_DsRestAPI_HTTPServer_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_HTTPServer_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_HTTPServer_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_HTTPServer_Functions.ttcn)
   File: EPTF_CLL_DsRestAPI_Storage_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_Storage_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_Storage_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_Storage_Functions.ttcn)
   File: EPTF_CLL_DsRestAPI_Timeline_Definitions  (DsRestAPI/EPTF_CLL_DsRestAPI_Timeline_Definitions.ttcn)
   File: EPTF_CLL_DsRestAPI_Timeline_Functions  (DsRestAPI/EPTF_CLL_DsRestAPI_Timeline_Functions.ttcn)
   }  # Group: DsRestAPI

Group: ExecCtrl  {

   File: EPTF_CLL_ExecCtrl_CLIDefinitions  (ExecCtrl/EPTF_CLL_ExecCtrl_CLIDefinitions.ttcn)
   File: EPTF_CLL_ExecCtrl_CLIFunctions  (ExecCtrl/EPTF_CLL_ExecCtrl_CLIFunctions.ttcn)
   File: EPTF_CLL_ExecCtrl_Definitions  (ExecCtrl/EPTF_CLL_ExecCtrl_Definitions.ttcn)
   File: EPTF_CLL_ExecCtrl_Functions  (ExecCtrl/EPTF_CLL_ExecCtrl_Functions.ttcn)
   File: EPTF_CLL_ExecCtrl_LoggingFunctions  (ExecCtrl/EPTF_CLL_ExecCtrl_LoggingFunctions.ttcn)
   File: EPTF_CLL_ExecCtrl_PhaseDefinitions  (ExecCtrl/EPTF_CLL_ExecCtrl_PhaseDefinitions.ttcn)
   File: EPTF_CLL_ExecCtrl_PhaseFunctions  (ExecCtrl/EPTF_CLL_ExecCtrl_PhaseFunctions.ttcn)
   File: EPTF_CLL_ExecCtrl_ScenarioDefinitions  (ExecCtrl/EPTF_CLL_ExecCtrl_ScenarioDefinitions.ttcn)
   File: EPTF_CLL_ExecCtrl_ScenarioFunctions  (ExecCtrl/EPTF_CLL_ExecCtrl_ScenarioFunctions.ttcn)
   File: EPTF_CLL_ExecCtrlClient_Functions  (ExecCtrl/EPTF_CLL_ExecCtrlClient_Functions.ttcn)
   File: EPTF_CLL_ExecCtrlTimeProfile_Definitions  (ExecCtrl/EPTF_CLL_ExecCtrlTimeProfile_Definitions.ttcn)
   File: EPTF_CLL_ExecCtrlUIHandler_Definitions  (ExecCtrl/EPTF_CLL_ExecCtrlUIHandler_Definitions.ttcn)
   File: EPTF_CLL_ExecCtrlUIHandler_Functions  (ExecCtrl/EPTF_CLL_ExecCtrlUIHandler_Functions.ttcn)
   File: EPTF_CLL_ExecCtrl_DSFunctions  (ExecCtrl/EPTF_CLL_ExecCtrl_DSFunctions.ttcn)
   }  # Group: ExecCtrl

Group: FreeBusyQueue  {

   File: EPTF_CLL_FBQ_Definitions  (FreeBusyQueue/EPTF_CLL_FBQ_Definitions.ttcn)
   File: EPTF_CLL_FBQ_Functions  (FreeBusyQueue/EPTF_CLL_FBQ_Functions.ttcn)
   }  # Group: FreeBusyQueue

Group: GUIViewer  {

   File: EPTF_CLL_GUIViewer_Functions  (GUIViewer/EPTF_CLL_GUIViewer_Functions.ttcn)
   }  # Group: GUIViewer

Group: HashMap  {

   Group: general  {

      File: EPTF_CLL_HashMap_Definitions.ttcn  (HashMap/EPTF_CLL_HashMap_Definitions.ttcn)
      File: EPTF_CLL_HashMap_ExternalFunctions.hh  (HashMap/EPTF_CLL_HashMap_ExternalFunctions.hh)
      File: EPTF_CLL_HashMap_Functions.ttcn  (HashMap/EPTF_CLL_HashMap_Functions.ttcn)
      }  # Group: general

   Group: int2int  {

      File: EPTF_CLL_HashMapInt2Int_Functions.ttcn  (HashMap/EPTF_CLL_HashMapInt2Int_Functions.ttcn)
      File: EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc  (HashMap/EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc)
      }  # Group: int2int

   Group: oct2int  {

      File: EPTF_CLL_HashMapOct2Int_Functions.ttcn  (HashMap/EPTF_CLL_HashMapOct2Int_Functions.ttcn)
      File: EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc  (HashMap/EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc)
      }  # Group: oct2int

   Group: str2int  {

      File: EPTF_CLL_HashMapStr2Int_Functions.ttcn  (HashMap/EPTF_CLL_HashMapStr2Int_Functions.ttcn)
      File: EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc  (HashMap/EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc)
      }  # Group: str2int

   }  # Group: HashMap

Group: HostAdmin  {

   File: EPTF_CLL_HostAdmin_BaseDefinitions  (HostAdmin/EPTF_CLL_HostAdmin_BaseDefinitions.ttcn)
   File: EPTF_CLL_HostAdmin_BaseFunctions  (HostAdmin/EPTF_CLL_HostAdmin_BaseFunctions.ttcn)
   File: EPTF_CLL_HostAdmin_Definitions  (HostAdmin/EPTF_CLL_HostAdmin_Definitions.ttcn)
   File: EPTF_CLL_HostAdmin_Functions  (HostAdmin/EPTF_CLL_HostAdmin_Functions.ttcn)
   File: EPTF_CLL_HostAdminUI_Definitions  (HostAdmin/EPTF_CLL_HostAdminUI_Definitions.ttcn)
   File: EPTF_CLL_HostAdminUI_Functions  (HostAdmin/EPTF_CLL_HostAdminUI_Functions.ttcn)
   File: EPTF_CLL_HostAdmin_DSFunctions  (HostAdmin/EPTF_CLL_HostAdmin_DSFunctions.ttcn)
   File: EPTF_CLL_HostAdminServer_Definitions  (HostAdmin/EPTF_CLL_HostAdminServer_Definitions.ttcn)
   File: EPTF_CLL_HostAdminServer_Functions  (HostAdmin/EPTF_CLL_HostAdminServer_Functions.ttcn)
   }  # Group: HostAdmin

Group: ILog  {

   File: EPTF_CLL_ILog_Definitions  (ILog/EPTF_CLL_ILog_Definitions.ttcn)
   File: EPTF_CLL_ILog_Functions  (ILog/EPTF_CLL_ILog_Functions.ttcn)
   File: EPTF_CLL_ILogString_Definitions  (ILog/EPTF_CLL_ILogString_Definitions.ttcn)
   File: EPTF_CLL_ILogString_Functions  (ILog/EPTF_CLL_ILogString_Functions.ttcn)
   }  # Group: ILog

Group: LGenBase  {

   File: EPTF_CLL_LGenBase_ConfigDefinitions  (LGenBase/EPTF_CLL_LGenBase_ConfigDefinitions.ttcn)
   File: EPTF_CLL_LGenBase_ConfigFunctions  (LGenBase/EPTF_CLL_LGenBase_ConfigFunctions.ttcn)
   File: EPTF_CLL_LGenBase_Definitions  (LGenBase/EPTF_CLL_LGenBase_Definitions.ttcn)
   File: EPTF_CLL_LGenBase_EventHandlingFunctions  (LGenBase/EPTF_CLL_LGenBase_EventHandlingFunctions.ttcn)
   File: EPTF_CLL_LGenBase_ExternalFunctions  (LGenBase/EPTF_CLL_LGenBase_ExternalFunctions.ttcn)
   File: EPTF_CLL_LGenBase_Functions  (LGenBase/EPTF_CLL_LGenBase_Functions.ttcn)
   File: EPTF_CLL_LGenBase_ILog_Definitions  (LGenBase/EPTF_CLL_LGenBase_ILog_Definitions.ttcn)
   File: EPTF_CLL_LGenBase_ILog_Functions  (LGenBase/EPTF_CLL_LGenBase_ILog_Functions.ttcn)
   File: EPTF_CLL_LGenBase_LoggingFunctions  (LGenBase/EPTF_CLL_LGenBase_LoggingFunctions.ttcn)
   File: EPTF_CLL_LGenBase_PhaseConfigFunctions  (LGenBase/EPTF_CLL_LGenBase_PhaseConfigFunctions.ttcn)
   File: EPTF_CLL_LGenBase_PhaseDefinitions  (LGenBase/EPTF_CLL_LGenBase_PhaseDefinitions.ttcn)
   File: EPTF_CLL_LGenBase_PhaseFunctions  (LGenBase/EPTF_CLL_LGenBase_PhaseFunctions.ttcn)
   File: EPTF_CLL_LGenBase_StepFunctions  (LGenBase/EPTF_CLL_LGenBase_StepFunctions.ttcn)
   File: EPTF_CLL_LGenBase_TemplateFunctions  (LGenBase/EPTF_CLL_LGenBase_TemplateFunctions.ttcn)
   File: EPTF_CLL_LGenBase_TrafficFunctions  (LGenBase/EPTF_CLL_LGenBase_TrafficFunctions.ttcn)
   File: EPTF_CLL_LGenBaseStats_Definitions  (LGenBase/EPTF_CLL_LGenBaseStats_Definitions.ttcn)
   File: EPTF_CLL_LGenBaseStats_Functions  (LGenBase/EPTF_CLL_LGenBaseStats_Functions.ttcn)
   File: EPTF_CLL_LGenBaseStatsUI_Definitions  (LGenBase/EPTF_CLL_LGenBaseStatsUI_Definitions.ttcn)
   File: EPTF_CLL_LGenBaseStatsUI_Functions  (LGenBase/EPTF_CLL_LGenBaseStatsUI_Functions.ttcn)
   File: EPTF_CLL_LGenBase_TemplateDefinitions  (LGenBase/EPTF_CLL_LGenBase_TemplateDefinitions.ttcn)
   File: EPTF_CLL_LGenBaseTrafficMixer_Definitions  (LGenBase/EPTF_CLL_LGenBaseTrafficMixer_Definitions.ttcn)
   File: EPTF_CLL_LGenBaseTrafficMixer_Functions  (LGenBase/EPTF_CLL_LGenBaseTrafficMixer_Functions.ttcn)
   File: EPTF_CLL_LGenBase_DSFunctions  (LGenBase/EPTF_CLL_LGenBase_DSFunctions.ttcn)
   File: EPTF_CLL_LGenBase_LoggingDefinitions  (LGenBase/EPTF_CLL_LGenBase_LoggingDefinitions.ttcn)
   }  # Group: LGenBase

Group: LoadRegulator  {

   File: EPTF_CLL_LoadRegulator_Definitions  (LoadRegulator/EPTF_CLL_LoadRegulator_Definitions.ttcn)
   File: EPTF_CLL_LoadRegulator_Definitions  (LoadRegulator/EPTF_CLL_LoadRegulatorUI_Definitions.ttcn)
   File: EPTF_CLL_LoadRegulator_Functions  (LoadRegulator/EPTF_CLL_LoadRegulator_Functions.ttcn)
   File: EPTF_CLL_LoadRegulator_Functions  (LoadRegulator/EPTF_CLL_LoadRegulatorUI_Functions.ttcn)
   }  # Group: LoadRegulator

Group: Logging  {

   File: EPTF_CLL_Logging_Definitions  (Logging/EPTF_CLL_Logging_Definitions.ttcn)
   File: EPTF_CLL_Logging_Functions  (Logging/EPTF_CLL_Logging_Functions.ttcn)
   }  # Group: Logging

Group: LoggingServer  {

   File: EPTF_CLL_LoggingServer_Definitions  (Logging/EPTF_CLL_LoggingServer_Definitions.ttcn)
   File: EPTF_CLL_LoggingServer_Functions  (Logging/EPTF_CLL_LoggingServer_Functions.ttcn)
   File: EPTF_CLL_LoggingClient_Functions  (Logging/EPTF_CLL_LoggingClient_Functions.ttcn)
   }  # Group: LoggingServer

Group: LoggingUI  {

   File: EPTF_CLL_LoggingUI_Definitions  (Logging/EPTF_CLL_LoggingUI_Definitions.ttcn)
   File: EPTF_CLL_LoggingUI_Functions  (Logging/EPTF_CLL_LoggingUI_Functions.ttcn)
   File: EPTF_CLL_LoggingUIClient_Functions  (Logging/EPTF_CLL_LoggingUIClient_Functions.ttcn)

   Group: LoggingUI_Private  {

      File: EPTF_CLL_LoggingUI_PrivateFunctions  (Logging/EPTF_CLL_LoggingUI_PrivateFunctions.ttcn)
      }  # Group: LoggingUI_Private

   }  # Group: LoggingUI

Group: NameService  {

   File: EPTF_CLL_NameService_Definitions  (NameService/EPTF_CLL_NameService_Definitions.ttcn)
   File: EPTF_CLL_NameService_ExternalFunctions.cc  (NameService/EPTF_CLL_NameService_ExternalFunctions.cc)
   File: EPTF_CLL_NameService_Functions  (NameService/EPTF_CLL_NameService_Functions.ttcn)
   File: EPTF_CLL_NameServiceClient_Functions  (NameService/EPTF_CLL_NameServiceClient_Functions.ttcn)
   }  # Group: NameService

Group: NQueue  {

   File: EPTF_CLL_NQueue_Definitions  (NQueue/EPTF_CLL_NQueue_Definitions.ttcn)
   File: EPTF_CLL_NQueue_Functions  (NQueue/EPTF_CLL_NQueue_Functions.ttcn)
   }  # Group: NQueue

Group: RandomNArray  {

   File: EPTF_CLL_RNA_Definitions  (RandomNArray/EPTF_CLL_RNA_Definitions.ttcn)
   File: EPTF_CLL_RNA_Functions  (RandomNArray/EPTF_CLL_RNA_Functions.ttcn)
   }  # Group: RandomNArray

Group: RedBlackTree  {

   Group: FloatRedBlackTree  {

      File: EPTF_CLL_RBtreeFloat_Functions  (RedBlackTree/EPTF_CLL_RBtreeFloat_Functions.ttcn)

      Group: FloatRedBlackTree_Private  {

         File: EPTF_CLL_RBtreeFloat_PrivateFunctions  (RedBlackTree/EPTF_CLL_RBtreeFloat_PrivateFunctions.ttcn)
         }  # Group: FloatRedBlackTree_Private

      }  # Group: FloatRedBlackTree

   Group: IntegerRedBlackTree  {

      File: EPTF_CLL_RBtreeInteger_Functions  (RedBlackTree/EPTF_CLL_RBtreeInteger_Functions.ttcn)

      Group: IntegerRedBlackTree_Private  {

         File: EPTF_CLL_RBtreeInteger_PrivateFunctions  (RedBlackTree/EPTF_CLL_RBtreeInteger_PrivateFunctions.ttcn)
         }  # Group: IntegerRedBlackTree_Private

      }  # Group: IntegerRedBlackTree

   File: EPTF_CLL_RBT_Definitions  (RedBlackTree/EPTF_CLL_RBT_Definitions.ttcn)
   File: EPTF_CLL_RBT_Functions  (RedBlackTree/EPTF_CLL_RBT_Functions.ttcn)
   File: EPTF_CLL_RBtree_Definitions  (RedBlackTree/EPTF_CLL_RBtree_Definitions.ttcn)
   File: EPTF_CLL_RBtree_Functions  (RedBlackTree/EPTF_CLL_RBtree_Functions.ttcn)

   Group: RedBlackTree_Private  {

      File: EPTF_CLL_RBtree_PrivateFunctions  (RedBlackTree/EPTF_CLL_RBtree_PrivateFunctions.ttcn)
      }  # Group: RedBlackTree_Private

   }  # Group: RedBlackTree

Group: RingBuffer  {

   Group: IntegerRingBuffer  {

      File: EPTF_CLL_IntegerRingBuffer_Functions.ttcn  (no auto-title, RingBuffer/EPTF_CLL_IntegerRingBuffer_Functions.ttcn)
      }  # Group: IntegerRingBuffer

   Group: GenericRingBuffer  {

      File: EPTF_CLL_GenericRingBuffer_Functions  (RingBuffer/EPTF_CLL_GenericRingBuffer_Functions.ttcnin)
      File: EPTF_CLL_GenericRingBuffer_Definitions  (RingBuffer/EPTF_CLL_GenericRingBuffer_Definitions.ttcnin)
      }  # Group: GenericRingBuffer

   Group: RingBuffer_Private  {

      File: EPTF_CLL_RingBuffer_PrivateFunctions.ttcn  (no auto-title, RingBuffer/EPTF_CLL_RingBuffer_PrivateFunctions.ttcn)
      }  # Group: RingBuffer_Private

   File: EPTF_CLL_RingBuffer_Definitions.ttcn  (no auto-title, RingBuffer/EPTF_CLL_RingBuffer_Definitions.ttcn)
   }  # Group: RingBuffer

Group: Scheduler  {

   File: EPTF_CLL_RBTScheduler_Definitions  (Scheduler/EPTF_CLL_RBTScheduler_Definitions.ttcn)
   File: EPTF_CLL_RBTScheduler_Functions  (Scheduler/EPTF_CLL_RBTScheduler_Functions.ttcn)
   File: EPTF_CLL_Scheduler_Definitions  (Scheduler/EPTF_CLL_Scheduler_Definitions.ttcn)
   }  # Group: Scheduler

Group: Semaphore  {

   File: EPTF_CLL_Semaphore_Definitions  (Semaphore/EPTF_CLL_Semaphore_Definitions.ttcn)
   File: EPTF_CLL_Semaphore_Functions  (Semaphore/EPTF_CLL_Semaphore_Functions.ttcn)
   }  # Group: Semaphore

Group: StatCapture  {

   File: EPTF_CLL_StatCapture_Definitions  (StatCapture/EPTF_CLL_StatCapture_Definitions.ttcn)
   File: EPTF_CLL_StatCapture_ExternalFunctions.cc  (StatCapture/EPTF_CLL_StatCapture_ExternalFunctions.cc)
   File: EPTF_CLL_StatCapture_Functions  (StatCapture/EPTF_CLL_StatCapture_Functions.ttcn)
   File: EPTF_CLL_StatCaptureControl_Definitions  (StatCapture/EPTF_CLL_StatCaptureControl_Definitions.ttcn)
   File: EPTF_CLL_StatCaptureControl_Functions  (StatCapture/EPTF_CLL_StatCaptureControl_Functions.ttcn)
   File: EPTF_CLL_StatCaptureUI_Definitions  (StatCapture/EPTF_CLL_StatCaptureUI_Definitions.ttcn)
   File: EPTF_CLL_StatCaptureUI_Functions  (StatCapture/EPTF_CLL_StatCaptureUI_Functions.ttcn)
   }  # Group: StatCapture

Group: PTCDeployment  {

   File: EPTF_CLL_PTCDeployment_Definitions  (PTCDeployment/EPTF_CLL_PTCDeployment_Definitions.ttcn)
   File: EPTF_CLL_PTCDeployment_Functions  (PTCDeployment/EPTF_CLL_PTCDeployment_Functions.ttcn)

   Group: PTCDeployment_Private  {

      File: EPTF_CLL_PTCDeployment_PrivateFunctions  (PTCDeployment/EPTF_CLL_PTCDeployment_PrivateFunctions.ttcn)
      }  # Group: PTCDeployment_Private

   }  # Group: PTCDeployment

Group: RendezVous  {

   File: EPTF_CLL_Rendezvous_Definitions  (Rendezvous/EPTF_CLL_Rendezvous_Definitions.ttcn)
   File: EPTF_CLL_Rendezvous_Functions  (Rendezvous/EPTF_CLL_Rendezvous_Functions.ttcn)
   File: EPTF_CLL_RendezvousClient_Functions  (Rendezvous/EPTF_CLL_RendezvousClient_Functions.ttcn)
   }  # Group: RendezVous

Group: SMacro  {

   File: EPTF_CLL_SMacro_Definitions  (SMacro/EPTF_CLL_SMacro_Definitions.ttcn)
   File: EPTF_CLL_SMacro_Functions  (SMacro/EPTF_CLL_SMacro_Functions.ttcn)
   }  # Group: SMacro

Group: StatHandler  {

   File: EPTF_CLL_StatHandler_Definitions  (StatHandler/EPTF_CLL_StatHandler_Definitions.ttcn)
   File: EPTF_CLL_StatHandler_Functions  (StatHandler/EPTF_CLL_StatHandler_Functions.ttcn)
   File: EPTF_CLL_StatHandlerClient_Definitions  (StatHandler/EPTF_CLL_StatHandlerClient_Definitions.ttcn)
   File: EPTF_CLL_StatHandlerClient_Functions  (StatHandler/EPTF_CLL_StatHandlerClient_Functions.ttcn)
   File: EPTF_CLL_StatHandlerLogging_Definitions  (StatHandler/EPTF_CLL_StatHandlerLogging_Definitions.ttcn)
   File: EPTF_CLL_StatHandlerLogging_Functions  (StatHandler/EPTF_CLL_StatHandlerLogging_Functions.ttcn)
   File: EPTF_CLL_StatHandlerUI_Definitions  (StatHandler/EPTF_CLL_StatHandlerUI_Definitions.ttcn)
   File: EPTF_CLL_StatHandlerUI_Functions  (StatHandler/EPTF_CLL_StatHandlerUI_Functions.ttcn)
   File: EPTF_CLL_StatHandler_DSFunctions  (StatHandler/EPTF_CLL_StatHandler_DSFunctions.ttcn)
   File: EPTF_CLL_StatHandler_ExternalFunctions.cc  (StatHandler/EPTF_CLL_StatHandler_ExternalFunctions.cc)
   }  # Group: StatHandler

Group: StatManager  {

   File: EPTF_CLL_StatManager_Definitions  (StatManager/EPTF_CLL_StatManager_Definitions.ttcn)
   File: EPTF_CLL_StatManager_Functions  (StatManager/EPTF_CLL_StatManager_Functions.ttcn)
   }  # Group: StatManager

Group: StatMeasure  {

   File: EPTF_CLL_StatMeasure_Definitions  (StatMeasure/EPTF_CLL_StatMeasure_Definitions.ttcn)
   File: EPTF_CLL_StatMeasure_Functions  (StatMeasure/EPTF_CLL_StatMeasure_Functions.ttcn)
   }  # Group: StatMeasure

Group: StatReplay  {

   File: EPTF_CLL_Statreplay_Definitions  (StatReplay/EPTF_CLL_StatReplay_Definitions.ttcnpp)
   File: EPTF_CLL_StatReplay_Execution  (StatReplay/EPTF_CLL_StatReplay_Execution.ttcn)
   File: EPTF_CLL_StatReplay_Functions  (StatReplay/EPTF_CLL_StatReplay_Functions.ttcn)
   }  # Group: StatReplay

Group: TimeProfileEditor  {

   File: EPTF_CLL_TimeProfileEditor  (TimeProfileEditor/EPTF_CLL_TimeProfileEditor.ttcn)
   File: EPTF_CLL_TimeProfileEditor_Definitions  (TimeProfileEditor/EPTF_CLL_TimeProfileEditor_Definitions.ttcn)
   File: EPTF_CLL_TimeProfileEditor_Functions  (TimeProfileEditor/EPTF_CLL_TimeProfileEditor_Functions.ttcn)
   File: EPTF_CLL_TimeProfileEditor_XTDPTemplates  (TimeProfileEditor/EPTF_CLL_TimeProfileEditor_XTDPTemplates.ttcn)
   }  # Group: TimeProfileEditor

Group: Transport  {

   File: EPTF_CLL_Transport_CommonDefinitions  (Transport/EPTF_CLL_Transport_CommonDefinitions.ttcn)
   File: EPTF_CLL_Transport_Definitions  (Transport/EPTF_CLL_Transport_Definitions.ttcn)
   File: EPTF_CLL_Transport_Functions  (Transport/EPTF_CLL_Transport_Functions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Definitions  (Transport/EPTF_CLL_Transport_IPsecHandler_Definitions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Functions  (Transport/EPTF_CLL_Transport_IPsecHandler_Functions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Client_Definitions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Client_Definitions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Client_Functions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Client_Functions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_CommonDefinitions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_CommonDefinitions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Definitions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Definitions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Functions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Functions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Server_Definitions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Server_Definitions.ttcn)
   File: EPTF_CLL_Transport_IPsecHandler_Logging_Server_Functions  (Transport/EPTF_CLL_Transport_IPsecHandler_Logging_Server_Functions.ttcn)
   File: EPTF_CLL_TransportCommPortIPL4_Definitions  (Transport/EPTF_CLL_TransportCommPortIPL4_Definitions.ttcn)
   File: EPTF_CLL_TransportCommPortIPL4_Functions  (Transport/EPTF_CLL_TransportCommPortIPL4_Functions.ttcn)
   File: EPTF_CLL_TransportIPL2_Definitions  (Transport/EPTF_CLL_TransportIPL2_Definitions.ttcn)
   File: EPTF_CLL_TransportIPL2_Functions  (Transport/EPTF_CLL_TransportIPL2_Functions.ttcn)
   File: EPTF_CLL_TransportIPL4_Definitions  (Transport/EPTF_CLL_TransportIPL4_Definitions.ttcn)
   File: EPTF_CLL_TransportIPL4_Functions  (Transport/EPTF_CLL_TransportIPL4_Functions.ttcn)
   File: EPTF_CLL_TransportMessageBufferManager_Definitions  (Transport/EPTF_CLL_TransportMessageBufferManager_Definitions.ttcn)
   File: EPTF_CLL_TransportMessageBufferManager_Functions  (Transport/EPTF_CLL_TransportMessageBufferManager_Functions.ttcn)
   File: EPTF_CLL_TransportRouting_Definitions  (Transport/EPTF_CLL_TransportRouting_Definitions.ttcn)
   File: EPTF_CLL_TransportRouting_Functions  (Transport/EPTF_CLL_TransportRouting_Functions.ttcn)
   }  # Group: Transport

Group: UIHandler  {

   Group: CLI  {

      File: EPTF_CLL_UIHandlerCLI_CommandDefinitions  (UIHandler/EPTF_CLL_UIHandlerCLI_CommandDefinitions.ttcn)
      File: EPTF_CLL_UIHandlerCLI_Definitions  (UIHandler/EPTF_CLL_UIHandlerCLI_Definitions.ttcn)
      File: EPTF_CLL_UIHandlerCLI_Functions  (UIHandler/EPTF_CLL_UIHandlerCLI_Functions.ttcn)
      }  # Group: CLI

   File: EPTF_CLL_UIHandler_CLIClientDefinitions  (UIHandler/EPTF_CLL_UIHandler_CLIClientDefinitions.ttcn)
   File: EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions  (UIHandler/EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcn)
   File: EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions  (UIHandler/EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcnpp)
   File: EPTF_CLL_UIHandler_ConvertFunctions  (UIHandler/EPTF_CLL_UIHandler_ConvertFunctions.ttcn)
   File: EPTF_CLL_UIHandler_Definitions  (UIHandler/EPTF_CLL_UIHandler_Definitions.ttcn)
   File: EPTF_CLL_UIHandler_MsgDefinitions  (UIHandler/EPTF_CLL_UIHandler_MsgDefinitions.ttcn)
   File: EPTF_CLL_UIHandler_PrivateFunctions  (UIHandler/EPTF_CLL_UIHandler_PrivateFunctions.ttcn)
   File: EPTF_CLL_UIHandler_WidgetFunctions  (UIHandler/EPTF_CLL_UIHandler_WidgetFunctions.ttcn)
   File: EPTF_CLL_UIHandler_XTDPTemplateDefinitions  (UIHandler/EPTF_CLL_UIHandler_XTDPTemplateDefinitions.ttcn)
   File: EPTF_CLL_UIHandlerVariableUI_Definitions  (UIHandler/EPTF_CLL_UIHandlerVariableUI_Definitions.ttcn)
   File: EPTF_CLL_UIHandlerVariableUI_Functions  (UIHandler/EPTF_CLL_UIHandlerVariableUI_Functions.ttcn)

   Group: UIHandlerClient  {

      File: EPTF_CLL_UIHandlerClient_Definitions  (UIHandler/EPTF_CLL_UIHandlerClient_Definitions.ttcn)
      File: EPTF_CLL_UIHandlerClient_Functions  (UIHandler/EPTF_CLL_UIHandlerClient_Functions.ttcn)
      }  # Group: UIHandlerClient

   Group: UIHandler_HTTP  {

      File: EPTF_CLL_UIHandler_BrowserFunctions.ttcn  (no auto-title, UIHandler/EPTF_CLL_UIHandler_BrowserFunctions.ttcn)
      }  # Group: UIHandler_HTTP

   File: EPTF_CLL_UIHandler_DS_Definitions.ttcn  (UIHandler/EPTF_CLL_UIHandler_DS_Definitions.ttcn)
   File: EPTF_CLL_UIHandler_DS_Functions  (UIHandler/EPTF_CLL_UIHandler_DS_Functions.ttcn)
   File: EPTF_CLL_UIHandler_ExternalFunctions.cc  (UIHandler/EPTF_CLL_UIHandler_ExternalFunctions.cc)
   File: EPTF_CLL_UIHandler_GUIFunctions.cc  (UIHandler/EPTF_CLL_UIHandler_GUIFunctions.cc)
   File: EPTF_CLL_UIHandler_GUIFunctions.hh  (UIHandler/EPTF_CLL_UIHandler_GUIFunctions.hh)
   File: EPTF_CLL_UIHandler_XTDPTemplateDefinitions  (UIHandler/EPTF_CLL_UIHandler_XSD_XTDPTemplateDefinitions.ttcn)
   File: EPTF_CLL_UIHandler_XULFunctions  (UIHandler/EPTF_CLL_UIHandler_XULFunctions.ttcn)
   }  # Group: UIHandler

Group: Variable  {

   File: EPTF_CLL_Variable_Definitions  (Variable/EPTF_CLL_Variable_Definitions.ttcn)
   File: EPTF_CLL_Variable_ExternalFunctions.cc  (Variable/EPTF_CLL_Variable_ExternalFunctions.cc)
   File: EPTF_CLL_Variable_Functions  (Variable/EPTF_CLL_Variable_Functions.ttcn)
   }  # Group: Variable

Group: Index  {

   Altstep Index: Altsteps
   Component Index: Components
   Constant Index: Constants
   Index: Everything
   File Index: Files
   Function Index: Functions
   Macro Index: Macros
   Private Function Index: Private Functions
   Template Index: Templates
   Type Index: Types
   Variable Index: Variables
   }  # Group: Index

