---
Author: Norbert Pintér
Version: 17/155 16-CNL 113 512, Rev. A
Date: 2007-11-30

---
= EPTF CLL StatReplay, Function Description
:author: Norbert Pintér
:revnumber: 17/155 16-CNL 113 512, Rev. A
:revdate: 2007-11-30
:toc:

== How to Read This Document

This is the Function Description for the EPTF Statistics Replay of the Ericsson Performance Test Framework (TitanSim), Core Load Library (CLL). TitanSim CLL is developed for the TTCN-3 <<_1, ‎[1]>> Toolset with TITAN <<_2, ‎[2]>>.

== Scope

This document is to specify the content and functionality of the EPTF Statistics Replay feature of the TitanSim CLL.

== Recommended Way of Reading

The readers are supposed to get familiar with the concept and functionalities of TitanSim CLL <<_3, ‎[3]>>. They should get familiar with the list of acronyms and the glossary in the Terminology section.

= General Description

This document specifies the Statistics Replay Control feature of the TitanSim CLL.

The EPTF Statistics Replay Control feature makes it possible to

* Visualize the created capture files on the Runtime GUI

The aim of the EPTF Statistics Replay feature is to display a given variable from a given capture group on the chart in a slider window. On the chart we can take steps forward and backward too.

To be able to use EPTF Statistics Replay, the user component should extend the `EPTF_CLL_StatReplay_CT` component.

= Functional Interface

Apart from this description a cross-linked reference guide for the TitanSim CLL Functions can be reached for on-line reading ‎[5].

== Naming Conventions

All functions have the prefix `f_EPTF_CLL_StatReplay_`.

== Public Functions

=== Initialization

The user need only start the component with the `f_EPTF_CLL_StatReplay_Init_CT(…)` function. This function initializes the EPTF Statistics Replay feature and initiates the GUI.

== Summary Table of All Public Functions for EPTF Statistics Replay

See Summary of Statistics Replay functions in the table below:

[width="100%",cols="50%,50%",options="header",]
|=============================================================================================
|Function name |Description
|`f_EPTF_CLL_StatReplay_Init_CT` |Initializes the GUI and starts the Statistics Replay Component
|=============================================================================================

= Terminology

*TitanSim Core (Load) Library(CLL):* +
It is that part of the TitanSim software that is totally project independent. (I.e., which is not protocol-, or application-dependent). The TitanSim CLL is to be supplied and supported by the TCC organization. Any TitanSim CLL development is to be funded centrally by Ericsson.

= Abbreviations

CLL:: Core Load Library

EPTF:: Ericsson Load Test Framework, formerly TITAN Load Test Framework

TitanSim:: Ericsson Load Test Framework, formerly TITAN Load Test Framework

TTCN-3:: Testing and Test Control Notation version 3 ‎<<_1, [1]>>.

GUI:: Graphical User Interface

= References

[[_1]]
[1] ETSI ES 201 873-1 v3.2.1 (2007-02) +
The Testing and Test Control Notation version 3. Part 1: Core Language

[[_2]]
[2] User Guide for the TITAN TTCN-3 Test Executor

[[_3]]
[3] TitanSim CLL for TTCN-3 toolset with TITAN, Function Specification

[[_4]]
[4] TitanSim CLL for TTCN-3 toolset with TITAN +
http://ttcn.ericsson.se/products/libraries.shtml[Reference Guide]
